From 5e381914214fbf5be4a63e9893dd1f9b6d281b54 Mon Sep 17 00:00:00 2001 From: Juan Blanco Date: Tue, 28 Nov 2023 13:48:47 +0000 Subject: [PATCH] eth_getBlockReceipts --- .../Nethereum.ClassDiagrams.csproj | 3 +- src/Nethereum.RPC/ApiMethods.cs | 21 +- .../Eth/Blocks/EthGetBlockReceiptsByNumber.cs | 63 + .../Blocks/IEthGetBlockReceiptsByNumber.cs | 20 + .../Eth/Services/EthApiBlockService.cs | 2 + .../Eth/Services/IEthApiBlockService.cs | 1 + tests/Nethereum.RPC.UnitTests/OpenRpcTests.cs | 18 +- tests/Nethereum.RPC.UnitTests/openrpc.json | 4780 ++++++++++++----- 8 files changed, 3587 insertions(+), 1321 deletions(-) create mode 100644 src/Nethereum.RPC/Eth/Blocks/EthGetBlockReceiptsByNumber.cs create mode 100644 src/Nethereum.RPC/Eth/Blocks/IEthGetBlockReceiptsByNumber.cs diff --git a/src/Nethereum.ClassDiagrams/Nethereum.ClassDiagrams.csproj b/src/Nethereum.ClassDiagrams/Nethereum.ClassDiagrams.csproj index 86fd1fe61..e9c6b10af 100644 --- a/src/Nethereum.ClassDiagrams/Nethereum.ClassDiagrams.csproj +++ b/src/Nethereum.ClassDiagrams/Nethereum.ClassDiagrams.csproj @@ -9,8 +9,9 @@ Properties Nethereum.ClassDiagrams Nethereum.ClassDiagrams - v4.7.1 + v4.8 512 + true diff --git a/src/Nethereum.RPC/ApiMethods.cs b/src/Nethereum.RPC/ApiMethods.cs index 9c6f56a52..d2a1aa954 100644 --- a/src/Nethereum.RPC/ApiMethods.cs +++ b/src/Nethereum.RPC/ApiMethods.cs @@ -1,6 +1,21 @@ namespace Nethereum.RPC { - public enum UnsupportedApiMethods {eth_signTransaction} + public enum UnsupportedApiMethods { + eth_signTransaction, + engine_exchangeCapabilities, + engine_exchangeTransitionConfigurationV1, + engine_forkchoiceUpdatedV1, + engine_forkchoiceUpdatedV2, + engine_forkchoiceUpdatedV3, + engine_getPayloadBodiesByHashV1, + engine_getPayloadBodiesByRangeV1, + engine_getPayloadV1, + engine_getPayloadV2, + engine_getPayloadV3, + engine_newPayloadV1, + engine_newPayloadV2, + engine_newPayloadV3, + } public enum ApiMethods { net_listening, @@ -31,6 +46,7 @@ public enum ApiMethods eth_estimateGas, eth_getBlockByHash, eth_getBlockByNumber, + eth_getBlockReceipts, eth_getTransactionByHash, eth_getTransactionByBlockHashAndIndex, eth_getTransactionByBlockNumberAndIndex, @@ -101,6 +117,7 @@ public enum ApiMethods wallet_switchEthereumChain, wallet_watchAsset, eth_signTypedData_v4, - personal_sign, + personal_sign + } } \ No newline at end of file diff --git a/src/Nethereum.RPC/Eth/Blocks/EthGetBlockReceiptsByNumber.cs b/src/Nethereum.RPC/Eth/Blocks/EthGetBlockReceiptsByNumber.cs new file mode 100644 index 000000000..ebe3b5b88 --- /dev/null +++ b/src/Nethereum.RPC/Eth/Blocks/EthGetBlockReceiptsByNumber.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +using Nethereum.Hex.HexTypes; +using Nethereum.JsonRpc.Client; +using Nethereum.RPC.Eth.DTOs; + +namespace Nethereum.RPC.Eth.Blocks +{ + public class EthGetBlockReceiptsByNumber : RpcRequestResponseHandler, IEthGetBlockReceiptsByNumber + { + public EthGetBlockReceiptsByNumber(IClient client) + : base(client, ApiMethods.eth_getBlockReceipts.ToString()) + { + } + + public Task SendRequestAsync(BlockParameter blockParameter, object id = null) + { + if (blockParameter == null) throw new ArgumentNullException(nameof(blockParameter)); + return base.SendRequestAsync(id, blockParameter, true); + } + + public Task SendRequestAsync(HexBigInteger number, object id = null) + { + if (number == null) throw new ArgumentNullException(nameof(number)); + return base.SendRequestAsync(id, number, true); + } + + public RpcRequestResponseBatchItem CreateBatchItem(HexBigInteger number, object id) + { + return new RpcRequestResponseBatchItem(this, BuildRequest(number, id)); + } + +#if !DOTNET35 + public async Task> SendBatchRequestAsync(params HexBigInteger[] numbers) + { + var batchRequest = new RpcRequestResponseBatch(); + for (int i = 0; i < numbers.Length; i++) + { + batchRequest.BatchItems.Add(CreateBatchItem(numbers[i], i)); + } + + var response = await Client.SendBatchRequestAsync(batchRequest); + return response.BatchItems.Select(x => ((RpcRequestResponseBatchItem)x).Response).ToList(); + + } +#endif + + public RpcRequest BuildRequest(HexBigInteger number, object id = null) + { + if (number == null) throw new ArgumentNullException(nameof(number)); + return base.BuildRequest(id, number, true); + } + + public RpcRequest BuildRequest(BlockParameter blockParameter, object id = null) + { + if (blockParameter == null) throw new ArgumentNullException(nameof(blockParameter)); + return base.BuildRequest(id, blockParameter, true); + } + } +} \ No newline at end of file diff --git a/src/Nethereum.RPC/Eth/Blocks/IEthGetBlockReceiptsByNumber.cs b/src/Nethereum.RPC/Eth/Blocks/IEthGetBlockReceiptsByNumber.cs new file mode 100644 index 000000000..8a8e41095 --- /dev/null +++ b/src/Nethereum.RPC/Eth/Blocks/IEthGetBlockReceiptsByNumber.cs @@ -0,0 +1,20 @@ +using Nethereum.Hex.HexTypes; +using Nethereum.JsonRpc.Client; +using Nethereum.RPC.Eth.DTOs; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Nethereum.RPC.Eth.Blocks +{ + public interface IEthGetBlockReceiptsByNumber + { + RpcRequest BuildRequest(BlockParameter blockParameter, object id = null); + RpcRequest BuildRequest(HexBigInteger number, object id = null); + RpcRequestResponseBatchItem CreateBatchItem(HexBigInteger number, object id); +#if !DOTNET35 + Task> SendBatchRequestAsync(params HexBigInteger[] numbers); +#endif + Task SendRequestAsync(BlockParameter blockParameter, object id = null); + Task SendRequestAsync(HexBigInteger number, object id = null); + } +} \ No newline at end of file diff --git a/src/Nethereum.RPC/Eth/Services/EthApiBlockService.cs b/src/Nethereum.RPC/Eth/Services/EthApiBlockService.cs index 67e7226a3..8e4382504 100644 --- a/src/Nethereum.RPC/Eth/Services/EthApiBlockService.cs +++ b/src/Nethereum.RPC/Eth/Services/EthApiBlockService.cs @@ -14,6 +14,7 @@ public EthApiBlockService(IClient client) : base(client) GetBlockWithTransactionsByNumber = new EthGetBlockWithTransactionsByNumber(client); GetBlockWithTransactionsHashesByHash = new EthGetBlockWithTransactionsHashesByHash(client); GetBlockWithTransactionsHashesByNumber = new EthGetBlockWithTransactionsHashesByNumber(client); + GetBlockReceiptsByNumber = new EthGetBlockReceiptsByNumber(client); } public IEthBlockNumber GetBlockNumber { get; private set; } @@ -24,5 +25,6 @@ public EthApiBlockService(IClient client) : base(client) public IEthGetBlockWithTransactionsByNumber GetBlockWithTransactionsByNumber { get; private set; } public IEthGetBlockWithTransactionsHashesByHash GetBlockWithTransactionsHashesByHash { get; private set; } public IEthGetBlockWithTransactionsHashesByNumber GetBlockWithTransactionsHashesByNumber { get; private set; } + public IEthGetBlockReceiptsByNumber GetBlockReceiptsByNumber { get; private set; } } } \ No newline at end of file diff --git a/src/Nethereum.RPC/Eth/Services/IEthApiBlockService.cs b/src/Nethereum.RPC/Eth/Services/IEthApiBlockService.cs index 44c73461e..d000c3673 100644 --- a/src/Nethereum.RPC/Eth/Services/IEthApiBlockService.cs +++ b/src/Nethereum.RPC/Eth/Services/IEthApiBlockService.cs @@ -11,5 +11,6 @@ public interface IEthApiBlockService IEthGetBlockWithTransactionsByNumber GetBlockWithTransactionsByNumber { get; } IEthGetBlockWithTransactionsHashesByHash GetBlockWithTransactionsHashesByHash { get; } IEthGetBlockWithTransactionsHashesByNumber GetBlockWithTransactionsHashesByNumber { get; } + IEthGetBlockReceiptsByNumber GetBlockReceiptsByNumber { get; } } } \ No newline at end of file diff --git a/tests/Nethereum.RPC.UnitTests/OpenRpcTests.cs b/tests/Nethereum.RPC.UnitTests/OpenRpcTests.cs index 8d07b84ca..86607949a 100644 --- a/tests/Nethereum.RPC.UnitTests/OpenRpcTests.cs +++ b/tests/Nethereum.RPC.UnitTests/OpenRpcTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; using System.Net; @@ -45,14 +46,21 @@ public void ShouldHaveAllMethodsListedInApiMethodsWhenNotUnsupported() { var openRpc = GetOpenRpc(); JArray methods = (JArray) openRpc["methods"]; + var failed = false; foreach (var method in methods) { var methodName = method["name"].ToString(); if (!Enum.TryParse(methodName, out UnsupportedApiMethods unsupportedApiMethod)) { - Assert.True(Enum.TryParse(methodName, out ApiMethods apiMethod)); + if (!Enum.TryParse(methodName, out ApiMethods apiMethod)) + { + Debug.WriteLine(methodName); + failed = true; + }; } } + + Assert.False(failed); } [Fact] @@ -70,7 +78,7 @@ public void ShouldHaveAllComponentsMapped() if (!simpleMappings.ContainsKey(schemaName)) { var complexValidators = complexMappings.Where(x => x.Name == schemaName); - if(!complexValidators.Any()) throw new Exception("Complex Object Not Mapped"); + if(!complexValidators.Any()) throw new Exception("Complex Object Not Mapped: " + schemaName); foreach (var complexTypeValidation in complexValidators) { if (!complexTypeValidation.Ignored) @@ -210,6 +218,7 @@ public List ComplexComponentTypeMappings() list.Add(new ComplexTypeValidation { Name = "StorageProof", Type = typeof(StorageProof), Ignored = false }); list.Add(new ComplexTypeValidation { Name = "Access list result", Type = typeof(AccessListGasUsed), Ignored = true }); list.Add(new ComplexTypeValidation { Name = "BadBlock", Type = typeof(BadBlock), Ignored = false }); + list.Add(new ComplexTypeValidation { Name = "notFound", Ignored = true }); return list; @@ -222,11 +231,14 @@ public List ComplexComponentTypeMappings() mappings.Add("address", typeof(string)); mappings.Add("addresses", typeof(string[])); mappings.Add("byte", typeof(string)); - mappings.Add("bytes", typeof(string)); + mappings.Add("bytesMax32", typeof(string)); + mappings.Add("bytes", typeof(string)); + mappings.Add("bytes48", typeof(string)); mappings.Add("bytes8", typeof(string)); mappings.Add("bytes32", typeof(string)); mappings.Add("bytes256", typeof(string)); mappings.Add("bytes65", typeof(string)); + mappings.Add("ratio", typeof(HexBigInteger)); mappings.Add("uint", typeof(HexBigInteger)); mappings.Add("uint64", typeof(HexBigInteger)); mappings.Add("uint256", typeof(HexBigInteger)); diff --git a/tests/Nethereum.RPC.UnitTests/openrpc.json b/tests/Nethereum.RPC.UnitTests/openrpc.json index 599d7c8b6..403d499dc 100644 --- a/tests/Nethereum.RPC.UnitTests/openrpc.json +++ b/tests/Nethereum.RPC.UnitTests/openrpc.json @@ -11,35 +11,120 @@ }, "methods": [ { - "name": "eth_getBlockByHash", - "summary": "Returns information about a block by hash.", - "params": [ - { - "name": "Block hash", - "required": true, - "schema": { - "$ref": "#/components/schemas/hash32" + "name": "debug_getBadBlocks", + "summary": "Returns an array of recent bad blocks that the client has seen on the network.", + "params": [], + "result": { + "name": "Blocks", + "schema": { + "title": "Bad block array", + "type": "array", + "items": { + "$ref": "#/components/schemas/BadBlock" } - }, + } + }, + "examples": [ { - "name": "Hydrated transactions", - "required": true, - "schema": { - "title": "hydrated", - "type": "boolean" + "name": "debug_getBadBlocks example", + "params": [], + "result": { + "name": "Bad block array", + "value": [ + { + "block": { + "number": "0xd", + "hash": "0x85c2edc1ca74b4863cab46ff6ed4df514a698aa7c29a9bce58742a33af07d7e6", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "parentHash": "0x544a2f7a4c8defc0d8da44aa0c0db7c36b56db2605c01ed266e919e936579d31", + "nonce": "0x0000000000000000", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "transactionsRoot": "0x02c387e001cbe2a8296bfa2e18afbc3480d0e49588b05556148b0bf7c17dec41", + "stateRoot": "0x861ab7e868e3c23f84b7c4ed86b52a6a4f063633bc45ef29212c33459df84ea5", + "receiptsRoot": "0xccd2d33763dc0ac3fe02d4ecbbcd7d2bdc6f57db635ba31007184679303721d7", + "miner": "0x0000000000000000000000000000000000000000", + "difficulty": "0x1", + "totalDifficulty": "0x1", + "extraData": "0x00000000000000000000000000000000000000000000000000000000000000008c6a091f07e4ba3930f2f5fabbfc5b1c70986319096760ba200a6abc0d30e33c2d501702d1b58d7f75807bdbf981044557628611319121170b96466ec06bb3fd01", + "size": "0x3a0", + "gasLimit": "0xffffffffffff", + "gasUsed": "0x1a488", + "timestamp": "0x5f5b6824", + "uncles": [], + "transactions": [ + { + "blockHash": "0x85c2edc1ca74b4863cab46ff6ed4df514a698aa7c29a9bce58742a33af07d7e6", + "blockNumber": "0xd", + "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas": "0x1a49e", + "gasPrice": "0x3e8", + "hash": "0xdd8cf045113754c306ba9ac8ac8786235e33bc5c087678084ef260a2a583f127", + "input": "0x608060405234801561001057600080fd5b5060c78061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80636057361d146037578063b05784b8146062575b600080fd5b606060048036036020811015604b57600080fd5b8101908080359060200190929190505050607e565b005b60686088565b6040518082815260200191505060405180910390f35b8060008190555050565b6000805490509056fea26469706673582212208dea039245bf78c381278382d7056eef5083f7d243d8958817ef447e0a403bd064736f6c63430006060033", + "nonce": "0x0", + "to": null, + "transactionIndex": "0x0", + "value": "0x0", + "v": "0xf9d", + "r": "0xa7a15050302ca4b7d3842d35cdd3cbf25b2c48c0c37f96d78beb6a6a6bc4f1c7", + "s": "0x130d29294b2b6a2b7e89f501eb27772f7abf37bfa28a1ce300daade975589fca" + } + ] + }, + "hash": "0x85c2edc1ca74b4863cab46ff6ed4df514a698aa7c29a9bce58742a33af07d7e6", + "rlp": "0xf9039df9025ca0544a2f7a4c8defc0d8da44aa0c0db7c36b56db2605c01ed266e919e936579d31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0861ab7e868e3c23f84b7c4ed86b52a6a4f063633bc45ef29212c33459df84ea5a002c387e001cbe2a8296bfa2e18afbc3480d0e49588b05556148b0bf7c17dec41a0ccd2d33763dc0ac3fe02d4ecbbcd7d2bdc6f57db635ba31007184679303721d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d86ffffffffffff8301a488845f5b6824b86100000000000000000000000000000000000000000000000000000000000000008c6a091f07e4ba3930f2f5fabbfc5b1c70986319096760ba200a6abc0d30e33c2d501702d1b58d7f75807bdbf981044557628611319121170b96466ec06bb3fd01a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f9013af90137808203e88301a49e8080b8e6608060405234801561001057600080fd5b5060c78061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80636057361d146037578063b05784b8146062575b600080fd5b606060048036036020811015604b57600080fd5b8101908080359060200190929190505050607e565b005b60686088565b6040518082815260200191505060405180910390f35b8060008190555050565b6000805490509056fea26469706673582212208dea039245bf78c381278382d7056eef5083f7d243d8958817ef447e0a403bd064736f6c63430006060033820f9da0a7a15050302ca4b7d3842d35cdd3cbf25b2c48c0c37f96d78beb6a6a6bc4f1c7a0130d29294b2b6a2b7e89f501eb27772f7abf37bfa28a1ce300daade975589fcac0" + }, + { + "block": { + "number": "0x8", + "hash": "0x601a3ae9b6eceb2476d249e1cffe058ba3ff2c9c1b28b1ec7a0259fdd1d90121", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "parentHash": "0x98ae440cd7b904d842daa6c263608969a3c8ce6a9acd6bd1f99b394f5f28a207", + "nonce": "0x0000000000000000", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "transactionsRoot": "0x8ee998cc699a1f9310a1079458780b3ebee8756f96a0905f5224b89d0eb17486", + "stateRoot": "0x140a9783291704223eb759e3a0db5471a520d349fc17ac2f77ff8582472e3bac", + "receiptsRoot": "0x2b5c77f6e7764d2468178fab7253346b9b8bb6a34b63946f6bdc2f5ad398bfc3", + "miner": "0x0000000000000000000000000000000000000000", + "difficulty": "0x2", + "totalDifficulty": "0x2", + "extraData": "0x00000000000000000000000000000000000000000000000000000000000000004d04551bdd9ae08af1fd661e49d4ab662c98c532c7ec0e4656a27e4de7d330af578ab1e4f5e49e085ff1d78673c7388ed9ccf017fbe89e53066bfa4018142c0701", + "size": "0x3a0", + "gasLimit": "0xffffffffffff", + "gasUsed": "0x1a4c9", + "timestamp": "0x5f5b6b80", + "uncles": [], + "transactions": [ + { + "blockHash": "0x601a3ae9b6eceb2476d249e1cffe058ba3ff2c9c1b28b1ec7a0259fdd1d90121", + "blockNumber": "0x8", + "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas": "0x1a4c9", + "gasPrice": "0x3e8", + "hash": "0x675e336a4281b29c619dfd4ccfbd2f930f3728b20caf9e0067284aa3224e6758", + "input": "0x608060405234801561001057600080fd5b5060c78061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80636057361d146037578063b05784b8146062575b600080fd5b606060048036036020811015604b57600080fd5b8101908080359060200190929190505050607e565b005b60686088565b6040518082815260200191505060405180910390f35b8060008190555050565b6000805490509056fea26469706673582212208dea039245bf78c381278382d7056eef5083f7d243d8958817ef447e0a403bd064736f6c63430006060033", + "nonce": "0x0", + "to": null, + "transactionIndex": "0x0", + "value": "0x0", + "v": "0xf9d", + "r": "0x2e30624c0305e64812e1d9e325ba6e50410314634b008edcb50f45be71fa0d4", + "s": "0x50e205faed23c219ba15610de2451d458cbd4221207b2168344cfc972a7973c0" + } + ] + }, + "hash": "0x601a3ae9b6eceb2476d249e1cffe058ba3ff2c9c1b28b1ec7a0259fdd1d90121", + "rlp": "0xf9039df9025ca098ae440cd7b904d842daa6c263608969a3c8ce6a9acd6bd1f99b394f5f28a207a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0140a9783291704223eb759e3a0db5471a520d349fc17ac2f77ff8582472e3baca08ee998cc699a1f9310a1079458780b3ebee8756f96a0905f5224b89d0eb17486a02b5c77f6e7764d2468178fab7253346b9b8bb6a34b63946f6bdc2f5ad398bfc3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020886ffffffffffff8301a4c9845f5b6b80b86100000000000000000000000000000000000000000000000000000000000000004d04551bdd9ae08af1fd661e49d4ab662c98c532c7ec0e4656a27e4de7d330af578ab1e4f5e49e085ff1d78673c7388ed9ccf017fbe89e53066bfa4018142c0701a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f9013af90137808203e88301a4c98080b8e6608060405234801561001057600080fd5b5060c78061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80636057361d146037578063b05784b8146062575b600080fd5b606060048036036020811015604b57600080fd5b8101908080359060200190929190505050607e565b005b60686088565b6040518082815260200191505060405180910390f35b8060008190555050565b6000805490509056fea26469706673582212208dea039245bf78c381278382d7056eef5083f7d243d8958817ef447e0a403bd064736f6c63430006060033820f9da002e30624c0305e64812e1d9e325ba6e50410314634b008edcb50f45be71fa0d4a050e205faed23c219ba15610de2451d458cbd4221207b2168344cfc972a7973c0c0" + } + ] } } - ], - "result": { - "name": "Block information", - "schema": { - "$ref": "#/components/schemas/Block" - } - } + ] }, { - "name": "eth_getBlockByNumber", - "summary": "Returns information about a block by number.", + "name": "debug_getRawBlock", + "summary": "Returns an RLP-encoded block.", "params": [ { "name": "Block", @@ -47,768 +132,1397 @@ "schema": { "$ref": "#/components/schemas/BlockNumberOrTag" } - }, - { - "name": "Hydrated transactions", - "required": true, - "schema": { - "title": "hydrated", - "type": "boolean" - } } ], "result": { - "name": "Block information", + "name": "Block RLP", "schema": { - "$ref": "#/components/schemas/Block" + "$ref": "#/components/schemas/bytes" } - } + }, + "examples": [ + { + "name": "debug_getRawBlock example", + "params": [ + { + "name": "Block", + "value": "0x32026E" + } + ], + "result": { + "name": "Block RLP", + "value": "0xf96096f90236a09f73691f6dabca4f0a99b05d0a701995506aa311dcaa9ce9833d6f4ca474c162a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794c6e2459991bfe27cca6d86722f35da23a1e4cb97a078103ea8c47231886481d72ec1afae6eeb06c3773ce24a91323d5c9eed69d4cca0008992da2531db404f07b0871dd620a94ba346963e1b1c6dc7b00748e8593a1ea0b6c3890d9604434fc52f722848c84d1770add20cd75bbc28cdedff42940dbb56b90100200800000400000002000e0000000401000000440100000000c0400600000002000801000000040480020840048000000000400000000000000020004220000011002000000000000204000800000010010002000002000000000040a000000000000400020000010885000000000808000000008800001004002010020300005000000010002110410402000000000000000890000008000000000000000000020040000002000000000000810400000040006000004000004080020000000000000022001000000000000840400000000220250000000000080402000420000418000000000000000400040000004080040010200000000000108020020000808332026e8401c9c380833e3c3c846436f93899d883010b05846765746888676f312e32302e32856c696e7578a0112d8f15793e7df7f8dcdb21c891cff78c0d1839cb5b6dcd06116cdbb99536ae88000000000000000008a0cdb97712af6685bb9650d21d609525913293c48adda7c45990926daada335c9bf95c56f8ac82d51f8502540be4008303c9e294a68d4c1e3de1b721ad1356bbf827d6bc8cef304f80b844b1bb4d351300dbc7e12342566318001b83aefc9f20080000f3ef25472407fe9c9c69a1470000000242692bb4cd506c409651ab80eb3acfa54551d3dbc9af4493605d79871ba01e474fb147b16b9538d7a59a57738e406158d9cc306a9062b1b7a9f544c35abfa061aabb714c760f2243a16a024811679d402c8822e8b25dfd0038d84298fb5205b87502f87283aa36a754849502f900849502f9108302222794102554afa6b5dbccc86176faef2b2d854201756e8084e2bc7b43c001a04f2398f24bc950db1f5439de3cf6431ea277236595ae8dc5815c0cc671c9f97ca029898786a59c56f086fc0f7a16859f366cf46084add999fe137cbf43693712e8b87c02f87983aa36a7830293748459682f00850165a0bc008255f094fafb56bb5b37c3b0b0ee9d7c31f018aac91dfb778806f05b59d3b2000080c080a0b069dd8967533a773e592c26b1b36df0793d0b9f6eceba34da246f602c2fae58a002009dab32ab63a25b705d9a00e311f7cd5d85e73f9b2c03ffd0e5135c0bb2c6b89502f89283aa36a7018459682f008459682f0983011fec945b9fedd37f0b92e7e282b19cebcf06f57b77c60480a46a62784200000000000000000000000019a1fcc6fcc5832cd2db7704d75efbc800f5a742c001a0c65eb0e48090a8f8830de47f430b9ad11071a62a5db9555619a990d7e9b81738a05a6e826610a5b2ee529a22942ebcd3abd2a8a10228098c8158380e8fcceb962fb9028002f9027c83aa36a7178459682f008459682f0983017ac9942ab7c0ab9ab47fcf370d13058bfee28f2ec0940c880169964394fc8860b9020496e17852000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000003aa4d7eb55ec2539f5305eb27ea42f6f90f168270000000000000000000000000000000000000000000000000000000000aa36a70000000000000000000000000000000000000000000000000000000000028c5c0000000000000000000000003aa4d7eb55ec2539f5305eb27ea42f6f90f168270000000000000000000000003aa4d7eb55ec2539f5305eb27ea42f6f90f168270000000000000000000000003aa4d7eb55ec2539f5305eb27ea42f6f90f16827000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000650cb3772886000000000000000000000000000000000000000000000000000000000000222e000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a004f8666c8e5d0f3c7110994f624d24aa47a1327814289698c3e2777284a5cfdca04ff05f1b8c5beb58972d40e5a7b894d5e28ad2f15a3429c7d2bee6b6a9633730b9019f02f9019b83aa36a70b8459682f008459682f098303644f944284890d4acd0bcb017ece481b96fd4cb457cac88715c0f4db6e0ea0b90124ee1490b20000000000000000000000000000000000000000000000000000000000028c5c0000000000000000000000007847f2e0262512206333ffb200f6d9df2da319d40000000000000000000000001e8c104d068f22d351859cdbfe41a697a98e6ea20000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000222e00000000000000000000000000000000000000000000000000015c0f4db6e0ea00000000000000000000000007847f2e0262512206333ffb200f6d9df2da319d400000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000c080a0e5270f6291acc162885656bedf64fbcb904c41951221dc0cbbbdca03bb33ce43a01f08c7ed3c231403b55f37a157d80e121b653baa810add8c02aea722631450dcb87c02f87983aa36a7830293758459682f00850165a0bc008255f0948d247f4fbbe81429d3d164a5c9ae0063210edbdc8806f05b59d3b2000080c080a0bb83dd6181c9a7ae3069af3bdf1820b5e556eaf99e385b8d7b3571321fb2966ba02ac193773704524adcd02824796df83407a42cdd81e786b591eba43c4ffc6c40b9028002f9027c83aa36a7048459682f008459682f0983017ac9942ab7c0ab9ab47fcf370d13058bfee28f2ec0940c880169964394fc8860b9020496e178520000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000062d23ed77d0e5d0205edabe4ce3a27adc49ac6790000000000000000000000000000000000000000000000000000000000aa36a70000000000000000000000000000000000000000000000000000000000028c5c00000000000000000000000062d23ed77d0e5d0205edabe4ce3a27adc49ac67900000000000000000000000062d23ed77d0e5d0205edabe4ce3a27adc49ac67900000000000000000000000062d23ed77d0e5d0205edabe4ce3a27adc49ac679000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000650cb3772886000000000000000000000000000000000000000000000000000000000000222e000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0fc882968005f717a74a2c2fb345f691091cab084f4bd3934358741807bd5a66ea03f81c68d05d06bf851a6ef5ea6874557a221cbadde24f3fa51f777699b5d2804b8d802f8d583aa36a7822c0b8459682f008459682f098303534f943367dfa11e3148a07c2da773e1f65b155b0abe5680b864ad58bdd100000000000000000000000053844f9577c2334e541aec7df7174ece5df1fcf0000000000000000000000000e9e12c660e77a732940bab3c2cf385c843b834b800000000000000000000000000000000000000000006015d637c177581800000c001a0a292e7723d3c950aa8a557bd91dece34ec527d9efe2cc413d582dcd9fc6bf6eba03386ce6f58e862f329946bf32897f7df5d1c8f818fecfafc1223052fb251d97eb8b602f8b383aa36a7138459682f008459682f09832dc6c094ba175fdab00e7fcf603f43be8f68db7f4de9f3a980b844095ea7b300000000000000000000000084a0cc1ab353da6b7817947f7b116b8ea982c3d20000000000000000000000000000000000000000000000068f365aea1e440000c001a0968ed0274829918071d9cef28e1adbf1fd15ec76e5a4f809971e887b4c9f34b6a001ce26485bc7e3ea71fb99866bd43002b264b2ed80e10850203c2f07b78856bdb87c02f87983aa36a7830293768459682f00850165a0bc008255f0946d3b93db4e4078cf6541a68532d00705d9a4da618806f05b59d3b2000080c080a083c831630788e7ee57c87128d18582e29aa51f1f233e91d916c06d0750578156a0549b5a00477f3fb4d8fbf95ba3a636c3a14ff011c1bbf3a717e00d61735cbf34b87c02f87983aa36a7830293778459682f00850165a0bc008255f0940d3a7d69859a0dd6971d39703b15379e05ae2ec48806f05b59d3b2000080c001a0082660b5db2d3a8a58c0b863673ab27f7cfe4c049dcc52c76a00ab45b0358db5a05a7519a2d399cb534480383ac21262fbde2dd85241495d7832dee8bb02c49c87b87c02f87983aa36a7830293788459682f00850165a0bc008255f0941be13f64a2463fc7a76b4092c53328cc965a77fb8806f05b59d3b2000080c001a0e6ee9b85c3b729518524fdaeb25d47f89f6fc6c4d2c4df707187bef74d73f958a0756bbf4ab119805b77466957b5895c1d5bf422c5f65d8a06f7efd37dcb2c87afb87c02f87983aa36a7830293798459682f00850165a0bc008255f094a90b28fd6f8e46ac668fcb688414184a163e2cd28806f05b59d3b2000080c080a0d394dd43c58591e5dda8a7f3a2f4eae1bfd65655b9e9eec5facc6dcb39aa77baa002eeabf3fe9c0a56eae476d2f6452ea72e63a9c9b1180290b792883258f939f5b8f802f8f583aa36a7830283818459682f008459682f1082962494d0f723c6b2226df56fe41e63b9eaa66eb540bcb880b884abac047b000000000000000000000000000000000000000000000000000000000103e9f0f3471dc445d8f209ef546e0d20eaccc12ed0a5b4100007f57d9bc8638dacaf6480000000000000000000000000000000000000000000000000000000001d209b1ea11d77d1ab457eb3e2954cb2b98e77b5b07e2a4f48507af0adc61329ddc210c001a0efa10ab60f3bd1e7c4a8d52a275a568fbe2f5edc9e1eaf386299577ff9ddbd6ba06e62cf2f66b58f655ddd3eae47ce40408445b086f6ea858edb7bd847ee206207f86f82e6e582014482f618949ebf6b12e7e33b8672788e7b2b3330356f6f2c41880de0b6b3a7640000808401546d72a008d6be7aa21be0a43e08e960620f4c40c44010a743ead9919ef9423863c08b12a06a63a7caae4504ee5528e50387ca09974f7124035328a62d1085da2fee6618f9f86f82e1c382014482f618949c68eb31c4d00b94c3e3d4c2887946f8b076b24c880de0b6b3a7640000808401546d72a0c22d48d72c70ccf0a44d0950daf16741838f9333ee0bc5e05ff02b058da1e010a06a20c9f74cbc14c0d5bf3b3c38d3c33a5ace9194cddc2c533afb16459eaa7647f86f82e4cb82014482f61894d531e7aa3c0bee832aaff22642c7a3128d48a81a880de0b6b3a7640000808401546d72a01dbaeffc8e11964c06a722bae73e35bb5de55b8f959592868f2ff5fc13b69bd3a002acadc04665570a2032cdb616de15bdca79127f21302d62db5baf96ae4734e6f86e830176e381d882520894ad346e81c5b26fe563ab1ba2aa4ff811655882ca872386f26fc10000808401546d72a0b6de11598824e338100d5ebe70c0b0f4d6893fbb36f11ad55cf74b2f43afc5dda05101e65e7e84ea9edba6e5bf1a1e07028ae3fa5213240e812e57cf6b29080726b9235302f9234f83aa36a7830137d564748315f52194ac9251ee97ed8bef31706354310c6b020c35d87b80b922e48ed7b3be000000000000000000000000000000000000000000000000000000000001edc00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001fe000000000000000000000000000000000000000000000000000000000000020c00000000000000000000000000000000000000000000000000000000000001f60000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000002200000000000000000000000009d69394bd71906a235f9113cc04321f573958d3e00000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001edc00000000000000000000000000000000000000000000000000000000000320266d6b1b655f66cf8f99d35432492f8fbedfa97a2a48f0efaae65de6738e2594aa5000000000000000000000000000077770000000000000000000000000000000191c15235c348207e935e72b9151056a9661d73631d1e2c3f89ffddf8e74efe8a42ab8767076a555a049372055c846097c99e69c26ab0a24553d21c15de29ea900000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000030ef2c000000000000000000000000000000000000000000000000000000006436f8d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d65822107fcfd520000000000000000000000000000000000000000000000000000000000000000ec15abee257256da1a964434000f59ddd45b1ce67d5df44f1c82fd5bfe95c3b31dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493470000000000000000000000000000777700000000000000000000000000000001d4b5b35d93f51c8143f6a4cc3d7b320d37ce03989cd88c28601f4ea94cd6554249cff83e4dd8e99a8ef9004b2ac7518996f4784af1f9e52debb6223a697e9652530feda219f333e01f8cd0b31ee83b9c250ee51fde9718ef5fa305cbcd01901200200100002020000400000280000006004000c0020000000000000000000100000000029000000000000000090000000000008000200040000012004020000800000000240002400008000800000020000000001040000000000040824000000000000002040000400000002000080000000000000804000000001001000c84000208000000000180020000014000000000210100510008000082c0000000001200002000000024000008400000000220001800400000008010000052000200000200028000000000800000040200000110000010000010000001020000210004100002000000000900280000010008001000000018004000000020000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001edc0000000000000000000000000000000000000000000000000000000000034bfbc00000000000000000000000000000000000000000000000000000000002ddb24000000000000000000000000000000000000000000000000000000006436f8d800000000000000000000000000000000000000000000000000000000000002e042ab8767076a555a049372055c846097c99e69c26ab0a24553d21c15de29ea900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000016202bf20ff78727f38ef16e03bfb3d4895f35cc626f97ede7cc99f48aeff8661fe32015ea8d62ec7a79e01cd398e85867bafdcf55cb6a7121b6fef097f5f5656a5d11ddf336b6879926ea2ae425e91c748a553c9a496cbe2ab556a91689f75ee2b01ad3c43aa774b50a9d8411a9f65be42d6cde781db1a1949a1e886f868917997b2a7122720155935f15da0807d0054f1a4c3db2a92ec4124bf590ce7a16594f3f1812f260acb049d01ad534a937840a80c0f56fd9a54ca5a8628ed896d14a5f8b2570f5813e35c990656f6300a1a1849429135ada6337646248f6ea03a7f70ac426c1d805216d154ea5a8e5ff953bc04b71b049b4b5bd549b6b0cfa7f8b21dba72a3805c7093d8589f2d4c55b6211441041e8bd7916daed5093fcebd377c31e810a6499e6e26840e3afadc9b339c6abc86b7f89fc3559f4242d373a71389db20219195f6e13069701f6d539dcf63a049726cdd8cadc412d1c43cf3fc0095ae5e2157dc668bdb924d7d7afc2b4632ab8a0e4ef71941a0a6a65645f6cd8570302f90b98bbdd01be238dc07780ee9b93e22ab87f26170d7fc5531347fb9fadcb65dc2ca20442a70be9e785292d533fa9496308a7b1588b50b45c17ea765de525259f036edd3984782399b46793acd5abb9f49e38b309c2363aead57264ac1a44e6432b81127a0bfdc29f01bd04e7db2b2545ed8426d2fe9b3e561793ec8fc875f2a71f31c13d11b94f892bb9f96bd2931b66ffa5e22b104c549e7c0d5010e4e70e271d48c0bd6e4be68c920ea77af85d12eb155d9b25703eabbd0ede1909565a55f11fcba848e01c60438611958101321898e95c8fdc936d31389bdba8073b382e5b1e2cd25993ad31586d7525f165fb25a1cf8c22623f983c025d21f0e52ecfec5f0232a753addaad88340ca39f00e9722f35dd25fbe8fdd8846bfc0288215d0638004009396bfcd5e6eb0c587797ae8297decbca48b02407219b910ce163552ed230438292cec430007886beabe7cdf5c6f9c3740a3dd6c52ba88e6d652ce43f90044193c4a42335291795c2cc160dc68b6225edb425a88d27cae159f77df3a2241fbe809c8f1122d245bf439df0761bec97358b96d6653bc83702b559bde5a2d12f771a2a11bc9dc32580bc3ccf9dfacd0a5379587ac5160b45d333a85cde46810ad2875b406f00438aee245ecc63815528a185e9e2a029147db7fcffcb8875e5259f15c3e467de02e035891b131bc715e54e7e27a7acc437bb9f6f84fa4456aa016b3578a73ed8a4706efb935be8b6abe0697e46d878d9c74e274f2816d2fd88146b316731719e125d227e002af95aa13f468a9bae4ff41a4a6036ee7fc321b3249aed4dfb6e75089ec0656ee4e87e1fffefbd74edf55a20d752a85caccf583c0d9e2ef1040b4d36a8e992ad50ce1c4bd2b300b344ca881725c164886a5f8f18035f6e75e67a3eaa2064fc24ff79897edb624e1a67f34deb414d5efaf4c55d482da108aa2ab7504fd5d7f78d91da5c20230380ec013b910b01a26b8bed8a05a004d52db30b7fb01f16347692e9f19f303f48ea8cbbed2d3a3eb277ddf4e9ed8026af5ce92a618c8942caf28b3249044347e14e5c3c2ed5ec0f9cccf1d11a5b290c00773e12c25feafbcceeb8ae6c25a88c9657c627187af6fe0bfea0b3cc36c908a76f90e965bc4135c8596534f444c91aaaaaa6277985e36248bd53ef0f74f103eeac98ba92c5350e4a0c586c851ad25df982e16b2d408de37c687efc6915a41197df379614aa657ab5100627c47896b51b000cb95505bac77e4e440ecd1fe50252fc98f15ee41cafbf717e144da35f424e141639de04ebe5d333e9df8c06821c689d1ef2abbfd12e8a1edc059a9279db7ff44bac1962b5f7297da5c989528229e98a91a3a2e351f371dfa34d4c3676725baa5fa4696f67f4239b5fe1e3fa351d66aa5a2df992426d94ba049bbb4eea0ab22e3b9a7409f2b6719ede64353f4112e4da3919adc16dcd99c545966256493d2699ae529e365c20515d95c013ba2627576fb75a030ffd25b85ed3fc40dbbedbca54427f8dc2255c16b742b3e2b82e1bb634ae73a402927e6dc424d1908942b9b0f2cc17909ed050defe85d24a1986291facbb4ecf9b7ff66c27f8e771d28ec6866e3d24bc97e7be388013df8ba8f407b9147ed9b3581784003a22eeada55656d2be271afce06ef3fca32ac9b77b4f2420d60e892c95418b2a1b7d3dae2738a073ef105e66c08488e8a91e8ebdb5a10e979611bd29245c13cc4c0f5b33eedc5263edd6c27666e0c3f02161114120230511406f9f82102fd8c37c36d4e383e445df4afc6e7dbaa570cfe05b3f6038ec1b7932b70e7b068a2656173d241e8f20bb6be3a3a3767111aa6f459f84be961c2337f6e03ed3cc6c847a3683894288b471504cbdc43a78f856801a10a87c77322e36e0ca426ec67ad3a2a3b79bc5cb81928a79a67a0fb46bb967cbab73fd36022f92d920204de61717dde6a85b7bcf57584c11ce54ac92998f856bf042a01c5006f155ac97d6757728caceba5530eb745e72277723ad34268b34008a97a27c370e9bc006aeaca4ac36414f35aa41ff400f698623a447c949f7f004f3c3fdb09f2af3c96042e215f0d4bbb23fda72d4f01dd9a55dbdec930919715a23e2cd772a260e2b91324c244d88ce1b83c92dce1aa0e0c255b80ed9325dec0e677563984a1c559ddb4a544eadeb2a38e8ed7736174a30d2bee6e0b65f3766e0b7a4e4d8022dd9f82493a9b1fadd1907147ac29edeb8cf8c7c58fbfa9b82ed3d9f9f05bfc900e52e29a05ca8d445b5245b16928dd61800ebb63933d9c471c2fb38776459641e9debdc606abf6ccfdf8fb41da88ba0745d96fd4557a879fee82e33df32d18b18d7360529f89f3dea680a5cb0c6a7652ee38589e1997f3e64ce4db1d3c04cd628fc0fd6e7ef1944108d48eb742a28467fa4bca693dbc8f923945256da2a83222d172286c82b1949803c54409de4653f258d0cf4266c83d5675ca9b5b3a3fb322b9c493ed7bff0a6165babb19c94d9e2014b13b099f09894fbcf32959b9d4ce71ddf9d24dee8bc40d6be92ee6e1220d84d68ecf1a0424132315c0612802b477b0acabcf346b0ad5ea329ea72f4de7524530bc00ad36baeee835908655faecd350463484d31623127c09c6cec446a9ac9a53cb6841ca2a097ceef88e537e209880ffdcfd5033bc3f5a885c271e41ee332366345fa867780beb3c1d5eaa496ea0908c560e84b404afb45f69169d28348ca20bb4f5693db19304d154f60a91ec4e9255be05739f5dc7e0b420d4bde4b188a8520bf39202f81dd3e2f4adcc6f4b4be16880103e0ab232f509729c91ddf0006d6a099a769b38affb89d7489b3bf261106aec362c77acdbb0a71c3da369067eb0f2ee9866a0bbdc4ee41ae81a88d860f1784565b7b1cdd350e8e12241103ff9d57c86c368775530773bafc058cbcea6309bd6d9c144cf6657cac5084ac5fe63ef038a71b3d79e6b7a32cc70039e182052f5cd5e415128e9ab1f553f13c165ea122d089975c1daf617766e12d9f3abb2501571eefde182b767e4b63568d37a8c553671adcee2ee4c7c6d77493e4599cd70d002a718fe0d7c31b7df3893f8b9993c90d7d55eea1c38292f1eae3a7887cfd182977403d5c029a42809f2c6fb8d04aff1c60106ba36367ecca0699866e5ec922ebaeffc4e624d0cc2c748f9c446da0c293d8ba7a28125145ce0936a2dd47172c4502ccf050145fc0584ad8608ee8f6c34c3e718fa5ca616722c5b3549ddb5e2f6a96e82c3d706bf255afda0272c199da51f9a4a869ce8b164694f6ef7593ce08b4bb0afda822eed4a0a7863f532fc0a22de9de5d3456574021b711c42eb1c9190de35ea592568f8ba5528c0f5fadc38e10b14a89a1e49fba9a76ca2478dcca20f8a3c78bb3e1b9869b7375d0deb87819ce7209ad4d73d84a92d08d23649bb50ecb4a1763050b7860afb055461b3158647b453d7977bddde0fac9415327e7eb2ea373fc8abd6793f576e72a47c92d6f6e19fadfdf2c6912365b74929d9b483c19f5146ac5a8dd943caf50b2e0a95fb19066a63a71862a540b2e41731ea66697094e51d309589ce9d25a37c06c9a12839c4c08a050a3ff9e502514f20d573c610466ac5399e11b0153954428f25d16958ab48614d34f768991f84411c401e6900fb0dfaab4108db0ad42fc9ae0a255e60fa4d92747ddda47d07de9f847e7a2be289798c5d34924aae419abdc41d30fb095c6ccabe5c5d5be73ec6197371ea74e08f0583b21901bd748db5348282cabaf57d883f5c55311f1304d7fcd30a9f0b22f810b1a7f089860e4ca0f23ddce9a23d7167762734b10b995d5bd2cf3b31f8f24b18d0a2f7ce1101d3a32d18988f162e91ac94b0f521f24fa287b0d2b97c408079336b89af9e842cf31886c701018ba98d5b0eb0e6d41b67b499f4c466cb1412db0e5937f7ffa83426c9234c713096444d0fc65d1b45f166e54d2a54bc103de110669fbc34555a6d16714ca37651e976b06a7ee96d80af9ff50162016a998451e2ce5819f3346b1fcdf6fe9ff3ec8420d4860a9980ce28fd8c55660983a3fb02cbedb5c638a49e5cdf0b69b71d78e071f1200608e235e6ed0ee8fea5567be12018bcd026412db0538c28bcd4a9afe799d5c677298646943c4200a039d2fced71d985d188f84dfd3132b6a015c50b8a60d712a97c89e0cd7d3a1740244c1522b117dad1220463f5d4af1004c1a2ad6b5708d7d6b28f8ae1e1e7dd1b2d3798b8c2e27a3559c7202aa268099eb3bbdf7c42d0d20b47e5623dba8e6aa1392ff532113c32bd836f4160abb287aefe648aaff6bb0a23928f580347046b64babf354790704538c6ce83f117ac7e83e1e0f54054466cc82b2144cf135be31f24f1b224e2a956827c303b0d82964e284b968c5ebe97688e49ca793a4aba81a3d36eefd8c12e3ce9409be63c3a308636a7b296b804d8125b4f29068ef44d3f2a3c9eb13e61d6365bb96d6973e88a70757b1d9213511d357d252df58d1e848d534d9517165263e803855e8caf387579f1ff0e7e9c3c8e532a2025d8016b70a45c24a546f0b21acf38d16b27eae6466e22396097090291184a7719beb4a55beb89275c6893e01f2075d3b73e165c39335d34a5aa7b280386e30a6df9ba917e1dc6774e2edaa0c87e8f5fcf89306a6fdbcf8cf52cf25f5df473fe350325d510421546765acd00b34ef53e56b01445deea042282e7d6ce20c8f967204c26bda9f2596fa378dc611091ab6db9e1e8d4e9b5c1cc4c4d6ee2ad82b32d08f8cb5a9dd9b03f7aa754f2738ddf2dc0c3318974ff3810765917c251c74ce3d7132c26b5f2ede12a6f62f2e8ddecd5e0d02f99f2ed8ac15641c586d68e093fbe80cefd6a7dbdac6d43e261160807eb82fc2aea870a22b25148d256a083325a5b97bcf0187f748b6c0a1691867344efdd53809fb9edea57669c33780a4aa9e65149937817d3d845d9fccae1876575d5383d06adeacd0f3371209a30e1a9c98446174b0b98560652d0643f120bdabd5484435871b42ad0ce36aa8330c7edd26e64e89eb84e0c72a2c6e49fb24088ae2bdaf7ef07af9bfe381dd6a9ed430a553de1bad4dcefd5239b389090925a69e44e25800d9fccda11ff4e1e4d3049386397f1145c3595ab5115255bc1c1eabb379a37504eda27b1a103b88ae8f174e1d182e3dfbb0b8317d05d6e08c191661b04537421fd84057a9ff5a6eceb68c5bf1f0e356df6e93d936bb6bdccb42127cba43e7615d522242df13f08e5fa162a641430c1431a7d7181dec65202fb618a690c2bf3361d7dc689d5e4a97a550a9b17c8a5ada8f32db3f774e9ed047c02eb7d1ba7add29fa07ab90f290e77bd91ee9b5208b1fb19a37f29dd1a492fa32156a7d43146a336fe6144d19228f975c54ab304565269124e069e864873c0eef23f2e7b012e84ad0c71d76e1b23b8b9a0a66edcd59f4b203a9773ce26baee206254b49efb10cc48bad814b2e299bd478fd4bd8b1ae2c8bd99070b259a9e204e42fc5f65f9e25cb4e4a1a3b67872314fcaeede2abbbc6978660c3e685f6dccb53160d1f7517bbda54177495c23fcf45cdd66363a70a84f2699e239b5071c9e6cb19069f3e0be9f4390c8028ae9960851e34ea18ff88d36ee826c0a4db4e33e94f0ec6651a728a1a2b0c15b30a1783ad4b1d224d87264779a817d107d40c75b77c25addd7b7d6a8b73b2d551f125daed95786920c4130d2061178604f9604a0e2f1c6cdbf3066fd28bf276ee0aee379bc049bc8eba361f4052bd2a698da312c991015c0fbc43ea1d2e72426279fc5181851a15a2f4883018ab01ff8745625f388f05f5fa9abc5d87a710a1227322626115b60f781f4ddd91e205c1cca582a5e37e005396703375846be4f36fdb76c277dc1a2ff1f183cbafc6db485a562f4d08262a207844a3d12261fa0ac479abca76f417df42b037e611b1b6acfda94d5dacc620c3edf5744db24bcc41ef1722dc0e620f8a35c50585a7cecfc97f05bfec21f919420e62a9c4f28ea9585cc056aee08ed8891d077a9647d9c0b5c3141f8c517f13b05bf0a18b99111d2d6e7b4892e78fab35d882e4e153060f0c44cb946d20ad0897a34d2a24d3800b54acd68fdd797aa362560dcede6d12909948bd6f4726a20142eec9c6b78d224b2c24885490bfb492217c6809e0628164579d2c2c16a90f28aa5393ad44c45d4e1500fccdcc684023d7cac4e2cca889333f048cd9a29de018e958d00553c77c74ab50d974df5f654233fb923e809ef6ceabe6a860386603003cc376e90b8bee74f2477343a5ae923aea4ffe99a91b9d9289ddcc3ca316b026b3d369aca474b7941588fc6e9cb062528b10f13b90dd55afd64f7b0ab79163163ce02aed379af25740ac5e37c5628c0b868b7ccfed0ae521c964846f0287d3006952539b2dffaf891bd01fe98a1685e71536d7f33ae85775d11545eb379e0916be616206968605e5033267f6f79cc651c2ce71a790ae5cef19fea7604e479c0793f82db1f8e85bec40d8c6a2dbc9bf76d02a616aced611ae1a7a3756d87dab2855ca585d0048e1e4222ed9d6fa24e3e13677256fbb9959b965727c192696a11474a7f6a6b6c8efb649b1f601c76576f36996ec7a20eee84208232c20e8502903d4e303e4ad7139c654b7e5d2aa262d75672cbb4f653e62ed8e4d28835f7d6d0efb3f39c40558d9cbf19f250681a5c8a59143fec80d6a69d8a265835d6562ef248fa4ac508bd60c9283f6e731baa786828d0f7a635e1d14a448383c8b0243570df4a42799afe03143c227e3fcf0b1393bdf8bacbd26f1041d5e3112c84755942fac77981fe16f048cd882243a8787b09bdc38847a5a9cc9aaf4d30544181ff014dca8b2892c00a933333df6d8ef79041483f2d8c6416897ae7897ca1da85e8f0a493be4520595cd0dd7d32c87999e703704ba0ac7d8b444dba807746123100e2cf7573843a0a755eebad6045d2970a0ef8c9adddff093e79731d5e506f1c43318fb25144ff5fb63041574e89216ebe0ac75d7dcffc35d095691723493c94dcc11d4480bf3fe7b76ba53cae5b409c002f2d1bb5eab08ac993054ec297543798700fe3e2877a4a0cce53599a66eb4f1fef5cafc774277f0e694ebd7f8748fb5140735282e5e0b9bb35b8aeb098775a33820c9b8decad3ad6ce36f79c347dcc2c60a5442d2eab4368827acae1f0ccd52f0475fab95ac57c3c9d7c2649d355756140d5a1e8c6eab8b67a5c169cb899230c4be1dc702323f2b07ee1fcf5657361e250ccbe93bb403abd857eee4335e454e8485a3b055c908c957dca3f9a288299729216103089910386fb994285602ce12b04be1819a2c80394b2410767d9aabdb591e4c4dcd08d1d5bc1bcb532496ff1fc968ac3ff59bc7266d8ecbb67f34b681331685a99b781c9752dfe83d145bd4f3c8ec634f028e850e246aa81f1d03aef40d000000000000000000000000000000000000000000000000000000000000010cf90109b853f851a0bf32b9037b600aae3ecd3dd1838bc9f18ae1661f615cf3d70bc270b6c31f55fb80808080808080a0a2381991afea644ece5cba0d8d69f838f7b123d2e0057a54509e0c61e8b293028080808080808080b8b2f8b030b8adf8ab8301edbf808303d09094000077770000000000000000000000000000000180b844a0ca2d080000000000000000000000000000000000000000000000000000000000320266d6b1b655f66cf8f99d35432492f8fbedfa97a2a48f0efaae65de6738e2594aa5830518dca079be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798a05f3b41e975b46e86d5365943cfe25ae960fc2c7c1bb4eb0025eac5eb0bc6639c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ebf901e8b853f851a0529f2d89256fc038782a4d70b40bf127de906cbe211e7acaa3e928e0fd5cf11d80808080808080a0b4f4d0be01c65da5308bab41d52d8a7c93a1693c170c44d1f619b8364d40e3428080808080808080b90190f9018d30b90189f901860183039445b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000001000000000000000000000000000000000000000000800000000000000000000000000000000000200000000000000000000000000000000000000001000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000f87cf87a940000777700000000000000000000000000000001f842a058313b60ec6c5bfc381e52f0de3ede0faac3cdffea26f7d6bcc3d09b61018691a00000000000000000000000000000000000000000000000000000000000320266a0d6b1b655f66cf8f99d35432492f8fbedfa97a2a48f0efaae65de6738e2594aa500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000adf8ab8301edbf808303d09094000077770000000000000000000000000000000180b844a0ca2d080000000000000000000000000000000000000000000000000000000000320266d6b1b655f66cf8f99d35432492f8fbedfa97a2a48f0efaae65de6738e2594aa5830518dca079be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798a05f3b41e975b46e86d5365943cfe25ae960fc2c7c1bb4eb0025eac5eb0bc6639c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000189f901860183039445b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000001000000000000000000000000000000000000000000800000000000000000000000000000000000200000000000000000000000000000000000000001000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000f87cf87a940000777700000000000000000000000000000001f842a058313b60ec6c5bfc381e52f0de3ede0faac3cdffea26f7d6bcc3d09b61018691a00000000000000000000000000000000000000000000000000000000000320266a0d6b1b655f66cf8f99d35432492f8fbedfa97a2a48f0efaae65de6738e2594aa50000000000000000000000000000000000000000000000c080a0ae5e67673b90f2d6802e8dba26aadb2e8b81e059d1611afd1908e743e3c0b75da004886b0ac3a810519aa2395bffdd94fbcfe4a2de989ec95d1aea0fcd09afd931b9235302f9234f83aa36a7830137d664748315f42594ac9251ee97ed8bef31706354310c6b020c35d87b80b922e48ed7b3be000000000000000000000000000000000000000000000000000000000001edc10000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001fe000000000000000000000000000000000000000000000000000000000000020c00000000000000000000000000000000000000000000000000000000000001f60000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000002200000000000000000000000009d69394bd71906a235f9113cc04321f573958d3e00000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001edc10000000000000000000000000000000000000000000000000000000000320267dbfbf2c535ffc52117d4cc616b8d97bd07cdd8585ab67d9095c067e9de6d674400000000000000000000000000007777000000000000000000000000000000010012f20d5ba20a09e185d452c999c129d712b83c75480e2e029fc895986d361a781b2045b8b5226f9c1fd712d8b1a5f1faca84f5fcee87a7d1dd2b57f55617df000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000004f9456000000000000000000000000000000000000000000000000000000006436f8e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d65822107fcfd520000000000000000000000000000000000000000000000000000000000000000bbe20eedcc0216c615d3a0550a5507bdb2f9912eba7b608300486e871a4e42491dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934700000000000000000000000000007777000000000000000000000000000000014852ab81d236f35c396d4836a6f82239f5672a4b6136ab9ebdd8669a9f9e831b87a26944e5c04f16b79426135ac11b155922c14178bf3d1ecbb1fb12ccc8119a22df5003de2d5956c745f9e825a8f0ca1bb1e265d4d431781b00765e0fe37280000000000004a00000000000800000020400004002001000000000000000010000000002800000000000100009000000000000a000000050000010004020000000000000000412000008002900000000000000000000000000000000820000000000000002000000400000000000080000000000000800000000001000040c0400000000000000010000000001400000000081000001800800008280000000001200002000000000000008440000000000001000000000004000000000000200200040028000000000000000000200000000000000000010000000020200290004100000000000000902080400010000001000000008000000000020000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001edc100000000000000000000000000000000000000000000000000000000005364e600000000000000000000000000000000000000000000000000000000004456ed000000000000000000000000000000000000000000000000000000006436f8e400000000000000000000000000000000000000000000000000000000000002e0781b2045b8b5226f9c1fd712d8b1a5f1faca84f5fcee87a7d1dd2b57f55617df0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000016202bf20ff78727f38ef16e03bfb3d4895f35cc626f97ede7cc99f48aeff8661fe32015ea8d62ec7a79e01cd398e85867bafdcf55cb6a7121b6fef097f5f5656a5d11ddf336b6879926ea2ae425e91c748a553c9a496cbe2ab556a91689f75ee2b01ad3c43aa774b50a9d8411a9f65be42d6cde781db1a1949a1e886f868917997b21ad05b7c1eb0d208d17426c52831c6347a8db75b12bfeb2970c4dc6666e4eba0492d2ec318089b11ee7ec6087ab6a3df335770526cc0c1679b764d847b4ec1e303d400c12e690aa26a3771e5676e7ac95e2dc7a1b33be698f077c598f880d4203defa26ad36b84573e923af347475c7c7671be245e9859ca1db3c047faeee4b1c0e81d8a92915c2b94ff300e18f77f70ffec15631161e0bc3cdc9143c43422c208187652c1ec83c5d282e10587216eaf56689e5fe236f72c13eb9574afabc622a739cefbbe11aaa4e2e3d4c5415818914fe554a07be374f565d9bcebc0134940e8921b87bd4f6b42a6432e6e176be5ec82bb8eb6bdb7e4acc1f1e99725bd3ab2e3fa52e02c2741dfe6eddf5a3846dfd57f6a72e834faa048cb007826a293d9e163d47f9ea635871b25afcc3561dfce77b3a2604b3c8de90aa24916f41aed62d2e0c0d18f9c259bf614f1321c5b7cf7b5bd73cec408dd85f046bf36302e20f3603b7832071796022e893386de4e3b170135a591b1a44117240ba85876dba586b1f31c13d11b94f892bb9f96bd2931b66ffa5e22b104c549e7c0d5010e4e70e271d48c0bd6e4be68c920ea77af85d12eb155d9b25703eabbd0ede1909565a55f12f7e30e74b0329222f6067cad3b4324a80f570506985d729f7780955333f40e615f065023fb607d975d7a2b9f234137e72260d8f6b586baecf42819f8328dfb3304441f2c9e97d1fab9a3625073ac3d2bff6ba2f8d659cbc6f66e8d9afde1ef229ff39bac1ecd65eddc4953e2726a72daefa76f00d58e11c9a9ba3448fbe0d3a03db78d70ed9c574ddc45de5c73efdf3113ee70a4b42cea9884f85c1b995516912800abeb70f3022d5de6d9f49469161a36a6a309099ca43e388908635ed4ae825a14b7cf5213454a1f345497008ed417e5d33ef84c4934368b36f27606072192a1b43396f89647f0541dd25f55b42c5295d3ab2a22355664608b8dfec3c9d76045b27d8c2bdba7f376a44826bbf4044aed0d57068489fd32a2bf52f8613aa150185aafe655d2b86bf8867a6f7728c4133fb95776545b19767a0d7144f60f5ef038eac390d1cac6f9882211d7302137efc82b93b8f9c55db629f47a2c61931c21d01d5ad967c9dc6c1abfd496a74df2ac4714cfb027bc4d8c0153543ca663ded2af64f7396ed3b2ebd1976386814e94b7f7fcc3a19a4dd876288b905c381bc8f008de145083d6404890a863e1af1dd897aeef2516b20df50befb6c708c9728a22cb31d80b0e953aa71230d2462bb0668dd8701e11bc5240d85184f9298e2c5a3257b5dcc3e138df8b7d4162d6253fb5c21a65e952600c8764c613c6f43d22c861d4380cd688c286e9ffad6bb8582421fcab96b075769cf48b3160f056dfac4041b08287533a769bed0f08fdee9a16c5c8f414eb35830793c7b64341fef79dbc529a7b99f85d4e2e88b64954be967c5ee6386f9131b80b454ce70209f78f2101d0ca71da273735bcbcdc5ea5d3d54b607820b9bc852abb1b733cb7bb5018276d30c4c0a7f9ffcd318499a2041043494b82456ca8ac6f07678a8b770329b7c00f31e70e97ce48bc796570be27577e8986ee4c7fa51da44bdecfddfcf18686cbddc02ca206d9132d451ab55cce8069f631412ad2ae02b1a8245d31c0a65854d07370259f632fe253b2412c5a785148248d660d7cb6bef5240749d6ac4a4ac59384b27e7019c6cae15ef7c82e5a952f4da079b6205f9e16f3d3c84e94b490530c5b602d4bf5e9d34f2a785cdb7f7755d6d467a9d88071bbdf8c79195730db7d0b7872cbdcdabab02bd4b8487b726c5ce6492344ae7e900a21893e7b840b46380ba99278ce95322dc23daa97995d1149d425952913428c8ef8659dd2cc2895f12b08e0532a254fd5674fcac1b0992472ef75337d8d77f6fef3720d4b7b17302478c7d2e3b8dec7af4c681aba5e25d8aa3f4382b0082066c3f7a0b4e42c4637df90d9a1e2f3fd1cffa7e0d5577f5da89353521ed02cb1c39eb5746cef10ceb74c3fdba13199b42516ebfe29af40da64ad81b46b7bf04bf25994255c7a51f6839848810025bb52fe7500cf1ef628a07747894e3b73d53e6b2997d0654f1ffd0c070455400fd7e9d670984ac807a0f8131977ed1806fd3c0927c34b7b4dabf011d31e86b1b7932b70e7b068a2656173d241e8f20bb6be3a3a3767111aa6f459f84be961c2337f6e03ed3cc6c847a3683894288b471504cbdc43a78f856801a10a87c77322e36e0ca426ec67ad3a2a3b79bc5cb81928a79a67a0fb46bb967cbab73fd36022f92d920204de61717dde6a85b7bcf57584c11ce54ac92998f856bf042a01c5020d266b1ccea774955484405f58ad161251d879a87c43d5dbaecd976ac5d04dd2586d70031a86b0dcade14028f36a04508494c7a20e98b3b21f7765e7b3ef68f10960709e63eea35a26ff47424e18df8cc271ff3049262c855d6a131695a395f2ba2f1b039012ac8a2abdf6d9f6b0c432f0ae78b9bccb99f89759434477257ce1f44cc61e95b9c9843ec8efb17c640fc4c837ec125fb25323d3f0644615d21721607fee4d68e2dc9bd29f5b13fafe39b0710d0365dccda35e3c937aed1b6949b2a0a7523011eb706357b85e174376ea7cadbd01ed0dd1bc6a8e5a5a11bc6131f0661dd6365b13c6e2de50b98cba1cde58a921d19936c711424eb625b7c35cba01a0f7dfa8d6f86a2a02425ab48e2c28f8f2f61adbb744c221b9c4f35b16c749c227bcee1202e87537c7441f421c855ce87d858a679f09dcf814bfa1f26f7d9ce18f723d2f84d4b25ec60adbb6367e92270836d03c71ed43413767342a4fb8d6801b8755bf65e7947ed4459ad6486fc1cca1f1cc89df3d307f01d8ac68aa1d08d18aa35a46bf245589c599eddc6337e764c36426f7b7f5d2afde0a76fd3aa536d1a165f9f23cfc65866f574f2289aa5be056dd32c72a204ba8328dd9b0b4643790463484d31623127c09c6cec446a9ac9a53cb6841ca2a097ceef88e537e209880ffdcfd5033bc3f5a885c271e41ee332366345fa867780beb3c1d5eaa496ea09160db3fa7477a2fff436ecee95aa2d51ff42ca9d4fcf021b6e501410fd41098a1a8f6021636ece98c27bd74740b7280d3a5e13d9850fcf7f2118c4c91572ba5826fcc4b0837d0b394f6683cba38fa35a5e2bd242041533bd25939cc873d1f5852a2f57cb172eb17c2e3c351240a0b2b334978b90ac18041b09aead26649b1c1c019e41731e77c6b2211d7da94630507bad027561dc625b7e84094378e599a57b09eb32c2a67cf5f2f0bf9250e6da07b165f97dca10517e9f3fe3561d02ec83a722b544bd6e25ef27d9825d13651443c4d984d7e5d0fd70c2a7f983b3ae8c698d27a2a0bf2d35655f477adc99c56f48773922831746f8af58de941a020986ad7c23fb7d31c2f17f305174db26b40447e64c66216dce98e7a8316dd91dee468e602206a4d1d18fa7827f733037fa87dfc9c74c9df0960867087c776382b94db9420a19e5338e17e8a68cb7621f0b56984610bedd3d9b77dc5447cdb129ecc33596079cf206e93904368cae07f0d449e2095f8abd95f26603d2db047647babc8342200be0095aa5489fd18cd00a52f59b70ff04c4b1e572db76d08bad419abbabb00b9e485e3f017807c12b427b5e0e648cf7b16065e313c1c073ce354a5fc6812c02b8d4b6aa1168c575dad9875087fe9f61702309febfb99b895387cc1104c35e123b713019b5e51c320fc2521cdb5cfca20f617773fd46d3872128b87df6f66a21fb3fa16711245ab65eef629c5e6073efaff5b707657f4442f2eb2637fa71000f14fc691a71aacf902c0c1a1a5d7d8d351b8b3cad57acd0a9e47a1abdcaf2b70aed8b7370a6bb2bb4f3d679c4f9793e4b256deefaef1e6dbcdbb648b917e34822d833d2ac1614aebcf360d328d9271f27c52c93de4a9455ce6cd8d2140ebf6b21c9b172cf47556efc5dff9afb913e328a708292bfb65c96d668f4d0b3a9a21b222039156cba9980d6bf11efbd8dd893378e5dc1b323c57d8f702076c22d125d1489bab2553c5521631c35f7b5236007ce8f37012cace78d6eb39718904b5dc31ddcb6f4f175e52bcf6c6008f6f5a572925600194b9af7ae074dbf85119e3afd141b2ff2652a58f043e97f11b77997a9da1c96c18b5254a107f24e997a3ea61c2069b9d04d49bd1bcd2495b19bc71848f28bfb4f0346b682a1b474e040b056e60a32b5e8aa532103101cb45ca41c6a690c8688523b8566d507f29eb44fe2d2490e81f4343ca61c8783b83e40e3ce66532f186e9d09bd2667cf974a763072a910121aa5e86e151d92a868508b680f795bc30b4502769f41e3afef5f321be9ce2f1cff3eb3308d65aa0ed780cc889f605f35eb5e02ba772d08db2579f8561c61fa09a8e23ea1416fb95ca0c7e139ddd16f04b0c872499e44cb5a03868d6c5fa1300c19a96b8586b8f33bd760c6350713696b7d3236acb0eb35bde2e6378e9ef9b117b02290ead7824d42452e332f6ec95a7f871da9ebdf6ad02c959a1a36ba33ff0089a4f5217b7bfa5379a507b1e994fb7b8fef489f1f2cf6fdedf0e530635ef31faaa1a37457c445836376dc5cdefc7770fbbad8c326955655efe4ecde89bd2f1dc62a2551a45206fd7d42605aa1c0fc80476b741bd7df1f0f2db0fc387614240e78427bb3a8cbbaf9bb112da06ea6942335f88c65d42d17816136509ec39b51079b5eb2a8cd15c3d1fbc56dd72c3499c101e2fc9126e8f194c6c8006faef30917c5e535439c6b0d78be52a4d17a3a25d0878649b668db027eecbbafcfac7a612138c77d1511f9cc5e763eaddbad6d9d8770705ef7b4d062b4c6dc72f30d1d272dca8700ae03a4c6d2cc6a0a03f9bfb2615b2b294515ca80827ec9cbaa7746112530f5e70f236a641c05bbc8647dd130f02db3561f9dfaa1d687235bccb0498202af478a6070dfa49df99785a61eb5fe5f18777569c18b08d2042ae8639abbc225b832a2fbcd95ff43a3fee4fb2962983af8304ef995716110a7ad35c538697c109c01c427ca6cefef3a842fcf74b1c49a3f2da88b85fdb1d05e20cd567538942fa2f0ffbb5d2ff73d60d562d9a0a6894bec3d85a709b43e42ab64e2306cb96919e078b899f3155af56390d06ddc662afe8d2c91fc091e2c5cbbfab3fdb3f49423a5a5f7741f2d70c6736adc66e7c2caa89c6bbc678bb4b445a8a63d120867f01f164dc87adc853633ca7bd4b9d585c2a637d1469da612b5210476fc8d66f90029bdbf7fa5eddc8335cd23deb4bb47e1582e64a03dd021292d34435419af80af178cdfab0fb9374fa0fade48108cd3a571b814231784ac37c9f6071fc6ac0bb018595c9d8afbfcd6f31832b2581f7f7ce7c45d22817aab8ac6df0e0995e12dbd1595c3377b707b816c96ceb1893b9e7c747a577bb7540b89eb3ff7cac878a7a121a37b38fcd3248abfd24b50e25948dcaeff8c1c7ab8b745a93adb87cd54fca223dd940ef4d7eca9dd69243c74ea128ed624e52c7a2257f3950d0c7409d665d912495f8a8a2cf2482c1d51cd7793d3d31f32ffc24374d8606daa2a423931d97019ba2fd3ba773645b7fd01cf75e8201dd29f694a72136b585d940bff8867654223c28d0603d85fe4472d93ee30e35f46e27b8f40f9a9ad03992d9ff23305fc062c7d95971baae1ab074df88d41e09ec9752efff012c482e0cf9aea2b78cc26db146a278d584575ed615f5d168e6df7a832322da093f0aea706cee594207427d3005fd910843f3dc54b14f8b187e3b495b7474792743fc2e43f62bbc7fd50a76513f1fa4073b15a42d1e78a708134238f2521c749d086deeef512823b514aa64122b365efd51e11415de40826971c234d571c3e2a0507226c6ccc540e43a9aa32244b29784ac824c20d3d1b72dc7262f61cce4eefbe9a4ea4cb1061e4a71925aa13f31d6ce80bb7c56bf47b91cf107ab17168dd4fb60614757d7c7f4ebe0320692235fb502621ed9b15b9b3fa23aa1bf266a2a2c3f2386b52625e42e0cd85c37319e3266185419bcf6dea997e52ec8fca5887a68530002fcc5b3619e88d4dc9a918cc36bac2416ffa9b9734ac4e67a93a800f36d7aba4ecfed8d65f62cf6ad13d184a8c6406e3ba17b8aee6af0721ed091e1d225d044629a4ef5153c294a3e87e243e03bdcf6eaf7ee56d9d969a1f054d5774a7e2c363b160386b909c89717aa7015385f4ab8b6c97805c12c37d981ca945134cb1306d39a4d136b42c36d8aacd2c37575a11b17fa50ede8072d667f64bb55e3b54aff2c3c61782e442e088db7c1ce62287477132bef00c17e9992dd42f35b5e098eb97724fc4e697d75812635203abe8f96000d9553012be065980fb16d6d1c0c80457585c6eb699b0e8a6e36c1cd518dd1ffc517afcb9114a4ff629d06cd2f0be1495c4ee09243e96529e6c3a228c923ca2a703930ea94f7a5803645324ba9ea1a08e6c3241fe57a80bd24f780566342561189baed15e85ba9257b701d651754ff534e51279961ff379974e34010d80773b169a140e0ee7c5e2c0312c9dee46fb7b309710d448a43805c7eab513e84e346411b7145f77ff4ced7b32eb641528f78d88af0fe88e0840e9c16f2210e18c1da605bb04a4c963441c06fa839f722b0c67345168bc0fbb1c826f20472c7551a1327eae9eddbc24e63814fb81320cbc6f03488d64587f3e5f53c03db02cb15412e622f9ec9944643d4b5530b0cd4d577489d8ee499ecf2b74fb72423412aca8530fe53c3fc584ed8e39f900843ac73e36fb113c343cc197cd689a09e12f29203c1dfe839630f6932f3a29de81ba787f6044e70dff8981b71fe82f8a4d01f45770a53b090026a003b3e639eca0e6a1e5bdd0aad456e89d83012ea1f53e1a5fe848b33528f7195a7b0c36d4315f1b96b62d5603e87a13e12a97ec335e3922d4339d9575cb26d5691da78a738aa5c84aecc22a93033a6912f84360d13e2e23b0185bdc2cd331bd26ababcc91894935db5c7e1800b8a10db884a7614ceea91f38bbf623c5e7e7238eef06cd9fc9e43507c56e8d6212b7d03ef2db0dfceb040c0b206e1b7eee6ae564b15e4c02e9c3e4179d78bc68a9fbc2166cb8458342f218dc631705602b2ef1c6716dbc08f30810c9e2ab3ac7a03e300e9c21cd2a0240025ed5eda13e6daa246241669acfae65302dbca5c579d3b5c3a4c16a976209e22845337f9ca033329f849f3ccebc69ff01b301d99dbe9e79058fade67bf881c70283f41eaca130d1423e733ccd520f26ebbe8d304cbb8fa2f4bf67e2e041e5e90e840d5510d33a9f700219fbead699901ea3b3f8aa3d5ff0c028ceee5b5e711c29e7740bc98f4b78f15f2aa1e01449f1f15e68023861f540d2ae0541273c641914ea0e6abadbb2f11618bb678c8b7abff1f6d4e9f789706cdbd8dcc1acd4bbd506e42e928d134366d3f32d8caa4b86736bb065b1a3f89354835b7ba5ae1e53cc1bd9f5dfa3e0d49c0a0a8d32670c382712e30f8f4cb8fc980785fb6012df752e02c923d3f56f5764a41629646f9fd7641c8365f0917f85a64d0ba36179e2c2b3045d7b3c6ccfdb60cd5c365c43d88e231465c6616f7d2cab0db88cd79268e5ba0cecb98875958ee3827af7842e35d9cc89c3776e5640f2433a6afccf0e6fff9321e31802746639bf2bf77f375dd6799baa184b48815f24d3fca5d534dfe61d1306d15e97d3a320457ddd2239cc52fb31dbf98709cf090ae59afabbda6da75f4e1373a28bcadc2405e0a7f6dbf9a3e26511fc600a496b4623593213283a1fd33f000000000000000000000000000000000000000000000000000000000000010cf90109b853f851a04dd5a916917c46969db2e2093e73972daa52d5582e183eb0bd08362e7aca1dc280808080808080a03605d0d2c4765be29883abb71f1c4b162f9d6786835ccabb068a243ff819909f8080808080808080b8b2f8b030b8adf8ab8301edc0808303d09094000077770000000000000000000000000000000180b844a0ca2d080000000000000000000000000000000000000000000000000000000000320267dbfbf2c535ffc52117d4cc616b8d97bd07cdd8585ab67d9095c067e9de6d6744830518dba079be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798a05a4ba290d849b719839872aa1e6999ee672fff37d450956de85fe07c96f172d2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ebf901e8b853f851a087eef6c6fab228bc280138441d870592a3910f042806b16f257faf5f1542f9a280808080808080a00ac60a3a5bafa4560edb7bd978a6b8980fa818c5edea7c010986328de4d9b4ba8080808080808080b90190f9018d30b90189f901860183039445b9010000000000000400000000000000000000040000000000000000000000000000000000000000000000000000000100000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000080000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000f87cf87a940000777700000000000000000000000000000001f842a058313b60ec6c5bfc381e52f0de3ede0faac3cdffea26f7d6bcc3d09b61018691a00000000000000000000000000000000000000000000000000000000000320267a0dbfbf2c535ffc52117d4cc616b8d97bd07cdd8585ab67d9095c067e9de6d674400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000adf8ab8301edc0808303d09094000077770000000000000000000000000000000180b844a0ca2d080000000000000000000000000000000000000000000000000000000000320267dbfbf2c535ffc52117d4cc616b8d97bd07cdd8585ab67d9095c067e9de6d6744830518dba079be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798a05a4ba290d849b719839872aa1e6999ee672fff37d450956de85fe07c96f172d2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000189f901860183039445b9010000000000000400000000000000000000040000000000000000000000000000000000000000000000000000000100000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000080000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000f87cf87a940000777700000000000000000000000000000001f842a058313b60ec6c5bfc381e52f0de3ede0faac3cdffea26f7d6bcc3d09b61018691a00000000000000000000000000000000000000000000000000000000000320267a0dbfbf2c535ffc52117d4cc616b8d97bd07cdd8585ab67d9095c067e9de6d67440000000000000000000000000000000000000000000000c080a0d86a71e8e531bae3b2a2e70d98e516ccf31b6583d936ffa31c3772ac265db828a0420f5a8067c7eec5214117647da149eaa4e7c78a10d8ee6fa62001ee1b680f9fb9060002f905fc83aa36a7823d3f647482a9c494bac000000000000000000000000000000000000380b905930001536cb8da3dd105e94414690798c7f100000000057b78da8ccffb3bd38b03c0f12199bb964b426dd6b091efd7dc3ad1a9d321d1713b2ea1189d39280b4791c5c858729090c3b6182ac75951eef74b38191686b35c4669656ca9dc5a0ce7e9399f7efffc03afe7fd6e7485887f6264e97e9856a6978b65c5db3b4ce57cf4812abeba0de10d0d6ee5a2cbc9885a2163a58d1895524adbfd86d795eac74ec74d783b599861bf4b7b3e6daf70b3ae0e5740c88a4dc15b893f76fe074a718bcead52fb2a06d6e5f1cf3ca344ad05dcf5ca10bd9bc2809cd8ecd40a2dd0e03200dadd8f921f0e9953a7e6d8c7dc99e60cf6fe81465175e0cf99b702ac6a13706e64ac349a1119796eb0b6e7d5ae48ad74a5c997d679ef9c637c619587cb98ecf88e620dacdc57701500c74e087533f978831a78bf3857cb6044a8c66e41645cdee74ac7cdac69a8484083eb003827ccfd6b92c77b7097a15f38a419f6f0578f3568465e6fb639f1a8d6e52e9d17a0413100ca8d08b210a2e5adb2bead3dfaada14b2513113802f3996daccac89014dafd1368700300053ad7daeea2a4d4d9e8502aa44337c6ff91165a25de84fe5273b2e5b7f4dda3a0410900125e7778d5c2a59a2ca2ce36bacc9e95812ae1b69a478fc7ecf5ded14b68a80a010d6e03e07137d5de8082773f8a422390cd0a592d81e6e623a42bc69547e6b343e1d9a14e64ac3486116e29a8315486a2324d93d3e33a8344ffdbc2655b76dbf72077e43c13961a6a52f0565f2000881576c7a113e7aa6e9a6ed4679014533f8d1bf80ff44ae5599813e80d2c1f2fd0a03400864952137916724a4504bb118ccaf9236f217a1e43c97e471397a3f86672226dd0e02e00d4dcbfe4dd250a97d0c830b3d93213fd048fed38ea8378018c726be68728e22c687037000e3bb6d2858fba82db877c2e28fa1e2cca4ce57b6bdfdba7513dcd2649da93544083d06f85c8f4d21559e8e7651dcaa0c3aafc4a691fdfb27f2f39ea08ea62feff43cf0d80061500b0b00cb246f3641d83f5c934c477ca641a5c545da8aa0e4662c4c5f26ee70525a04125006cf268fbdcaddb151168bf24d3fa2e09f7445d859ff9e5ba2fe71e7ef8861ba61834a80280ebddf1bc99e8d00ae5d2a0893d64774d4cea1bad7146fc964526b6c4617cd70a68500d00f7e8131b976b9537ab4e2b9c9cf086fcfd82e235cf6c6eabbf8030cc3fd1e395071a840120bfbd7fd4a54397eca0c0f7adc1231dd539950f508f92e237e3aeb91468c38d4083ea0068a89abd38178e2e9f67559758419b6908d48d58967547c9edfe98ba016e050734a809807957936c079272b238748593ee3a73f5c7647d0ece20a5c208769c484474aa2f192b6dcc780a770c9b40b42348219a34a746cb495f3f1efb710a816ac142121461c6f7bf82fb00b0dec5bfbcaa2e32983075c84989e439154bfc7df1d0549680a6c1a4999c18aa010dee074028fcade2995b7daec4562449ccbced0caf7a660f49ac4ea07d485b22348948a0415d001ce8e16f70ca5813141f7f7544586da1364d2f77dd8fbb7cc937c6d46136f93d68f000009a72d59e5a9bdf1de5e60bbb17358bc65e8ff1566fabad6d6eb42ef2781f6d6d40837000bce21c64847942319b4ac1c92b2ee02fe2bfbf43b685908b92a0c3cd25f21641a0417d0084138599419cf73489312bda0d53e1fa748e1f7927380961470ec9fda73b36978c953661c8065aaafe09fb847fb54e35b3c68f771b6953941b2b4e619b486d81761ee187bf828700301cd34529763c60738c12e1ccce6ddff8b8338cda8fda245e5d8d5613d20734408306df96bd65c7b8d5c27299269dd9335ef7cb1f3357145983f365ec2f933686fc6d77d0a01100ca3a3773d3f0a52559ee691776b714fedc8c7b2cd672c7065c295693d0616d37408318007c18e9a9f6e4929e20d8efd4c2428065720ed1938af8e5348c14b373b0a845d1063468d2f96f000000ffff86f9aa5001c001a08f785a1c8e4c549c415dd948da80f86e3aaabc4e7a784604b6362208e0fb6b85a011d366d57b6ad95cda2eb6b618704859b4d433ad7557cad177eff6f6bae578cbc0f90200df8345de7e8203e494e276bc378a527a8792b353cdca5b5e53263dfb9e82168cdf8345de7f8203e594e276bc378a527a8792b353cdca5b5e53263dfb9e82168cdf8345de8082062294388ea662ef2c223ec0b047d41bf3c0f362142ad58212cadf8345de8182062394388ea662ef2c223ec0b047d41bf3c0f362142ad58212cadf8345de828201949425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b8212cadf8345de838201979425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b8212cadf8345de848201999425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b8212cadf8345de8582019a9425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b8212cadf8345de8682019b9425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b8212cadf8345de8782019e9425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b820f08df8345de888201a29425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b820f08df8345de898201a59425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b820f08df8345de8a8201a89425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b820f08df8345de8b8201a99425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b820f08df8345de8c8201aa9425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b820f08df8345de8d8201ac9425c4a76e7d118705e7ea2e9b7d8c59930d8acd3b820f08" + } + } + ] }, { - "name": "eth_getBlockTransactionCountByHash", - "summary": "Returns the number of transactions in a block from a block matching the given block hash.", + "name": "debug_getRawHeader", + "summary": "Returns an RLP-encoded header.", "params": [ { - "name": "Block hash", + "name": "Block", + "required": true, "schema": { - "$ref": "#/components/schemas/hash32" + "$ref": "#/components/schemas/BlockNumberOrTag" } } ], "result": { - "name": "Transaction count", + "name": "Header RLP", "schema": { - "$ref": "#/components/schemas/uint" + "$ref": "#/components/schemas/bytes" } - } + }, + "examples": [ + { + "name": "debug_getRawHeader example", + "params": [ + { + "name": "Block", + "value": "0x32026E" + } + ], + "result": { + "name": "Header RLP", + "value": "0xf90236a09f73691f6dabca4f0a99b05d0a701995506aa311dcaa9ce9833d6f4ca474c162a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794c6e2459991bfe27cca6d86722f35da23a1e4cb97a078103ea8c47231886481d72ec1afae6eeb06c3773ce24a91323d5c9eed69d4cca0008992da2531db404f07b0871dd620a94ba346963e1b1c6dc7b00748e8593a1ea0b6c3890d9604434fc52f722848c84d1770add20cd75bbc28cdedff42940dbb56b90100200800000400000002000e0000000401000000440100000000c0400600000002000801000000040480020840048000000000400000000000000020004220000011002000000000000204000800000010010002000002000000000040a000000000000400020000010885000000000808000000008800001004002010020300005000000010002110410402000000000000000890000008000000000000000000020040000002000000000000810400000040006000004000004080020000000000000022001000000000000840400000000220250000000000080402000420000418000000000000000400040000004080040010200000000000108020020000808332026e8401c9c380833e3c3c846436f93899d883010b05846765746888676f312e32302e32856c696e7578a0112d8f15793e7df7f8dcdb21c891cff78c0d1839cb5b6dcd06116cdbb99536ae88000000000000000008a0cdb97712af6685bb9650d21d609525913293c48adda7c45990926daada335c9b" + } + } + ] }, { - "name": "eth_getBlockTransactionCountByNumber", - "summary": "Returns the number of transactions in a block matching the given block number.", + "name": "debug_getRawReceipts", + "summary": "Returns an array of EIP-2718 binary-encoded receipts.", "params": [ { "name": "Block", + "required": true, "schema": { "$ref": "#/components/schemas/BlockNumberOrTag" } } ], "result": { - "name": "Transaction count", + "name": "Receipts", "schema": { - "$ref": "#/components/schemas/uint" + "title": "Receipt array", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes" + } } - } + }, + "examples": [ + { + "name": "debug_getRawReceipts example", + "params": [ + { + "name": "Block", + "value": "0x32026E" + } + ], + "result": { + "name": "Receipts", + "value": [ + "0xf901a60182c70eb9010000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000002000000000000000000000008000000000000000000000000000000000040000000001000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000100000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000002000000000100000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000020000000000000000f89df89b947753cfad258efbc52a9a1452e42ffbce9be486cbf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000828d0386c1122e565f07dd28c7d1340ed5b3315a000000000000000000000000021849e99c31e3113a489d7eb0fd4d8c0edbe47afa00000000000000000000000000000000000000000000000000000000029b92700", + "0xf901a70183018e1cb9010000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000002000000000000000000000008000000000000000000000000000000000040000000001000000000000000000000000000000000000000000000000010000000000000000000000000000000008000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000002000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000020000000000000000f89df89b947753cfad258efbc52a9a1452e42ffbce9be486cbf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000828d0386c1122e565f07dd28c7d1340ed5b3315a000000000000000000000000069cda9d6cc6ce05982d0b4fdf9480f2991f39b5aa00000000000000000000000000000000000000000000000000000000029b92700" + ] + } + } + ] }, { - "name": "eth_getUncleCountByBlockHash", - "summary": "Returns the number of uncles in a block from a block matching the given block hash.", + "name": "debug_getRawTransaction", + "summary": "Returns an array of EIP-2718 binary-encoded transactions.", "params": [ { - "name": "Block hash", + "name": "Transaction hash", + "required": true, "schema": { "$ref": "#/components/schemas/hash32" } } ], "result": { - "name": "Uncle count", + "name": "EIP-2718 binary-encoded transaction", "schema": { - "$ref": "#/components/schemas/uint" + "$ref": "#/components/schemas/bytes" } - } + }, + "examples": [ + { + "name": "debug_getRawTransaction example", + "params": [ + { + "name": "Transaction hash", + "value": "0x3a2fd1a5ea9ffee477f449be53a49398533d2c006a5815023920d1c397298df3" + } + ], + "result": { + "name": "EIP-2718 binary-encoded transaction", + "value": "0xf8678084342770c182520894658bdf435d810c91414ec09147daa6db624063798203e880820a95a0af5fc351b9e457a31f37c84e5cd99dd3c5de60af3de33c6f4160177a2c786a60a0201da7a21046af55837330a2c52fc1543cd4d9ead00ddf178dd96935b607ff9b" + } + } + ] }, { - "name": "eth_getUncleCountByBlockNumber", - "summary": "Returns the number of transactions in a block matching the given block number.", + "name": "engine_exchangeCapabilities", + "summary": "Exchanges list of supported Engine API methods", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md#engine_exchangecapabilities" + }, "params": [ { - "name": "Block", + "name": "Consensus client methods", + "required": true, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "type": "array", + "items": { + "type": "string" + } } } ], "result": { - "name": "Uncle count", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_chainId", - "summary": "Returns the chain ID of the current network.", - "params": [], - "result": { - "name": "Chain ID", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_syncing", - "summary": "Returns an object with data about the sync status or false.", - "params": [], - "result": { - "name": "Syncing status", - "schema": { - "$ref": "#/components/schemas/SyncingStatus" - } - } - }, - { - "name": "eth_coinbase", - "summary": "Returns the client coinbase address.", - "params": [], - "result": { - "name": "Coinbase address", - "schema": { - "$ref": "#/components/schemas/address" - } - } - }, - { - "name": "eth_accounts", - "summary": "Returns a list of addresses owned by client.", - "params": [], - "result": { - "name": "Accounts", + "name": "Execution client methods", "schema": { - "title": "Accounts", "type": "array", "items": { - "$ref": "#/components/schemas/address" + "type": "string" } } - } - }, - { - "name": "eth_blockNumber", - "summary": "Returns the number of most recent block.", - "params": [], - "result": { - "name": "Block number", - "schema": { - "$ref": "#/components/schemas/uint" + }, + "examples": [ + { + "name": "engine_exchangeCapabilities example", + "params": [ + { + "name": "Consensus client methods", + "value": [ + "engine_exchangeTransitionConfigurationV1", + "engine_forkchoiceUpdatedV1", + "engine_getPayloadBodiesByHashV1", + "engine_getPayloadBodiesByRangeV1", + "engine_getPayloadV1", + "engine_newPayloadV1" + ] + } + ], + "result": { + "name": "Execution client methods", + "value": [ + "engine_getPayloadV1", + "engine_getPayloadV2", + "engine_executePayloadV1", + "engine_newPayloadV1", + "engine_newPayloadV2", + "engine_forkchoiceUpdatedV1", + "engine_forkchoiceUpdatedV2", + "engine_exchangeTransitionConfigurationV1", + "engine_getPayloadBodiesByHashV1", + "engine_getPayloadBodiesByRangeV1" + ] + } } - } + ] }, { - "name": "eth_call", - "summary": "Executes a new message call immediately without creating a transaction on the block chain.", + "name": "engine_exchangeTransitionConfigurationV1", + "summary": "Exchanges transition configuration", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#engine_exchangetransitionconfigurationv1" + }, "params": [ { - "name": "Transaction", + "name": "Consensus client configuration", "required": true, "schema": { - "$ref": "#/components/schemas/GenericTransaction" - } - }, - { - "name": "Block", - "required": false, - "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/TransitionConfigurationV1" } } ], "result": { - "name": "Return data", + "name": "Execution client configuration", "schema": { - "$ref": "#/components/schemas/bytes" + "$ref": "#/components/schemas/TransitionConfigurationV1" } - } + }, + "examples": [ + { + "name": "engine_exchangeTransitionConfigurationV1 example", + "params": [ + { + "name": "Consensus client configuration", + "value": { + "terminalTotalDifficulty": 0, + "terminalBlockHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "terminalBlockNumber": "0x1" + } + } + ], + "result": { + "name": "Execution client configuration", + "value": { + "terminalTotalDifficulty": 0, + "terminalBlockHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "terminalBlockNumber": "0x1" + } + } + } + ] }, { - "name": "eth_estimateGas", - "summary": "Generates and returns an estimate of how much gas is necessary to allow the transaction to complete.", + "name": "engine_forkchoiceUpdatedV1", + "summary": "Updates the forkchoice state", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#engine_forkchoiceupdatedv1" + }, "params": [ { - "name": "Transaction", + "name": "Forkchoice state", "required": true, "schema": { - "$ref": "#/components/schemas/GenericTransaction" + "$ref": "#/components/schemas/ForkchoiceStateV1" } }, { - "name": "Block", + "name": "Payload attributes", "required": false, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/PayloadAttributesV1" } } ], "result": { - "name": "Gas used", + "name": "Response object", "schema": { - "$ref": "#/components/schemas/uint" + "$ref": "#/components/schemas/ForkchoiceUpdatedResponseV1" } - } + }, + "errors": [ + { + "code": -38002, + "message": "Invalid forkchoice state" + }, + { + "code": -38003, + "message": "Invalid payload attributes" + } + ], + "examples": [ + { + "name": "engine_forkchoiceUpdatedV1 example", + "params": [ + { + "name": "Forkchoice state", + "value": { + "headBlockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "safeBlockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "finalizedBlockHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a" + } + }, + { + "name": "Payload attributes", + "value": { + "timestamp": "0x5", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "suggestedFeeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + } + ], + "result": { + "name": "Response object", + "value": { + "payloadStatus": { + "status": "VALID", + "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "validationError": null + }, + "payloadId": "0x0000000021f32cc1" + } + } + } + ] }, { - "name": "eth_createAccessList", - "summary": "Generates an access list for a transaction.", + "name": "engine_forkchoiceUpdatedV2", + "summary": "Updates the forkchoice state", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_forkchoiceupdatedv2" + }, "params": [ { - "name": "Transaction", + "name": "Forkchoice state", "required": true, "schema": { - "$ref": "#/components/schemas/GenericTransaction" + "$ref": "#/components/schemas/ForkchoiceStateV1" } }, { - "name": "Block", + "name": "Payload attributes", "required": false, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/PayloadAttributesV2" } } ], "result": { - "name": "Gas used", + "name": "Response object", "schema": { - "title": "Access list result", - "type": "object", - "properties": { - "accessList": { - "title": "accessList", - "$ref": "#/components/schemas/AccessList" - }, - "error": { - "title": "error", - "type": "string" + "$ref": "#/components/schemas/ForkchoiceUpdatedResponseV1" + } + }, + "errors": [ + { + "code": -38002, + "message": "Invalid forkchoice state" + }, + { + "code": -38003, + "message": "Invalid payload attributes" + } + ], + "examples": [ + { + "name": "engine_forkchoiceUpdatedV2 example", + "params": [ + { + "name": "Forkchoice state", + "value": { + "headBlockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "safeBlockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "finalizedBlockHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a" + } }, - "gasUsed": { - "title": "Gas used", - "$ref": "#/components/schemas/uint" + { + "name": "Payload attributes", + "value": { + "timestamp": "0x64e7785b", + "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14", + "suggestedFeeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "withdrawals": [ + { + "index": "0xf0", + "validatorIndex": "0xf0", + "address": "0x00000000000000000000000000000000000010f0", + "amount": "0x1" + }, + { + "index": "0xf1", + "validatorIndex": "0xf1", + "address": "0x00000000000000000000000000000000000010f1", + "amount": "0x1" + } + ] + } + } + ], + "result": { + "name": "Response object", + "value": { + "payloadStatus": { + "status": "VALID", + "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "validationError": null + }, + "payloadId": "0x0000000021f32cc1" } } } - } - }, - { - "name": "eth_gasPrice", - "summary": "Returns the current price per gas in wei.", - "params": [], - "result": { - "name": "Gas price", - "schema": { - "title": "Gas price", - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_maxPriorityFeePerGas", - "summary": "Returns the current maxPriorityFeePerGas per gas in wei.", - "params": [], - "result": { - "name": "Max priority fee per gas", - "schema": { - "title": "Max priority fee per gas", - "$ref": "#/components/schemas/uint" - } - } + ] }, { - "name": "eth_feeHistory", - "summary": "Transaction fee history", - "description": "Returns transaction base fee per gas and effective priority fee per gas for the requested/supported block range.", + "name": "engine_forkchoiceUpdatedV3", + "summary": "Updates the forkchoice state", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_forkchoiceupdatedv3" + }, "params": [ { - "name": "blockCount", - "description": "Requested range of blocks. Clients will return less than the requested range if not all blocks are available.", - "required": true, - "schema": { - "$ref": "#/components/schemas/uint" - } - }, - { - "name": "newestBlock", - "description": "Highest block of the requested range.", + "name": "Forkchoice state", "required": true, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/ForkchoiceStateV1" } }, { - "name": "rewardPercentiles", - "description": "A monotonically increasing list of percentile values. For each block in the requested range, the transactions will be sorted in ascending order by effective tip per gas and the coresponding effective tip for the percentile will be determined, accounting for gas consumed.", - "required": true, + "name": "Payload attributes", + "required": false, "schema": { - "title": "rewardPercentiles", - "type": "array", - "items": { - "title": "rewardPercentile", - "description": "Floating point value between 0 and 100.", - "type": "number" - } + "$ref": "#/components/schemas/PayloadAttributesV3" } } ], "result": { - "name": "feeHistoryResult", - "description": "Fee history for the returned block range. This can be a subsection of the requested range if not all blocks are available.", + "name": "Response object", "schema": { - "title": "feeHistoryResults", - "description": "Fee history results.", - "type": "object", - "required": [ - "oldestBlock", - "baseFeePerGas", - "gasUsedRatio" - ], - "properties": { - "oldestBlock": { - "title": "oldestBlock", - "description": "Lowest number block of returned range.", - "$ref": "#/components/schemas/uint" - }, - "baseFeePerGas": { - "title": "baseFeePerGasArray", - "description": "An array of block base fees per gas. This includes the next block after the newest of the returned range, because this value can be derived from the newest block. Zeroes are returned for pre-EIP-1559 blocks.", - "type": "array", - "items": { - "$ref": "#/components/schemas/uint" + "$ref": "#/components/schemas/ForkchoiceUpdatedResponseV1" + } + }, + "errors": [ + { + "code": -38002, + "message": "Invalid forkchoice state" + }, + { + "code": -38003, + "message": "Invalid payload attributes" + }, + { + "code": -32602, + "message": "Invalid params" + }, + { + "code": -38005, + "message": "Unsupported fork" + } + ], + "examples": [ + { + "name": "engine_forkchoiceUpdatedV3 example", + "params": [ + { + "name": "Forkchoice state", + "value": { + "headBlockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "safeBlockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "finalizedBlockHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a" } }, - "reward": { - "title": "rewardArray", - "description": "A two-dimensional array of effective priority fees per gas at the requested block percentiles.", - "type": "array", - "items": { - "title": "rewardPercentile", - "description": "An array of effective priority fee per gas data points from a single block. All zeroes are returned if the block is empty.", - "type": "array", - "items": { - "title": "rewardPercentile", - "description": "A given percentile sample of effective priority fees per gas from a single block in ascending order, weighted by gas used. Zeroes are returned if the block is empty.", - "$ref": "#/components/schemas/uint" - } + { + "name": "Payload attributes", + "value": { + "timestamp": "0x64e7785b", + "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14", + "suggestedFeeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "withdrawals": [ + { + "index": "0xf0", + "validatorIndex": "0xf0", + "address": "0x00000000000000000000000000000000000010f0", + "amount": "0x1" + }, + { + "index": "0xf1", + "validatorIndex": "0xf1", + "address": "0x00000000000000000000000000000000000010f1", + "amount": "0x1" + } + ], + "parentBeaconBlockRoot": "0x11f780a954bcba8889998e4e61deaae6388dd2391e9c810bd9c94962cc1eadc1" } } + ], + "result": { + "name": "Response object", + "value": { + "payloadStatus": { + "status": "VALID", + "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "validationError": null + }, + "payloadId": "0x0000000021f32cc1" + } } } - } + ] }, { - "name": "eth_newFilter", - "summary": "Creates a filter object, based on filter options, to notify when the state changes (logs).", + "name": "engine_getPayloadBodiesByHashV1", + "summary": "Given block hashes returns bodies of the corresponding execution payloads", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_getpayloadbodiesbyhashv1" + }, "params": [ { - "name": "Filter", + "name": "Array of block hashes", + "required": true, "schema": { - "$ref": "#/components/schemas/Filter" + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } } } ], "result": { - "name": "Filter Identifier", + "name": "Execution payload bodies", "schema": { - "$ref": "#/components/schemas/uint" + "type": "array", + "items": { + "$ref": "#/components/schemas/ExecutionPayloadBodyV1" + } } - } - }, - { - "name": "eth_newBlockFilter", - "summary": "Creates a filter in the node, to notify when a new block arrives.", - "params": [], - "result": { - "name": "Filter Identifier", - "schema": { - "$ref": "#/components/schemas/uint" + }, + "errors": [ + { + "code": -38004, + "message": "Too large request" } - } - }, - { - "name": "eth_newPendingTransactionFilter", - "summary": "Creates a filter in the node, to notify when new pending transactions arrive.", - "params": [], - "result": { - "name": "Filter Identifier", - "schema": { - "$ref": "#/components/schemas/uint" + ], + "examples": [ + { + "name": "engine_getPayloadBodiesByHashV1 example", + "params": [ + { + "name": "Array of block hashes", + "value": [ + "0xd5f1812548be429cbdc6376b29611fc49e06f1359758c4ceaaa3b393e2239f9c", + "0xfe88c94d860f01a17f961bf4bdfb6e0c6cd10d3fda5cc861e805ca1240c58553" + ] + } + ], + "result": { + "name": "Execution payload bodies", + "value": [ + { + "transactions": [ + "0xf865808506fc23ac00830124f8940101010101010101010101010101010101010101018031a02c4d88bfdc2f6dbf82c33d235c4e785e9fc23b2d0fc7b9d20fc5e9674f1f9d15a016d6d69b925cf26128683ab4a096e196fbb1142d6c6d4e8d3481b9bef1bd0f65", + "0x02f86c0701843b9aca008506fc23ac00830124f89402020202020202020202020202020202020202020180c080a039409b4e5603dd8c3cf38232348661a8e99ac518396eeaa128ec9ec2a3eb8127a06b21ab956f5f138cb44fda1a9055bd08980ea4f8040d877c00dac025608d0d95" + ], + "withdrawals": [ + { + "index": "0xf0", + "validatorIndex": "0xf0", + "address": "0x00000000000000000000000000000000000010f0", + "amount": "0x1" + }, + { + "index": "0xf1", + "validatorIndex": "0xf1", + "address": "0x00000000000000000000000000000000000010f1", + "amount": "0x1" + } + ] + }, + { + "transactions": [ + "0xf865108506fc23ac00830124f8940101010101010101010101010101010101010101018031a0d9712a3c40ae85aea4ad1bd95a0b7cc7bd805189a9e2517403b11a00a1530f81a053b53b0267a6dcfe9f9a1652307b396b3e8a65e65707a450e60c92baefdbcfbe", + "0x02f86c0711843b9aca008506fc23ac00830124f89402020202020202020202020202020202020202020180c080a071d36bc93c7ae8cc5c01501e51e5e97a51aa541d1a89c809a2af7eb40e9bc2cba071644230e21c075c1da08916aff5efe9f95a6f6a4f94dc217f6c1bb4a3240b29" + ], + "withdrawals": [ + { + "index": "0xf2", + "validatorIndex": "0xf2", + "address": "0x00000000000000000000000000000000000010f2", + "amount": "0x1" + }, + { + "index": "0xf3", + "validatorIndex": "0xf3", + "address": "0x00000000000000000000000000000000000010f3", + "amount": "0x1" + } + ] + } + ] + } } - } + ] }, { - "name": "eth_uninstallFilter", - "summary": "Uninstalls a filter with given id.", + "name": "engine_getPayloadBodiesByRangeV1", + "summary": "Given a range of block numbers returns bodies of the corresponding execution payloads", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_getpayloadbodiesbyrangev1" + }, "params": [ { - "name": "Filter Identifier", + "name": "Starting block number", + "required": true, "schema": { - "$ref": "#/components/schemas/uint" + "$ref": "#/components/schemas/uint64" + } + }, + { + "name": "Number of blocks to return", + "required": true, + "schema": { + "$ref": "#/components/schemas/uint64" } } ], "result": { - "name": "Success", + "name": "Execution payload bodies", "schema": { - "type": "boolean" + "type": "array", + "items": { + "$ref": "#/components/schemas/ExecutionPayloadBodyV1" + } } - } - }, - { - "name": "eth_getFilterChanges", - "summary": "Polling method for a filter, which returns an array of logs which occurred since last poll.", - "params": [ + }, + "errors": [ { - "name": "Filter Identifier", - "schema": { - "$ref": "#/components/schemas/uint" - } + "code": -38004, + "message": "Too large request" } ], - "result": { - "name": "Log objects", - "schema": { - "$ref": "#/components/schemas/FilterResults" + "examples": [ + { + "name": "engine_getPayloadBodiesByRangeV1 example", + "params": [ + { + "name": "Starting block number", + "value": "0x20" + }, + { + "name": "Number of blocks to return", + "value": "0x2" + } + ], + "result": { + "name": "Execution payload bodies", + "value": [ + { + "transactions": [ + "0xf865808506fc23ac00830124f8940101010101010101010101010101010101010101018031a02c4d88bfdc2f6dbf82c33d235c4e785e9fc23b2d0fc7b9d20fc5e9674f1f9d15a016d6d69b925cf26128683ab4a096e196fbb1142d6c6d4e8d3481b9bef1bd0f65", + "0x02f86c0701843b9aca008506fc23ac00830124f89402020202020202020202020202020202020202020180c080a039409b4e5603dd8c3cf38232348661a8e99ac518396eeaa128ec9ec2a3eb8127a06b21ab956f5f138cb44fda1a9055bd08980ea4f8040d877c00dac025608d0d95" + ], + "withdrawals": [ + { + "index": "0xf0", + "validatorIndex": "0xf0", + "address": "0x00000000000000000000000000000000000010f0", + "amount": "0x1" + }, + { + "index": "0xf1", + "validatorIndex": "0xf1", + "address": "0x00000000000000000000000000000000000010f1", + "amount": "0x1" + } + ] + }, + { + "transactions": [ + "0xf865108506fc23ac00830124f8940101010101010101010101010101010101010101018031a0d9712a3c40ae85aea4ad1bd95a0b7cc7bd805189a9e2517403b11a00a1530f81a053b53b0267a6dcfe9f9a1652307b396b3e8a65e65707a450e60c92baefdbcfbe", + "0x02f86c0711843b9aca008506fc23ac00830124f89402020202020202020202020202020202020202020180c080a071d36bc93c7ae8cc5c01501e51e5e97a51aa541d1a89c809a2af7eb40e9bc2cba071644230e21c075c1da08916aff5efe9f95a6f6a4f94dc217f6c1bb4a3240b29" + ], + "withdrawals": [ + { + "index": "0xf2", + "validatorIndex": "0xf2", + "address": "0x00000000000000000000000000000000000010f2", + "amount": "0x1" + }, + { + "index": "0xf3", + "validatorIndex": "0xf3", + "address": "0x00000000000000000000000000000000000010f3", + "amount": "0x1" + } + ] + } + ] + } } - } + ] }, { - "name": "eth_getFilterLogs", - "summary": "Returns an array of all logs matching filter with given id.", + "name": "engine_getPayloadV1", + "summary": "Obtains execution payload from payload build process", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#engine_getpayloadv1" + }, "params": [ { - "name": "Filter Identifier", + "name": "Payload id", + "required": true, "schema": { - "$ref": "#/components/schemas/uint" + "$ref": "#/components/schemas/bytes8" } } ], "result": { - "name": "Log objects", + "name": "Execution payload", "schema": { - "$ref": "#/components/schemas/FilterResults" + "$ref": "#/components/schemas/ExecutionPayloadV1" } - } + }, + "errors": [ + { + "code": -38001, + "message": "Unknown payload" + } + ], + "examples": [ + { + "name": "engine_getPayloadV1 example", + "params": [ + { + "name": "Payload id", + "value": "0x0000000021f32cc1" + } + ], + "result": { + "name": "Execution payload", + "value": { + "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a", + "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1", + "gasLimit": "0x1c9c380", + "gasUsed": "0x0", + "timestamp": "0x5", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "transactions": [] + } + } + } + ] }, { - "name": "eth_getLogs", - "summary": "Returns an array of all logs matching filter with given id.", + "name": "engine_getPayloadV2", + "summary": "Obtains execution payload from payload build process", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_getpayloadv2" + }, "params": [ { - "name": "Filter", + "name": "Payload id", + "required": true, "schema": { - "$ref": "#/components/schemas/Filter" + "$ref": "#/components/schemas/bytes8" } } ], "result": { - "name": "Log objects", - "schema": { - "$ref": "#/components/schemas/FilterResults" - } - } - }, - { - "name": "eth_mining", - "summary": "Returns whether the client is actively mining new blocks.", - "params": [], - "result": { - "name": "Mining status", + "name": "Response object", "schema": { - "title": "miningStatus", - "type": "boolean" + "type": "object", + "required": [ + "executionPayload", + "blockValue" + ], + "properties": { + "executionPayload": { + "title": "Execution payload", + "oneOf": [ + { + "$ref": "#/components/schemas/ExecutionPayloadV1" + }, + { + "$ref": "#/components/schemas/ExecutionPayloadV2" + } + ] + }, + "blockValue": { + "title": "Expected fee value", + "$ref": "#/components/schemas/uint256" + } + } } - } - }, - { - "name": "eth_hashrate", - "summary": "Returns the number of hashes per second that the node is mining with.", - "params": [], - "result": { - "name": "Mining status", - "schema": { - "title": "Hashrate", - "$ref": "#/components/schemas/uint" + }, + "errors": [ + { + "code": -38001, + "message": "Unknown payload" } - } - }, - { - "name": "eth_getWork", - "summary": "Returns the hash of the current block, the seedHash, and the boundary condition to be met (“target”).", - "params": [], - "result": { - "name": "Current work", - "schema": { - "type": "array", - "items": [ - { - "title": "Proof-of-work hash", - "$ref": "#/components/schemas/bytes32" - }, - { - "title": "seed hash", - "$ref": "#/components/schemas/bytes32" - }, + ], + "examples": [ + { + "name": "engine_getPayloadV2 example", + "params": [ { - "title": "difficulty", - "$ref": "#/components/schemas/bytes32" + "name": "Payload id", + "value": "0x0000000038fa5dd" } - ] + ], + "result": { + "name": "Response object", + "value": { + "executionPayload": { + "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a", + "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14", + "blockNumber": "0x112720f", + "gasLimit": "0x1c9c380", + "gasUsed": "0xbad2e8", + "timestamp": "0x64e7785b", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1256f99fb899c2de0aeac0c5aa6aad69de188b6a0f4ac29f2d075a53aa3ed0e4", + "transactions": [ + "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90", + "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee", + "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d" + ], + "withdrawals": [ + { + "index": "0xf0", + "validatorIndex": "0xf0", + "address": "0x00000000000000000000000000000000000010f0", + "amount": "0x1" + }, + { + "index": "0xf1", + "validatorIndex": "0xf1", + "address": "0x00000000000000000000000000000000000010f1", + "amount": "0x1" + } + ] + }, + "blockValue": "0x10a741a46278014d" + } + } } - } + ] }, { - "name": "eth_submitWork", - "summary": "Used for submitting a proof-of-work solution.", + "name": "engine_getPayloadV3", + "summary": "Obtains execution payload from payload build process", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_getpayloadv3" + }, "params": [ { - "name": "nonce", + "name": "Payload id", "required": true, "schema": { "$ref": "#/components/schemas/bytes8" } - }, - { - "name": "hash", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes32" + } + ], + "result": { + "name": "Response object", + "schema": { + "type": "object", + "required": [ + "executionPayload", + "blockValue", + "blobsBundle", + "shouldOverrideBuilder" + ], + "properties": { + "executionPayload": { + "title": "Execution payload", + "$ref": "#/components/schemas/ExecutionPayloadV3" + }, + "blockValue": { + "title": "Expected fee value", + "$ref": "#/components/schemas/uint256" + }, + "blobsBundle": { + "title": "Blobs bundle", + "$ref": "#/components/schemas/BlobsBundleV1" + }, + "shouldOverrideBuilder": { + "title": "Should override builder flag", + "type": "boolean" + } } + } + }, + "errors": [ + { + "code": -38001, + "message": "Unknown payload" }, { - "name": "digest", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes32" - } + "code": -38005, + "message": "Unsupported fork" } ], - "result": { - "name": "Success", - "schema": { - "type": "boolean" + "examples": [ + { + "name": "engine_getPayloadV3 example", + "params": [ + { + "name": "Payload id", + "value": "0x0000000038fa5dd" + } + ], + "result": { + "name": "Response object", + "value": { + "executionPayload": { + "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a", + "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14", + "blockNumber": "0x112720f", + "gasLimit": "0x1c9c380", + "gasUsed": "0xbad2e8", + "timestamp": "0x64e7785b", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1256f99fb899c2de0aeac0c5aa6aad69de188b6a0f4ac29f2d075a53aa3ed0e4", + "transactions": [ + "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90", + "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee", + "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d" + ], + "withdrawals": [ + { + "index": "0xf0", + "validatorIndex": "0xf0", + "address": "0x00000000000000000000000000000000000010f0", + "amount": "0x1" + }, + { + "index": "0xf1", + "validatorIndex": "0xf1", + "address": "0x00000000000000000000000000000000000010f1", + "amount": "0x1" + } + ], + "blobGasUsed": "0x60000", + "excessBlobGas": "0x0" + }, + "blockValue": "0x10a741a46278014d", + "blobsBundle": { + "commitments": [ + "0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d0", + "0xabc07739e8026f10eeb9a014f804934b7b8179be4d0cc36be461163862f6a575c564a3acd27de42dc50aaf4cf214ef7c" + ], + "proofs": [ + "0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x80c5f2e1eb23939cf3600f61872e3e9964d0acafb440634e530d6139a193b889c56a0c07d737729dbe0626706fc9f25f", + "0x98daeed734da114470da559bd4b4c7259e1f7952555241dcbc90cf194a2ef676fc6005f3672fada2a3645edb297a7553" + ], + "blobs": [ + "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x722662154e6d76b2b2b92e70c0cac3ccf534f9b74eb5b89819ec509083d00a503ae5c198d17634e79059c2cd735491553d22c4e09d1d9fea3ecf214565df22847267ddd7c47030f8667b61a9860b085c060c07eb215a4de991a8fed0cae3821f0ee8de64d25d2de4a710ea9fd89f8f4666fcc7451e6d69a02098bbe5d5b87c60720f6db75bcbad49fc11512930d9d97bef3f2b4bf6c8fcbc414bf61c98d6bff23ba6ab1d76e044908135e6c8720d3d8ca18be1e013c275ba9f2a5d7eef5c2b5f3868df470b4e7848f79d98cfd7381c8e38e9ddbdf213af8d3eacbdd1b7d0fea5724fa5aee5f5b819f35f8fdaffbddc2a2bb2fd21f07f24fbe11f98ebcdbf6e327257389fb0bcb43108092945312d767d4485358fd543215807db5e5e3cb3741c722f2581d15ec8d6eea7c0e7db2ab6f9b5a774be8341d32a3739d103929ce0547208b324b7b29a85552d2fc90b40f9e510680ace1447720c98002f7ef7b7fe09308ff3a8f75036c48afbb09daf42f1f36f477e64606c3322f987fb05603bc62d2171de0fcfe3090c32234a712d7f2483806f192771cd0e2ab1472efdf428f5fa72c2c5a5ca73e3f095ad763054ed2a4a8fa6a05bf3b029646c5f8b61033ed851727e7aa4d120f9817ab2420a7cbdefb67d6d1666cc00a1a37b564ceacd14c37c72e0ae06fa1a09bf6307e226d29942db1ef31c65de6a49922f8f4860ec2d8a71726f74cc29496a85a775bb29103f75247b2b34718a89010dd9371557c1ed466772087bfe3148d17f8279de1fe8387104d0e25bb36e0187b2e1d4df9df3efc52d72f896e5aae4e5371bde4571421bdd1e47b1ece2a8fadbf27f27b87d1689f4453d87d4bdc1f411bfa13789478f4b2f6203af19c7c24063e3d2663dc7a3c97d1255862ec5121e4cc733e7e6929847f32353a4bcf6897f1ff52dcc66d8c9923f0d525a22699ebbebcc80fb1f158beb8c61511698ee9fe9b40a2ddea746c7a921e8532281b46bf4ef7183597e208aff1784d79436cc69ef5bddc0db29fe2da84bce72c78b23dc94c1e76598dcd6ce8c24c0bd72cb581605c4d8a4e711efb957952f7266f9faaad1e0258462eb68de681032d3dcc3047bbf1c7f1f3337bb67d9563a7212a42a90dc93647b636540c774a680e8ae8958f386d4639fa9d61e02fa5293540f6f733de496a0548eaec3d510ee6e1ae2822d348793693e1dc38dd3e69394720adba55b6792fad47817a9ba0881572b4ecb1a91cc7fed3e2dfc51569419777270437988bb74e5eeb888d5850f9de432ebc6a201546325df68f10049d54c9672b3f5271eb5cb37a995d9ff04162a5320a480c457409b28a663ed71b2b40ad22b541b5ffddc62d08b8d4c8da62d21fa429a6d658b35432a73651ad9f9c2121e72e172dcb51ae6ee4f2bbb50c51a97ce7c742fad786e465de42cf569f543c4cc2a37942bf3455a31fcecaa6c1e2718d00478871dc9d0ddb6e984701196f49ac972a3fdd50e631e828c823a3546198efe5f8ca312e31fb2a6baf148cabd595ab8720657f8dd99b792976e6e087b711977ef17efd4e0d28d9cee48ec113c5092567248b25bcfd5bbada813642323a7fd7a76356cde8dabbbea44cde6ce1fcc1e667280e5932f0cd08b3d2399a574629e1eba98b0a0db467a6649945f8e271cfef1223006baff8511b554b9c1181d74c499e3516c03103cb6ccb1e549e9e57be80f72e392508bc624d9af47d2da2ba898fc32608a4df1a5ac4954d819e17ba938a57237c699abbde80e4a73aa42a4ca855c8108d4658b0293f09a94fe192a5c040472b56dfeeb18c3563c86f325b8305e9ab84b276811af6e07bc15aa3ed3e4781931452258d387e284a4dd23b7884b8e9f0a3ae41779a20b18607d692283a413bc4338ad9312499fcf8b17a6f28eab8ddc3151ae89805400a1096164063653267f724c8b712452cbe999386c45e54d94916e0a8017e0dadb21ad27c8059214d97d32c76fc47dbbdf528745ae9e55cc5da5ff0f9aeb46d1b79654600fa3c7df49ac723c0fc457440862b4c6138d577fb8d74ada728be3c5438f5c2c1da853305efe72a917c4dfd89735e8fa5c07c9cc4452b6844463a18781bd9accdda74b1e958e1ca7de9f49c900079ab6108670cc5519b6744ad2d105f6b0d4ec5b5ee88cee9b4e3148da1dbc9c813ad96e911faad349151d6843954d89572c17f63b83cd2def722859980a43cb112480a70af211617d8e346e961abf2f5df65136da1619e0f07247b1a8589f00e9deef61970a23edd6b96b330e54c98e0df0e602724d00368c729f09a21d1b52932276b1aff4e63d00acb3a341f16999d5a013c2454f95ced30f0d22f6c88f672ffc3e61d5223da39266f62ebae5dd75a489efeb6df0862d1172cddf0e365f75c18dbc848f6746a3ccae1684752a217409b8b57a91aa05eea272f8c96a09594956c3e5d917cd6156c096c26dbd93f9a4fa5c8a411092c0c1c63be9403f19d6c6a9a052fc4a6acf46c9fdaaf8a662591f754c309c2d5f6275e92f64b6f81649fbf5e8f05c7e72842ea62acc9b8ab8c82e49b8e96af2219b2b92722cd5a628ab14f7483f8f56261aac17e7b8bd1016a4a9616075829c20eb540672ca8d829470c0050d8f08417cdf4eb417ea0c5864e9e7cb8caca88832cb245f726d60a46004f4bf71f107330d634b86d9fa89051573ed947e7e095d8cfd677d72396912aa12b9fb8dd7d4f21dc0bb28f2d1e290476787f63fa3e4eed2469cf772cfa7451fdf19674a0100d60ffc535cda86c248de1f17c60cde104b974105ec6edc9b7e40822a96b3c7e6018e60db2493d3e53aa0cb9ca9e359940644347ae23fe53c98062e74cb991ad7e03342614f8696bbfc097b1ba768e04449dcb3298d72e50a0733a644a6c06d06e8274d90e3d9994ed7b928ae7c7efad145e2306ebf3a2f258223afe8f1d4219bf37da3670026264d4dc1d2928c1b7865bf99b036de7289286ec6abd1235ada7c4efb349d21f79ca0562ce3e931eb50d4116a4af7bf72bcf2f390341412c77cbdeba26cabab50d0576a00b313fec424ba03d4de19a372326b171e251700a72121d7fa0009e4e8c94e186a7be365ba1568d993ac16b9720764806197b2eeac2d7565783b938a6fbaba57cb60062b53c1e8ce226983a972deea93ced7b88c2e87920a0156c1b94a4bec0e47fcfb30e1972f047b56252b69df22f121758a49b08d8e5147a761143e6ec5e2a4322f9feda4dee59b268c4872550a76c5bc0c07232a77c7d04c47b30ef6965840756e007cc872f71e9faf194a62b69787e017762fd4f9148f7a43b9d50d8abe4290fb986864ccf24f9f52f8483c87e5e4e45c4e935f4f337b7d88baa38b9039fdf03ce40a9ffdc6e111fe692f38c650752019db283668560fd31349c5849183f0d91de0d2b88931ed393a3172624649937fb1afb04a92ff2c4469041679057762ddd15a4c8a4501b6116c9a72a2260b2e8588948fae691303c5a7041027ce4a5827c39edc6a8714434b537d724884fbb9a39bfbf887e945157ca2ee990fded68e30604af9942f8e39195c5972a532333ef4d5eacbc9be8534273854503a0eb94eb6007d4f7ef386c6aa37a866e1c12c0f34f5db2a92b1e3ad467c7e1f75bdad36e05474e15816bd1df4ec85259262d3ff7a5184f80122b13de208e87bd9b2c607e6efae864569a2d8b464fc0473dea65351f4e3d52a497452c79740c458450914eda689474367217d18d62042e63487cdab70eef512f6681a2aef4d2359783936cae2a5c3df843c93c7f35f7208b386b9822f79d21154a1edf2568b4b355ed7da3cf7e5e7954ca7582217a2728bc1c427610a3831d67b931f296b3c30b372d19fcb4d60b3c0b8bfe0f667503dc7cd70d41df629ff139d0f66952901f42795c4babc68f653ed080bc895f56f4053aecb97f6603926a2ae285df8cf20c57e34e56965eaadd4f7bd1b20308f8072508390724cae5611f0574d1e83c0dbdfbc61ab06fdcc0e65be32bf272ead8672545a8145bb1179511c8822c63ff1e7bfbb3b8527c48ba5be283078ebfcaa2f72eaf0a362ff747e226c4f228281fe5e3606eb826f4161828ee1a501d48c6a362749ba4302b8941d81be751f23cd27b040c2d890c9a6a2047b3a1f7a33fce612725e7d8319decc545803a420099ad5a7ca52b41b0f51e588d3583e71244d75027237107713dda0803055314c1fae8fcd8993632a7ed91bb0fdcc791cfb3d720372d2f506986989051a6d32777c2d1aa025246788f30f54c144c0535989333d57723f9ff54a691d043f2c2d84ae95272807860d6c576a0c6dfd90c4bae6b650327225078ac2bd96dc5d646a873a6d7543c2e1265b71f99d3c9f1e2a06a3059c06727c0f5196419afc19a455bc3adb4ae23e69ea0073e7c600fc5dfd7050bbab8850ba35b25de6dbbd8f7f7b395acb6b6d460e7b7883e93508c42d7f2afa4c8f9a26f769f1a0d31fe888ca7ca2771e1c1287314d2833ebd53726af856e4658a0bb6ed55c41ac04b434a3e6736cd9261300b9315ad364c467238487ba0108aceedd1c8814f7fa9e14b82243164e84760887a2419e1559123e9d5f941bd41c8833ca72390d33a27d45b6e73ab4ee02f23b3b01ee0f94b4a98304671f1aab423feecd2879fb6196503b6eb499f20144c56836c3cef788d0ae530e8aeacaf9c01ae40172297c5f46f70b085417bb1c4217ef6b0f3400b4994e57cef7116feeac37c929392ab6bb95ffe92f643f64ec7e036af2656f84727cc308354091c1cd7eaf4df17244b1a04514d4f8e1629881c84cb6f5be182b40b498c3faa55b28a786436929728da528e60150034e1466b60a7ebcf37958455eb09686965c81b585bdcaaadc725ace191deda3b0d0fb3e6363f28b626c14e45918bc314684682b68c51fdd127235c1dfaa021dd9625ce84ad3dc3acb7978f57825a6faae9e704b9ab51772da6119e184ae1bc99ee29bfadf8abc83ab6805488e89ce22a201400c1d9def057462da34cefd8ff96ab767dfb7d2df3b9d2f137fc400338fe88a6c18f8577507f1188dcd5bc975f0412396b1bd5c11f6f6065e058af459835ff942ae4f80ae4c117239828b98b3b34d092cc8cd53a7f7e804d2e337c9fd857228e52c6370eed766729553fd9dcdb643a0127ae1cfca8fe8b3811380b3327c3128db4b6695a6b4a572af57ce3e5e9af156f3c384becabb58717849f493aca027b6f69d6062ccdb3a2fb8230770b229b0ad7098273521675654dc773ff906463e1f3ad49bcb6a418f4d5fac59377fcb804e3961475b38a25e3763c699eb40f33aee021e41d443f1017256cb851ca61b1370239f4b03a34ca4f37c74f6f6c22512debef1be3f4f9bad72f8afe5e15b43685b128d3572a72a4fc33d32aeda6083f2653c7929dd49b5b52c9a686c0d981cd7ad501f137cb66af04bd05188d937c4d6fc0444e119a50f07721a297dd9eb1973d530f9b38715555d91c1eec6225c64b1f9093c903a0ba2b9723b644ce3d551a6ff5f9321ba199b3aae1fa76d478024308ddd8f13c8e177bd725efce52fe97dc5675c7b6916e8589d5e4ec332893e5182a539099c9401b7eb724ea77c823e92465de46d8506c47eba0855bd20f44b0481c4e5aac4dffeaa9e72c236b9021a4f3e40d87d7458be37200b9d53fff411464c3ca836fe28e228cc1ba779f1389f2e71054227bfbfdb43b609e097153ab9e6261468406b34c79688726a4aaa9d768dd5908f762792c833d95d8e194b2fad756aee5c37de5f4e2ed44170d1f80080a562e7a107f0ff741707efdcdcfc116f5d623aacd314b91438ca72f46a4000c0427eeff855d6531c8bd33cafbe7431778b7314519a30712901e0023b24aa992fdd04d537cb0d100761a09977b374209d78ee4a7167f8f36c0ccd7282fc96317f9a1ae0999a71b0291b4fb3cd9bd5f6ed6e78d25f3532394cd167135732b24157d0ac1fc33576ad1823ae1d194a204ded34dfe469ffebe7dc990b72482e9be7351717592fe2f2bec5ecdc91129927b221ad24011c6d11bf3a35f3727f9343726101841a1897aec82d3cd3b08cb95ff74115b202b036373a72416b72c16e4ffdb612a659ceaf00c477078be9cb4a744b45230b8e8269d23c2276ef488825fe04954d85fecee29d72ed7174f8369b7c7a92cd0a1146b8b01b292aa44556d3f4f0ebcd7c551de21462c37e2fb248a5944fee3b730b4bad7c98a095c6726b053c55a55939e08338025cfb41d2397c919aa9ca24e99aad7e262e04f307720ca07ff1216adfe9768c95ea2f31268b15e554968e0de7698d920e6b3c885a7289df3c060501d14822eba963db261b7ac90bc04b1153069580963acb0a7eaa35023bc710d5cf4b5795f6735fa0c8fe7b5b8c82a9b25b9902b2beae749c305a3f7350a85d3913d50cf277e3a0cb2b4c97abe7f6b751c7a541e20ae8b95c112f72a57aa2a793d96b7344fcfa8f2ae7dca3c77b0002489b2bc9986b08c93bf13f72fbccd659056a078da51fad2b3e9374fe1fbfb5fa2c1b5d929e806ff19c23ff30a34c17fb42fe2c9758b0b6b9ad11b63c70a906357b954568e1f67a86180c8b727a6d6153aa544e1f8825f67d8d3e34a5b2de4881bb8fa6120d3817eabbf8dd720012d82975f3343bb2214c138beb912ba8c823b945e89b87c3777f300ea40172b2f5c6e92d1f084e485fd7310408a7ddac1152e1ae7a2a1842121db65dfe8f7205f5bc346a35d3f8feb1f12bf63773417479f8d77b91b5d08ca33c5fc448726a9e874a18aca01384468788d1c76a375960707e27a96f414d56e75d301609c172cf73f8674b44fc19889d02764727b3f00b72b19cfb011821985bf5b6c404a87238b6b4f5b5aeec031af043e0ad241b75f2217d39e388c8194c81e1865707b166e8d3305ddaaba522984c2f16adc97a0e5b03803748f4407c6d4458d3ef4d4324fe24df2ab497000f70e0950c6d9d15bc9e6244e6114b7164d9f9785ee7003172b381284a9a047e78ff4f24700a96cbc204c4fd2551db3053e39ed9b40ae5f7721942dca9e69da31ee7b525010f1b05e574fa2bd0accc49c332fef85c4a62b934c23be43dc5d57d7616d315b8872fa25c565b42da8aac84419f89d8914099bc721e8aa67fa922570c8ebbcf32062db11e2564024707dcff5f9f1c442f7f4062729e5a2154d190d98bf30e60c9716905da3c6cd526b44d8424e17e26b20843704a8b8757130f18c89f533118a4894f0ad2df09c5bd5f8f9f6913a5e67d2b2ef215576dc32227618136e680c1088c5f14cff5cbc717a963fc387d8bb19e01e7fd7256d0695995ca54363328194a5f1650fa13b594ece69a133fa545bdafc26f93725a87ccf2f60072a8135b94f50bdd6bf525b2e584f2923b8ee8c2b583286d9928115e91e0bbc097e5c15853e39f1b07a5709db8d67e19d7ebe86feb74fdabcc65f0abdac0c18bf865851639950680a44a2dbafc3b82e5d901518734d81063c6728442089150aeeeb6e1fde66966456570bfea301cf9f231d4d9d85a7f50a9647248b26d930dc67bb301a4ee15db3c73bccc7c3430f5587bcf5544a7d3dc16994ad88ada2e1f86c08cd13aa9bf59740c3d53b56729137eaf274e3b211cbe09ef72c70d2e975a79bdc7ac33b65d913af0bad759097dc689509a6ec3eae7de87d6720484f7d3dff6671c4c34f8c154467c6ab82234556ca835507f9c01b29c624f498a2a1a4220128f9fb94e0aba663ae81f8538db88b9637a507d7e160ec07e0e0de58869281fc25e6d523bc095868f3e86902095dacbe62da72c5cfca8a4634067e7fd8c932fd65cad326f5054a5ca19e658cf16e8d389d2b67d0ed89a959d30727c804844cb0f7091d18f5a727cfc58207e3156a0edb3d7934fd1b040a3e74072545b77dbf3430ee883a713917c82a721773935ae3e4167b272c1c6b2a911e872e95804e3ee667c63c1cd44b7be371eb5206558f92eedc6362e793d5d6164d745fe1e6447a33636639c46db25865707ba137c57d2aa40931da57d603f5b2681728ed29c9e33fa0a20c2c7738974f4010262b29dd80a16d89c5b6f647bc740f44925be33d0fe2745f1f851d33354252f678c48a125ad6dfe6e415488c6cf5e5472a8eddabf37db4f3083766fe31072c68867122086d05f5f4a7ca181620ded5b20907cb6675e3923e9bc930cddbc38a35f1e5c45fddd75447d6887242b0c69ed72e2f5d57bf97f5ecb94ef2a99870963d7f2ed3d5c682cddb2e12075200b762072031eafae33b40b88fb871d2fb0c9599ea598beb4be4268991c47218488133e7299ee4f43ffb7f3c144c8b0984dfb74448696ac72f37b678aef102845c27b951c0ec031f25c192176b9262a2c81bb5adfbf52c461767e8a63d80a80b0d51491521214b845ca333059f174daeb9879952344dff8eeb7c35b3a1d4d426fbbc8b772a1ff091577f031413cb2f19e96d04dd4b53bea75723105746248ef6f91d80f4f2009ec370debad1fd2f646cd5dfb0c2c162ca8a92535b35bc526161d3643561fe3abd951a4f00fa8abb19ce7c8d9733b2629fb9ff8c7f5cc6037c70c228dc625606104e01f93c81e9bcdc07e2378a8d79bbba35e7a5fad47279932ca03e00472d36e66f55491c860b3a2b0ac3b8863dd453e2f62ebab7288f9ea395e7c165b72139c9b5c5da1ff9f3204bb05a9df069ff12a9908b752d3de38c17c865790ce6da43ce01beb565ab3d18c6220d2c433552f431e536158f4bc38cc4d6dca18d172c1475db6dd16ba788373bb0193094208bf5de4da76d68026448fe1625325ca72d511aed2f0c5c58918cc0207106858a804de142eca9883504449c950479e7f725903aaa55c5fc3ce0e77e9be43de16f636e9e3352aa9c0f3f3cfecaf95b159724faecff96b575143ab2c42489f3c34daf215b85d64f8bc41ff4ddf065c605872ede24be716bf588fa2b8c04162baeda5e2d204efd5b838842507b7b06f68e4721eaf34be7b1f657ceebd981622df84d536ea6f4838b3643b40304664673ec64fb9174f38547d2481e3e851f9b3cedf71310a9832d1cadb9c63cb8c81516eee72fda00b7bda35301844c0c026a166ef8716608e57bd04013e7a8aa93b23c70272bf2c145d66851d25783ae26da22fe9a756d79ac42c82fb0df0e150c1f9ee8d72b219046c462b1abe8a2ac1773efe1134b6c6cba637a6cfe5359c5d853777d139a662a4c19d014d515f00d024609ba54b1e1ec845cb414824dfd3aee1381eac65cbed7d0768f94e1024796397f2fec000e18deaba42e7e27f62fdc0213fcb15720214a51a1ae0e3aa0ef5d723b01d63b8cea2324549b1cf15336d331a9cfb2c727504947db5aaa1af52a6fa1225b9e2031b48fe5267a4407d07874b5b1471504d495f51d6ee6c87624672f8ff8d10fdc20ff538b518fee6286e460dfe861eeb72d31fad3edae3bbffd723153935b054a709f3cd48f9400d7ca9458beb67acd544406ffae187de4e17480994c97775a2ff137834282a250104254076bcf502084c35c24b223f69b2d510829c852a09facc27da5cb47fa027eb2f358b66e389085df181ffdd4a957382ebce4a10c2a2f272aab7f451ad89e9fb12a8823267d6eb62662caf594ab3ab196c7d6c8c757491b41f278619c3fa0bb3badd91f58be36a2efef3dad05317dc01852b04209d4420b5c2a6161b94a9ee5e6f55cafc79660572e02f2d41358004c75f56448bd7016c87a590d2bee38b2cf4d7c302c2c9430972ab03d07a8098b16c046d04c14cc80e5b59e16ffd870a55277a074840aa28c9727f6e77997f2617005616d79c2dd03e7019078917d5e0e5d2e638ea3d214a391670c4512818a4cb8040dfc25fd0264fac6abed2f131ccee0ad7f8caa26957d6498a3f23015ef4da19e915dce6e40f0de5be101857a843d6d60dcd2a12e1dad659c4ac3ae494e382a73b2b3c8cec58e0f35f768521ee89ee39f155ffd74ceb50262bc86dfc3b00e3bfcbca32694d20e1f4167959206e12864921c76f8ad7f46272397428bf84beb8b86e4417086fa2905a744bcfc9d9d32a3c9b9eb92dac9cfb283ac49f4dc172e8c1b05c6597dbe6afd9260d63317143d962e56023e343671b725f28a3a2a2d482b40a919b8271443a6089d28732b999e359ebdfb02024061e1c33f383a8fbf4bfc083885812c4761ced88489465792651b0fee9e208d0e04172abd728a5b9d4c75c221ad4aea8792384f6a6184c1027ab30e6b94322751adf724930aa77c8fccfd7f27d5dfa8bb2afa100d008864adf087165c40f7480614172304686e694796669a4f8a1195b96a7a55583c87c97bbdfd3f38679bf1430b8724a7f29fc23b36fb8ac4dc421bb848bdab1823d4003a3973d4ecae8894cdeb67222e70e36a3d5ab9be292b8c78878cf2b61210724d5cc1a2d8466e6526b7e325834635d6ef11a243c1af025164ea104051aff08fd713c1fd38c3c07d5c8e6bb1618c7638d7a58412fae59db6ee9dac6ff70f90b3ae6b5322153663ab5b724b7727e6c79cd9cdeb3e047c35bd3db80594567050d5e0974df7df04a1e474c17a35e8ba2708d7579bae959f0c0ad5c255132b0cd6701ae0453c097bea87d4dfb310ece09c086e2b1a375a79f6f181f16a2c35742e09edd7b003298e4b805d983a0725e825b36d027c6ac0aae07962dc20c9b39989bfab054fab17139d05ce14e3363c20367883626231f7e602d5c7bf8afbe07a0b8c90854e6f6ec3d8afea616340267e3b757d0facd4b70131233232e91a74a8f93539bc7dbd66ee49bd2c85946661b3a1b6b1b2229e223d59ec7eb742e9c68abad97a7c1b968e7e7b555dd42b56c8ff9d7803ef77b1368e798a984babd1bbe488366f5a8bc1cea0b687b84fef77224dabf4fafa99fa0a53b95e5bc5d804fc80b237b1b941a70921fae76a4e10e6468fef9e04e46ca16c00087aa356aa90cb0dab4bc7ccddeb1af7744d461a8b672ee3321a71f62bfe3cdd21d32f185ba5c2701f9efb32f28063c42925751ea8f3f3d6a4469f94e004cf2b21738bb206f410529a846d6765adf4a22a9179774e245e242d13c2be27c631410a16e754ac18699b6fc8530ce72967bb14327ab286372b65d740ce8d25d5fdd2c4030ce7d20d67d945fb8558149ece75006274e5adf72d078522e81a2623aaacd45a5eced756ea6c0aef163871e514686ab742c000d726eb2dd6a127a3f5aafa8e0ce6ed49d3aa96526eaaf619f940824a341c5c445072fc345ca71f77a2fe313e11f281419136b764fa5130825b2c5109dfe3fe3891a71a181a7a05ea1cd6c098edba4d1b049fd5626eddb35f0d8214424d9ed6c0f7202ec32519a49c9cb435f7a80986b65469f8b5b8c2cb21d00ba499de6160b3d1ff5c4b94dd917da88fef2a11492da8c9ec1020debb4b74f0ff920f62f99705f726c6b74b97b617de69d4330e72f3859f0250b81c6dfb45eec737769cc2af88956d1205523a954ccff10e5c6455c3ac53da19e2ee5ea05418b4aaa9d87014b9e723074c30e5dc326977f3351c88dd3d5c930bdb9cc592a08bc3267d255dba18172809c96b83b88feeb86619abd15fbe4f33d8bcc68b0ae41977513151d6237b1720230507aa59e4535ca1c433dca37d7aff430e545659a5ed458f33efc8f8e4c342ff8e0e8dd8cf19503d7127ca1c011231fe9945c86ce702463f15641f066e26d10e74173f9d374e9f20d268211487113568170772205d2ee9eaae88671a52972411d5910c7e2ba4f5689d9dc76a43c33bd3e542d8c72db08b3b16e2cba009e7212c800b0292f526b61ed350bcd531c5a61cdd462405a5438a214986298582472731ad982f9c8ea1e089ab33d7a105e824139261fc40468870a7a6a5b910f2c29fea513d73966e3b8ea3062af73f61199266f6683e0d7c99981a150b205d20f7223c194bfe90714cf529bd28f8086d387bfac2bea03cf625eff5129183443752b4b823f03fd1188fc5e92bb2bf2fa153a5ae95cddcd422d6008d5243762007b077897a27e2d0834c0a46ed0b5d090b51747696e30911fd88453eb002e1c0c892bb0a0e19864b7e604ea03578b5420b937cfde1b41fbfce4ed40f51d481a468e7238077637e010d4c4ab122a5b2d5736c9dbbf287dde274216d311f24586093572fabfa4f019ae4c2d7db60744d49deaf5f320d1abaddf0e11b2d1727385198e70fce6e6a9c7ff29cee07e39cd1efd20efef866e8064e745984133e39e26a71c0b8eb3ea21a89c2440ccfb44de8dd748962b0ebd3c942e82f65e05f076902e7572809e88fb1aabc5fd39afd427379bf132da8b887c8b53870c6d42f326f37e543ea86a21b9b8a6eae5ba1d0ed7f416f70eaf328b0166b03cbad0fc01a751bd0a729f1e3994795bbd0e251606a57aeea7a99de5f08bbc09a486767e28658091d4687a45f5d31c62a340e92f289f59ef8a16f84ba5e94f2bf12981bc1c6cb883af7283d9e25e31089b51af39b85f1e3c10d8dece04b7df8021d009dd47483928f07260acbc359dc8abe54699d8e4ab1dd208e164ae9685e141a567e3c08daa02b77215d7c8eaf12a791d5af5a3cc79de8b3e40e7348f1f35b7c8498cafd2d1320b720d84e6f38abb8248c5755a922d4423eb639303624a6ebc93d2ae7710c8e1ad5bf1e1fc55c543a2a6016c2f4c9e44ac1a11710ba2a9b0c41edf53adb33c08ae729891ac4483ae648942b14b8516d80968411068a3fb69808be7d2889da2a9633b2680006f5f8f35dc8b44a739c065b5d32d7ed78f3c75b6b5914888a6e6b89972baca4c4b04f48f9dc42f539d694bc72fe6adf4b855b4cc90e922d3967e17997230ce42ac72989c2e575cd5b69c1bc9541617964a919e80a2ac3f353f1541257225860231a656d71408184fea81e017b4c380bd9197c43ff2011f966d83c5f072b3091988a8e087a604c0837a32a03bc6d0050e521cca1b3cafcb90731dab417228c5df9760777edbfb20e134301e6e9965fb289c2a85a25552b2ecc0e0a1707271e61920650d1a0dbf7841363e67292cf2dfea06ee6fefc38aa53afc96d5ea72fd30514591efb45991000e0f9465a30fb90ec68b98026b0252aee1adc3ccd772734aa3f566bb3ca235634dc25ce78e2d119ffd6d44434641e6bac9170e97397207c67c577a6a56df0737b6d9a524e020c15a6943da192dfe32932ab26f3fab4d8d47cdc0c1e1ffcb22b348ac5f3156d4f6dc6ef8c0f349e834ed9a0a9ac44f2c1c51ac98fdd718ec79ec66172fdf2e67ebd6c505ac55d378e4219925725c8872dfacf149c3435a7199b6a62bdcd316da8c467e4e0e3167577388dc8199c61572ae4f01d8c2f8a98740d44d3a584c8ca4591efd905275e0ee2b9b98e61cf4f96d3da3e7c8a63687bb4c1edf636df23e91fc71c3ce7a2fe38416bb31a9744e3953cc7fac6c91199798906bb5b56dcc36d74472257afc0e41ccce2dccd5da16ba0474a453fe076a16e5afa6aee9a5f447bfc466be01127a4ae01f1039349a5d33723045539a87c7898d3f5cc15ba8f38c75a949010a2a7ee0e30eac3882f0673c72abff2479f600869e98d67cdf47d76e0735b8d41fc038999b93d5741a46e36b724eadcb569bcd5c4bdd50ca8db6790583317f6b36f3e67a5838718325dc8584723f7d2b5ef0a12a66ec11d3a2bc9c9383f34fc0a7ea360c5207e62b43997f446dff11934554b523de562aa3fb2751e70248ce16c85c31a61292c08f424c4c5872b41231a942d88989d66feb3c1070c3bb0005b4e5095d6269438d24a5723dfe72e1e2fbf7dd00a589be04414cb2b60f6d41a228aea9511ec261ea544a4e5aa14c609f2ca5551761c1ee4fe4bceea21a7e226349d74eff8c420d1de8a79c418e5b3692f948058d2d0caec220cd500244e259d9993e3b053fa9d7258bf396992872f716113ab2a5dbf6c7608e716c1d2f35d5d7de24bff3e9420c095370f384c8721676a8f252d20294e1ad468c6136b9cb872fe98f8588e9de476845997fa2236a6beaffb983b4dca1b2a928f44c354bc01e65cd1a34b4f58f400a407862338b5fd3fb1585f9648bf9f4040a3b6c73212896a748b58589de1a594613fe6852b92bca1eedbfd29e4fd9fdffe890ffda7ca471be5d0e07493df9e241eb68723a9e727282757fde6c9faffbac375feba511db1848bc824b333424189d79b5db0cba56f8d85c72a154e90579db7e6315143a4ff09aa0418227ef0f38375fbcfe28d03e8ad70198bed5c3d024a8c8f121d66431ae2e544d50bbdd3012541db70399152133ebfb0283771ada32cfb00401324ae7505095dd33915230eb4bd9ea96d69c72880e28dabe5208ce685b82ab6ce0e0170e25e2da97ff2a49f6aa37f6ee0d9537bc2f858eaeaa1acf4bfb6a8ddf08943cf7636cea95d131e09e71579d07c189724eef62f9c94cbbfc4766403d3b5fdfb07ac0969006012806c1ceda3a4e99ec72eb43d2e69babdf311760b775473598b45e7dd623dbee17ddc0ba99a32be72c7254060174044b9e943283133e326eda4b06600a692f8a4db67fb3f560ee1ef572ee97e15024640c66370970e999bbe09e2c3d5c154245be4fa6023a3cb2561072b96797ee106ed99bdd4ea0f6f7d55106fd6ad15605c35e165d1ce0838056e74a66a0280abf186eeeb1148d83f5c8a178b9523754505a35082cb70c95e92d4b0907e89be23def17d608b0ebedf89df7bf134db2a882cc327353f33df031010372139f9335914eaa548b63cc9cecd3d1eea88f9eb1d1dfbe28025b41a92554701992f6aca9ee6d3fb398eb36d95636fc72be095d731ff2f0d7a53c5bbe190fdd72692031a5147f61b8e1b1717207559ef397ac4e2901f30bbb8d76f341f263fb72b181452db6a7feedaa53d0db3596fbcb8dc600d2581d6d3d3783296c14acfe72f340a6db51d18c468eb97ced177958b7143b8ca652917073ed5d30a64ba2f130d0cb06a62998d8b015862f6064aaca062cc3b84cbb1e1b499500d6138c4cc42a7551534f74cabe3b68fea2cbdc6035cd671e475803a88a42c6991ba27ac30e72c7482b003febe8be6db0fe0964a949a18639c0dd30b0061b5dfd7bc6b2ce34726748981a30500603dc04b2ca64fa91ef4fdfea170aff48507ec9d63ca811a45c4d2013af2cc2adb0fc7d234d3bc48bd7b4b823401b62db51b6d401e742711d72f11224f2a0e7468faafbcd1a10301ec7e68785265ed6e928dde68ad05e6e617214e0907d854a92fb476493e5ae75706284fe793c7b9abcbd16b4daa8c0a68369be6b1da8a8c4b343d5acc7116b456aeac5f35b2cbf9e3477f6cab9c3b6bf49728ac76725fe392dca164797b176531d5b889838e32c49d3b1cefd4e8494f15872298ada7fa5fcf547988b8e6d6351820b7b390fc0ed1b7caafcfc7d342d1df5727ae55b194d6a130162279ddce9befd0dc192a51c58dc73a83288e758e573b0723f9138905a2eb44c6b9933354934167d9ac693be5a0b3df0d48bd45030e24c720b45a1a2ac964fe819917ffa70437f710d6bd69dbd8d90da5df5f1b00f5310724b17db433d3b9ae113d4e319514cdb25298e032f288bf582f6b79dcb68f5d34be9178a6617dd548239c54f04450c1b7cd74ff97a2e88afc9b2fe4c6b2ed60a43dc982b11088b60b0068e4b1fa0ba086ae7ec7bf8c3ad3606178a92245b48fa722e8158cf169ee94b1e939c2cd4714b8656214aa7fe295b1f0db7f01a5fef6503f33466706f9a54d2051062aca1670652cb48fca2df283eeb60116843a8f7367200369a00f2d78017a1c2a3ca94666c2e7530a26058867c725098dc40dd6f201e94c3aafdaae10302efb7d7a0c11617ce42d4d6e9e3e6911ea3c5fb4311ba5f1fe4fec9dc933341655dc8afa2695c888daafb64c02b8d16a3d8f1f1743e00f14092cb650800dcd075c7a1e6a6910f09b426991c1d6aa15e309d697b46d752047264e854f9b92e2d34ccc0d019d8db60bb497d3b749c91524bdb5dff84b617727250b51840308455ccedb2313b1650aaa415ffa2ec27c12010d24508d156f6ad720bdae52f4893ad6731ad5dd1e9365652efa148bc212be0531ef35e246f8258722572d80165c4b1e5f02563a344e058291d1e57d54de3edaf2c1da4f2b702d572741d3a5f982f538fba10bf0bbcad7cb283eec6375cc5a142b9033b17b987ac72a71b13b21a27fe343c7249339d82ecd270dbc7ebab0648fb08945a312f63b072ac3d16e5b7058433b624510873e9020583925e66656ea4f6264b6f6a6e129405841dbacb36e9a3ea99792137fbae02b8fcd55fc7bf3b1bee8375d4cc4ce2ed72fcff87f903770e53b5073eb56c0e1a3dd289b2881cc0e0c9ef73ca6b025a785561cb40d42018647e573fe5063b1a631166eef44393b1ff87f5ea5b2505aee7726c3ad8e0751ceb1c1102a829fe18376fe1599c936a58ed939ca7fc0cb9f467585e594a3022b341fc217af72f8cb0be6cdad983e9960806360087cd26069fd40db67d60b5e2483e0a9c479f3001efa93c87b7afa26ec293758029c79239c9a64a48d3fe60d6ead94389ca2255ded5580742caa566a29cba00697ebfd1f76d2472cde0788a881888070c408e613d5646632c0422ba8b6943c042c1e801e18a995342380f0c18639fa603fad98b0c1046881f6e420190ca7896e2874c727ec570035bda71cd0e4a8e9cc3aecc659edf03a474233d8a9bcdce920e2bceeda14b5a72c2f1b465c4b2bae891ab11601d158f1eca5abce00ea8b3f153b8ffe00532bc72ce45b0c118bbdfa24c19a8c3a13442768e3a9540d6950e4019a8332bee6a317251670ffab978afe466d12533eb1b2ebaf65a95301461fe969fdf6f0c9f8be572b377f7627fca97ab9c5f47410b4923504133a6660e4316fc2c6c591f1656664ce33b1b79304b9e7f56e0d5c5ce2080e57a4d3290dc435698c1fbfb39cbe2db4d8b0f4b814e265506531ee0830689139b13e003c5a691e54d0edd667c8fccd31d35112b7cb10bdafe1c512d8b7a5134c6e1113710f56a6f16953dd40913f2c072e4a80ca938d425a3cde7b9aa307064e383744a54830216e87264adbb894fe058f6e10ef940c8e599946053b29ef7543eca6323513a815a83a83ca57037ca130647aebed529d380fdaaeea06e1108846d39539674e36619e132acf6a4f51d75722b193221add90165e1aa332be800da81be7218dc5a698cebd9300c3e5cf89d53ed1a45ee087aea3c139d0d996a791c821b63b9b17ea71071f3e632f5e5bd9b722aa5cf085555e421d44889ac5ec1f8540caddd2618ef7bff8b758d7e48816e57adbc11ee335c908210b634d7482d2495733fe9bb3b89ceea8010c5e53214705b60d1827a106c0f483782d97d7ed52587e6117b0dba2af7fe8d6db8c564064c1a28820eacbf4f30dec793577eef3f906848904d6774f5c7c9550951e9e60b7e5d820394795257fea64a92cb79d266376b6ef1c600c425a57506f39a916588d3315cc2a8e65a6ee3952b15f139a8e90f3ee54cc9fb85af716ce4f400aa6af33c525fb0f55ed44dd14b13e1c8a0575c947092500bb40b54e45ad99a1a83ba4d4f3dec0ebaa780837b025f9db0c9c916101b7abdbd916a6e614585599aa24a30b86aa27456254d1928f63813d2c9bc96e7c747fe9aa4555e7417f1d41d18884f4a063373b6e34eaa805431fa315a10add6b34c5afd4c5b6f85454d36abe410eee42f9f628ea164ba636e0ebb7ed7ce788f0e8d7aa406fec43c9509ae0e4ea16a4972bd27c5e7eca65a66735d782a35834ce8e4114da1d47abad1aa5f25620b7ed672a761752a7d547ea36e896e2ed5d34a92937119eb2b2059cd86862a92bd5bc4489d91bf2e602896bb11ad46a98715c4e6448d363472b5c3448fdf393254124d72585d705d1c3379133f9f62ffe2095e0d977fecbc3673208eb061e3fa12fb205832313bb8503e0cbcdd45081f75738204b6551a07aa2f86dc49bf638a99e8334ab3bfe5dd54e9e408fb633c55372d6182245198b054196ba2ad28fb5528db1a0865ab1f6984e5db4a0c421df59ff4c6be6f792a115ca0d221bcf3f27a42e52d43efcbd12827e519f49a376f4ffcd59cfac80bd15e147b2f9c9d3dc84d9f816b59fa7ed6e6e4cad051e348df73177bdb64a368e3d7669f9da72d7ed5a445f851493b7214bad8650d1e341f39556c5661e3144e0a34ac6d57739f075edfb1af0072af66e76bbbd3b2f59192d7176364beec1d70a79e974c1a6ea34f4860ac403112c1ed6aeaac9f05ebf3138d34aed1094eff04b549a048f62f2f967386c9b96f5bebf9282577c11a551da3a48339433407bbb3f5df4f4a8a33253f5d325c3f0401c90aaba8cd0ea5f8736ba680f1d33cfdd8a2aa305acb831e315c361a86fbf372b4e2b89971613f1bc25074e39b4d1f3a0abfe2acb13309f345c6ab685b7653721e8359d1e2baf4ae14813b4e3a227a5f4a3def6fe7ca65f2aeef10aceafbd972e0005a451a7c3052e08a04c6d0514f3e7e54e060ffbd99642fe0fd7e7a259572c2b6f40596105c64f7355b1913bc37d8745daf4e68d42aafa875f6d0ecc5882ba965099162fb424304b7942da870d130a4b97b6c0dc3fc20b792a4936872cd6b1614f375e1c29b1429ad2193ef58b4a85a057f4578d4a6959f2b14c74d8f253ec7065a2f8e21efc2fffccc87b00eaa383e411f6901fa8278db6fa6a0e1ae6a0a392e840bcc4933dc5b693242e13089992d16c494bde0363a935f8da22b7ee972561fc50cff7de1a683c1ccba90d96f86aac76466e0cb0558331f224d991405722512f2ff8f9f460de7de53abd164e8bd886da57d5bc626328a65a24b49277a33085a0bee09695e4a513ce899d1bf92634db6d12a4a17230ff056b7a66f341f3ca6870e3745b48205077537f6d24a75328036dd0a783f2f27c4077dfdd5c3ba236773c221f7a9ca4ff8772566dfd871ba8569376d136ea244fee0c50c6d01142fd206ea3cfd63eb2b40657e7021225f8d020697aab95a3c21789caed87738a85e560be75bf2bf65ac3d7f343215b1f00ecd6ece839d009c5ace15ca033aabc572ae45c8c2c01c031e7a0fe5e8e8e620f745c898207dc5f307304ca5b92141507253d3a4c1c6b62f3b651e0aa5ca1d99294b40e377ce687ad7c4169e2cfd0846585a14ab6a451703268fa794325d001ec7804adc93ef1be1446f50bc9eaad7ab7241f65cf6a042935221b6a82fa76500a7c82729064ac269ec15b76014fd55c7721a3f9b48acfabb9b65e89ab4d358f1367d69bb051db5d4623695d444be2838370a00932d9fe8653db12bb50a8a55975bd69dd9a714e591cf804432ea87b06a265d4bf4b3272c8442c028e9cd384259a73777eca4b937fc769409db9221654b729d20663b7517677c314e9045e78e72fcf6998c08267692e804cecd117a8f1c727bbacc8b99880520700b0c6744b244e0c9b2a1c9b8300c59fea757a9f1781f56ff93e1d12c98e4b64d7677febea24df4517e5b48c3a0754d9770c9bba3fa2972525758859ba08b6552db038c75bfb2e170a244b9b88f73dcf83de76f2e38de204990d6aa381ce7de435515a79bf495046f92cdb2cfc1cdb46aa66e702deef65565f6d900099137cb942869d577a846420874ed931ac066f4f81bd46230c2e67291d8a8678921944774a44069c2628456b6091ee32920ec9fb3bf0708f1967f43e2cf2ccd0b755142ff659fd77050d477bb3b406952c467557e942a243cf6ff726b74fc939c901b3f92d1819da7a3970bda996bfabf8334735818675721f3ef72ce83555743ab97c53ab63264d64ed722270074bae43b401d05a4e9b4ffe09535e6bc30ebb8c374966fdb62012a2ff79078658fad90f1e2cb6c3c563c3b42bb72fc69024ef54439ebc346c39684002305249c8ca1388432f29955b4796266bf1e4c89ac2f64ef0387941e7422237783fe68d78be9b7440676f1467b5a6fde1a59dcd11b802695739a65603986258ff4980c147110621da3f210d4edf1609bba723441904bb47ca79e2291ad73d07ebc94cdd71d5ef3b09b44ab6bb2500c365a7280068949f72ca5e9d69d1d5d523e23e0ca758a779b7062dfb8ce8d2e7903b972986c2f008a47bf3a882965ec5d89bc2df8f5163544475857e674825605b13f727432ae470ec0c4173c4f36c8c3b5c46829842e9ba5d8bf6f34dc407359f363721694e333d3eb9a24ab218624b582f3428987022dfce70a6b4b169915463a0572267db40594966c96d4ba14eb8c7e18a24b78e6b04dbb65874a4e315e00470572a556f291b7e5495f9130222185ac92aff25dc65091a79aef537e957733c39a72699181fab4452ee419aadfd9b4a939970d0f5985f7ef7cea6efc4ecd4265f972512df8051698ecc69363bcc1d1a7e77a9db62f6bf365dc26ee40cc99dd8091729846874157a6aaabaefcc43bee6fff09734e24479165a1daaef603bde4cd5572f3a17914f3cfc253a14571cf27a883874d001c70611525631adf0afddc81363e229216a685eb936c182dd4b20ca2f361d12a4661635d1305a55e840877fcd158bd7b2b6bf78626fe9b3dea42ba464fa8f4a43715c512a2e39f72dcd69c1f5c7200f2bbe67928dd3932bdfeada35fd7bbb80fe41fcba9b074383d4c0989c97c72c2a7e5d37805ba9c326fd7a033e744100c9905b364ff8a86f1ea1f7e7c42f772b2fa5a1102359de32db2031f9148cc7fc32fd19ada004bf0116c665e3ab1115d1a65063df396b1d77e21b6e721bfe4c6ee9679a61b522c80d67955dade4bd7725bdce69b8d24758b3a9b4c9201dad196b57296abb29cfaaf34485fa1c12b7969850813ea19d14ae1cca6f894c838d3038680ff78f2986b6b17206f39a552d17292c40ba879e511dbe466b4920083b5dd3ecee967878be930871139937663f61a6e4d9831feb0565692fc9dd8b5abaf3db20d6bf087c8dd8e58b054094c137a004ffdbef218947ccce5ac106810a5008d76284b59dd729e7460e759b1963723722ff1b47e288d9c67531e5e9d9ce0eda9820b6122fb09948826410cfa0d22e3729b700b4db3f6da3c994de573315a45f0285ecfe164d8442821abd3ca12471d72ca3e8058333fb70be2948fae9befbcccab4ad3e2fb3b99fc832aabce9a67ef72ea892873a6757fe37e74e64f91e4c0f11721f8b295f5ee0b44ef0b47bee6614153ad39c9d38a1df2af2fb51b7837757ead7bb2b9ddf959fc8fba6e07f8a0bf724a52e3cc6f4366652f0ec1c3753108ae6acf9c7fecdb441e3b01ea376ed2dc6bb707f85ea04986fc90dea4d57d3da1d7d159439c43dbcee383c6d99206c5725e5415d548332226472741056dba769a865eb95822a24c79e36f33e924406b96720e2b469eb556f28629b0f03c7eea5e03296159e6f0730be1bf534448e71e6d72ce06a6f0f30b279318a3edc80e594713feb504127920ef9de64127a8a2623271b0b3f4b1cf20a79e620fd82da716f4de6be46f76a4dd592b18bde8631428f572d0a598b3e168208adb94bf51593c9902d43cbbf5f179f0d0b3dfdbe220807b082141902b2c399b95172bbccb6ecfde5a86e01e6f1eed272c75b675f810b88b72f56f4dadd8d900fbc322f603ac1ed52ccb824ae96338cadef4a6cf980bbcbc059675ae1f1ec3a869081b4d0d21def9cd1b0f7d22f901a1bd4fabc85a70b94b7229ccd17fbf84f858c69379c270df7dd4ebc49e29909bab97ebbe52d42a0d2f070319c92530f3265458ce399abeec5e1941834f4386784887be2b35055b949d7208a2871ec0f31177bc4c255d25b1a2303d01055f8785fcea1209a3046af5c5725fcf2e6462da7cdf83427bb45ea994ec55b53ad02472387a99bc8500b51b72725f8576373f92aa81472f915ba89d7531b202889bbab57bbc655e3ad9c0350e3a075de14c7d6b671024723a1159ce5c962bfdfffec58136a68a070985f87dc209b4755fdfef06d76546686d7b89d85c5fe1936c57e54bdd272f7a42981e802e727368feb41051e48790e0f3da5500a4138392c5acd2fc0ec3c73bfaa6f6f2927230ac48e7f3d8773ca338bf8a9c0d997b1071a3eba23d5bb092fc8fa2368d3272e1be0e886d1b3c95ecaeb44bb1a6afe9464a805c0dc8ac0a5fa170f09dfa2154b80b07093016ce40785092a36ee6ee74862c227faf3f85f0fbca4cad7414ba04f03c16b6325b4842e308c5b1b18852fe8964804758a945daf7c7e8545ae29c72d1b6d015b8ef38d9bd88fa43725e19f06960e27a18531ad028a63b896ebbda20fc9a06a3aa43a0ac2b018e7395e5608b88cfe357fca746838513120adc03d263bd7dcef941b3fd8aa7f757aa799c55ad5fd31c1c3d97516fbee0ddf9cd03451162744bd18b6f155c912863602003af96600d0620ccd951d9eb10632d821eaa72f49a68a878f3c949976b00dea3e8b20917a6b2e856eee4ae0f0f57ab3112cb50761c1ba7d56ab3c2dedf9c941975aab7ecaead89dcbd907f412b5fdb0a7f9a729f0e175c293845a1d63f4048440f1133368850bad5e160b4a827fda2c298f204c27b290e284af8837cc66c794db221fa9b4e59a28cbf9202d704bccdbf221f4c5fefe8f0e0c462926a0400789449e425a1f21d7180a487c8b01c82ddb660a4359d5dfc9f53fcd6be462c8b298968643b944072a8ee299fb9ec6f7fd615806e6e9505f0e6f66e19e8e0064f836096d82aab3bf57bca3555f04907fcc1de597157827112fa3ae6cc3a0ab1e7ddd8235f3892496a596aa1b98826ad91b345459d70f959fba3de3ce29ae187a7016b92c8f3a6fbe2e6295f634c91eb69ac681a2472f44cb340d38c201ff03b96d3f43ce0c61e75e95032c2c1094c169f00e50c6a6b421a56120e687302b828396faf9cc868f3027e92f3448574189348909a6b4a723a10c49ce64ecd660cbbdb54d76a55519ce762243f626de1d390b18b5a0ae272e862eb9be3e1eb161f3d84c6fb0f641f95d1ba8668bc78394262d006bc1b257291be0669aba497ece5dab749f68b642c83d1ed765d5e45385fdb8effed84757251eeea5eac8648fd8a97d2a9d9a63c6a6bc708b65a390dbeb2a33cc41779f721af23634b91b89faa49853cf32a1beba0078821361c8c2c9c4d305cddb91aff67e8f120d4258733d95eeffb778208ea08f4c9b0893ed1166d6a4daea561a28472127635a8afcf28037dca162353c4d325c22f4dcc30b28ae90e84d884d1817d7224c0ee05bc638d54b05a3024e6244a6b5f94e7783f1104e32a845a43df4f7f32d2cfa716d1cc4bf726cdf80c6e0e164dd2de202cbb527762d6dcf6d2c0ff722eb201e83a49fc68e283bb76c6d5c43903d1b8a78fc17fe6eb766119e722762636410928e07cde3c60f17c6829ae435184e8f34c8ac414163fba05dcf0bffad5691590128fbcc3a00f7a183b5e031e093b6b37571a1decb68ae334c2d65daa850ba296110f7f774d620ebe9248ee90b3b2332459dc80bd8f2dca2862b5344fd863a931c0bc8d6d4c2d32d193b918c7f247b37642c820a505bbdae63f4cd1315e6edd507a746b91d14430e4a0a3c167abb7ebd71f3a015602b27c3be51efb8cf93be0f87a83be40eb861d5a37185c45d97e4a09d703d02e30341d975f101382e0727f9c0ef874b41e2d58a5238a36b0d37f63bfff63abcbf4ecee8e7fe3019eb8401ca5cddf8c8e09d898209a39d8e61a309939630169b32dc14e4a6f6a5e20dc72bce71bbb0a9b520106f88ad586399f39400ee6e608d215562c487e708a1b0a41da933941d31dbe70d6393ed9040964ff8d943ec0df6a524d771f7c8d471a6a72d4b29fcbe1ff1070b285f214e477f2c58072516a3a0bf60a2fb4eaf79eb06e722dc1d43ecb8271e91d76fff745b96404c3bea176d0b43870fe350b22e2b17972f8dc5a76305d66508809336d415312dea502791f367bd7ddcd0ea8910d3c7f6cf2b4c53a850aa142f9fbf22a79be43fb0ab014a8d6ba7005e959a81e1f02bf726dfc7fb85d43448405a2432acdc42e416a65a35c8a16c56fb107ec2604873a3f3a28295aef873fbe24c80e79c38211814245f25b0a4b47f91b35c5dc40aaea7289a53ab3d35ffa3f55dfd70a8203a11857bef424094952d26fd364346388da3071457eae0cdf977f79b5bbf9cc3d0db63f6c509d90a81b94f1a67ff1d9d98572279252b801ba9829e80e3aa8ed2bbdb3a9f295dd97998c4c3da96b9a537c7172f84a1d1852a2058b8f01bd5a15fc6d33b8c6ede0e33180cd16dd1711011d8f4d141b656dc279dc9dc88a991bd307895dc856328953820c4d63a0c93ca8ebe1723ef723456172cac55e147391af19b2a601aad86db34782d46054bac591ad97621e83b8472dd975e40081027e7f83bd98e8d0c017e03a3b9f818e7434ef55135ae71477a1ac78a91f851071baacb175b82e2239c25a79da625e4a76f04225ae723991f78d679fe45318de8d3227f36e553e928fa6ae6a897df84e310b693fbc0039687abc8e1f46d35dd5937a317c434abec126352089b916cd64ed8d99728c7252f44c8bb062e422c8b00d15c1023079e0bbb6e87561e0f4af83bfbf6013383014bf608bbfe3f740b8390dcb62deba134d73173e3578848dabc5ffcdc6002172d95d3ee452b11af3fe0e78b52d82150e84043764529ba2fa03a0e93d08235b72f03857c3a9eb22267ffcc6cca49f49d46243e6a155561f408ba6f214be2f5572beb17d68b20e0f8dc2da19a5a8526087970a147999e99dbc34681f0ada8cd4728e2699e964088b16b837a78b29131ddf9017a42bc24077babf9984c03af06272198812b2ba6e4efcdaa557c3058edd3ee041bbb7f2141ae05f73105b0546b372c6213a9fa593cf9bea2706d092824dcdeac11f9d23c3b4e5422e5679ff5c2072ffc7fddcf2fcaeefd2f0738029043718c098ebd1aaf9727b21c5e38784f7d25c6d33fd7d966c690620cf676e57bd2ee37ffdfb9bf391a616d755a6bdea920772997d1c879bc611898e5207b70ef7d22b151ce5a379f13fe49788e5480367fa3af5dd391e50cc6983eca45c11b030a6e4f03d1417f0d551adddea63d61bf912725a7d35719bf7b0edaaf92e80e65e035ae50f1d7a7c28541ad0a1b7f4a9b64b724ca323e91d4eb673c617c3391861aeb5f6303ee86bd2b42479dde16a1c47df729eb4b22b087cfaa1bb310b8c681d69845efc50e066e5e98ee2645d26d72b2972db1981d17b6e8febf58fc471d46462063864eca9666cf126cfa3ac3c091c3e5eeb8199458f303852aafffec95b1fbd3d5bcc1b3632fd05f3fd8dbcc44a566c14285af3dfde8560404d4178d0adc5dc1576c6411a23f585e3c39f563a7636000fc4052878db562df145c9d2f41168e21ed5591fbd2ddadd4337376fc46dfd8327a7b64c0cd0795883bb739a59d2afea4ff1d189242164d25cfbdaca878a67b572090a760ab0cff7adfb1d293027b1539d891681624b8b2d8eb6a003d8dba6bd25b48ce53f114602357a366fe19102bbcb28ffba7a85de6087808701bf2a310e2e2a460d618896cda777fb067e8c733e8d9ff1f888a0534df3cb161475188062722fcb7e1fd27f041eead3299e8b0b0fdb3fceace3811f24c9ab6a7f3c9d89d90daec694492cb3f5aafbd70a5bd8d1622b338f20349fcbb7a40c284feee4feb272cbaafd7c2e8ccaee0e5e6dec1c2b55c0f49c72db370e7aa289a0184435458a72e4f1032e0f8ac247075cb44e0c17d640ed2b6a612c16c39ee5fb159f1bf5fc72263b00fb7c8958524e4eacad8806cf7a09d9ae868b61ba95869557b7f48aa80f7ec7d72d184ba6a8c2f378e31ebe2599ea707769c2ec9d84629a6da9c1046c012454436679a888eb24cad806b720f012e1735710ff48c5c131e21b2decc6be27ac0a17e010586407efe120b7ebd66cbe486a0ffa506fb15150c474bcbcd4c172942bb643f60434b80a3f6e4ff900ac44a0b11f5647e8d95628c59068cf8fff524183f15eb99810e6dd3e6f13dba213cb2703b7f0131bef7cf75164c59eceb1277532227169114559a031b57adba788adf2139d5c33102d36831c6510a77e5c72f5d6f02c8b600ec866ba1a57c509235c177b9fd91f7a147e3c451331b1c2c2724f262f93790db580303f9cc07bcd16857db221212b2fc5301df5d0aa338d7b72fd1c8f753efc8da5d5a2aff2042d9185de8099a51eb1ba2a780b2e04dfeafb32deb66e9c5f81b998039fd815e2462175976ffd59a8aa9200bf1d0878fa7f9e3e8ec1bb6d7f5786644db73104af296c5795201a307134004a90b44bfbafbd1228f92e9b366b98fdfda1183ba7cfe300daea8a858352fa5559069d0129e896de7282f1ed090bf1a8ab75f2f4082e7cc3c743602d18323f3563df1886bf7fabaa273c686e2c8ee77e7a3ccdc1bae6ef376f74125ddc001e0ad55659b664059a65729558a1853bc09d200ef41cc9086ab87c02008695c43c972d68be385d247d5f72e47785a25314e46b8a8d1595eba4267f90e16b97d9d292005442cade29d8c75d34d93e1138280d443617092432bd060628c0e67464f59d5c87544f51e760f00b100df3ca1ff2b88878416ee21d981d376351af9bb05633ce3c6f64d7acda2041ce564ac1df2a0cca16ee9c2664d3134050b692c7f8c5712fb04b70d9e6a71f20c81130de76369b79e0d98cef5197c54e329eb1c346e1bcca281460a3469e5c72884bdcefc8e16b4c8a0a97b6eea1e9776e62083e4b56523e6aa069f3f978a372df20e6f3eab1737ea647855b79076e784e3946c9493be8c85cd6fe2e64a250720256f295e8aee61805b43b547c0f14804e0aa11ad78254d42bc54d8e1a92e9722bb3b0822cf3165329e34d60d9ac2af2490cbe4367d619f44aebe64e2bc52831a52db28d52932131b6abc5c8714ce0c7d1137a494852fafe3f458f4c7499245d62135db829a653e6dae9823311d382ebabda1dff5cf5948bc960360db7a787248de3d2ca26a67dfa062b93d437c2f5fa71c688a51375b27237308180d987f372a19896e6dbe3912455114dd108435197c378237b36a5a0a6175bb0023408ad72f4a9510e735bed5ce1320e6b705ab5d9306ecd9a935e62dad769910b2a74a4720d2b9da7ace4f8fd188c7032c6f2b9f1b50c3a697ec6192fbe98716569748a6bf3e914722f58dddfd4a820d12fa9ef85edb18d074163f342f95b6fb806b58872b65d67214889284806411cd34fb11d1dc0991afc46b5f5307666f35432774072edf56421b14a0155403fda89b6d2fd903268dec22904b2f8dab6802bab0588725dc3ec248d97e6277d8d6989ec1204723500c4240f63ba45f258c95cb236b97268c5aac952447959209f40aff68b14c152e34ffffc6c25f99da57901191bf95a74bbb067fb356ffefcbf7d27bfedd983aac6790726f9a5bd6ccb495cb42f86722067a2744c556102d98838734742935ed55b8fd03a0485d02b293227b8fc4672a9a2710b699493f566d85f16a4ee8654cb626c386ff185ca00e51cd8e985f363aec3dca392e6bb4116742fb7b1a3fa7763a3eeaefcf6612b53d09edfc98455721d803498e3243843fbb87c62642519745f3688f1e1821cedf2b589ac2a5d2e6866e32de731582ecef5f2ca83345e4e68447fedf253c1759e70af456f5dacb672bf7af369061f65dbdf550d6f41e0c32e2c6a466bb62daa7dabf6581505c3ac7249680e1d4d78de4c527b510e8053c43c4b991c776d880fd1833df883e05cb372c7e61af2262a1403cc8ee8708218f22219e996c4cb237e2a3a31e13b9d92f872d230b901db4521982ec892a31075726664b7d89431014f29dc96dbffab16c67215ea9ffd1715456839436148aa1b5166a2ce7d5a5389d3027c071ac9b355147214ed06ae1d57b58843303de750e1f831d006b07b9ee96147bbe59d56c4d8187246761e999ca61e655807a6990999066a2165f5265abd9bde8a8a719fd02f3c7252c24539e7a934a927045f3cd70837e2e86ebcec7be959fef06a0f3279f5ef0e03cbe36707cc3679fdfc024c02ee210a4039a952714c9275ade176ab91da4d72d42871852a1034d67fc7ad68ee3c7095ca72cc0da217bed53306965cfb1fa9310a989a4720fd7934be7999020d41b213e2f125cb69dd28064ea4a1d0fc9b624b57a21641f7d643b2390e73486fcda1c6adc0f387d74b3c5c80323d7f116f2f72aa76efec1e12167249840e5a988521fa733f45b9f1f029736f13507c34d1927221cc96302779a3c3c726b7691625be2f5fc58c1834c72695b9f7e89883e9d67221dbd359108d0f2717a0bc6f85c1702025f2c4450716bbb7cd64fc123b02e641443d4885e84a635faae0c304165c32268ca91d10a49f46eedc807c45dffedb729915056cfd0c7257b531d8bc83e7b320815b7ba5633d27181f1ea4f6bd321b7264caa1110321632d48ddab5f716d8486e4da48257fc37b4b88568a6241d86d46d45c19e032647e76f30b62442357a4b05c9161f6a8591d6e4a74e4f7f17b95684960f7dabec9d7bb3eeb71f2ff96d05204c5b88d9b0d9d2ceee61a061184662516912282c650e8c35723aa4d89a0b44d4063bffddb50e87d1966fc05ae679c3409d8279cd9411364f8bc3313ccf40b8231cd290fba7c88342f945f77cf0151726441c58fd8105cb8ad9761da8a53af5ac27be88936cbee1e2fe3f8150455566aa6e6ab7b1c568f686ce0babbfc54e49fed8766c4e0fba7d79831921ab0b03b7224cf509baaa9d780cca1ab68e91312fcd2f6af778ed9040d6ee144463b899a63327c3fd4d577d771561f195b120f4eb4434da9d458879736f5fdca40538c0214115947a09cc2b00501841a576ac84e5eb71c3793ec0f7c9d95a6627d5a159372588ae6c46c58152220f6e0b4b6ea00980d34132e768e2b5ac306dbc437c355720839d2fdb49a828e1def70dd4246a8eb65f9227f404358fe0abe0effe7cda8635c919f3f4476b0c61be50eea8c2e8b7c30d4dbecc30687df93ee08642f0d607207725e0d59bc3bffdc8bd715047add1eedeaacfc79707ba83d8326783d933b72303642a3af52cdf7a574dac13f07949a6456cbfbfbc4db9e4f39f0b9913d7f6cf5ed633a6fb60c1d14775101232a6f61057de905f725cf7df2665b53012c6172ef507a6e9cb21947d48a908568b56f10abd27eaf1ff846eb7ad05f853f8f9e59e82b865e62d350b02fbfff52dc8679e856efe8f291fe874852a5d9717c9efc01ab17ea8eb5d10e8987813bb48cdcd8aa1e1ca44ad6059409b0156c66b425ab0f141c050a8c24c19f5ba98f90a22a96aa266c74a26a55ef2f5136e58573671e72be8414ea329eb71d8544af044c1c89fe8d2878588251433de99f2821359f806e7b68454a4eaf6ca227069fa88307e5a7a130defb1b1817ef69638b3c6ab34c47c47a060872377bf94e7e94acbd57a124712177a6060c51b05bde14434c0a7e6688704e63cc6a8714e6127b7032a8e4ddec84a8cbafdbf610023e2324ea504c7295227f6b390a1e460a69af7ca2631dd3c2ad38214194c210eed928faec0cd31e43b252f254cb05847daaf66ce38aa524baa613042734d10e7bb13a34bda1841c97d05b0fc8a2497d5abcb28e83d1bc074cfb434f7a37bdfb9ad4032a1d483c2e8112292cf030f2158b2d615297cc98f8806ebdd46ce2ceee19947a4b147b2b2066b3b47f8e63fabd8c73193fc77e0b0e9f1d14e807e2d3c89d5ada0610ddc2161a63f7dcb5bd83a396aedc64d8be3475fc41472511f9f234ea0bdfbb1c154e7276cba627d9337e45bcf453d77167461a7430ba8dc1f680a9e84377bbd827831c57f5ecbeaa13917182f09fe83c64f4f3a84ab8686752c3cae190f8f0ef64230e92215b9ae8527045e329f89cd7276606ef3035eaaaf01412f52e85697a111462362448291cf8701caae52693af551139a9a831601340e5202e05150b09d5c37202952aa656697ce2b72f07625861ce7a300298622df29ac8dfdf83e71a8bcf241eda292df5e8adfcbf7ca54ccf2d4bb670cc09ccab5f984e614264fadbd10072fa27fdb092e98987e388110b53ac6f538f8ac4cee213917253bebd6af2726772c825cbf3635114e3a8e591f5a0e1d02ce8babb3d3337b0723d1c1bde79bc305f0e3a50c137bea8f3fd7a6c17eda287e1e04e43050085c2b0a5684a8282fd7a72fb90fc97535478b9073cef8bed8449d2fa18036d4b1f9c6e41c9bd49cef11e72d0f335eacd762347d285875091451192329ef586d398b5b3b045a5d8eb97607288b9da6bbd2b06b7a898a96948d048611ff058abbb7b820b76ee81e4ab856e72bbcc1adaa9f862c4bbac0e7a176a47ed967dc733e2db7437f6f5a5cbb0470772bf6c611209a40a92ed0e086624dfd2f1666d54965ad0b61aad6142b2468e3e4f20a074f641538d74bd5a4ecfaffd3fce7df438bfb797bb94e25a029f399b06727600ec2362c2f8e1d5d5c1f0c74aac8bd46a138cd4df21743c79cc64c7de2d72e8d4b580b1367c3d759c123daa9caf77e2d8f1cf9dcb250f6e4af1652b6e5e36396d3d5db01f5f476c1318d7a97e5b591e4cd709cb412e13f241d353a795aa1f73893d53d9f7ad538544021b57189e33002d0ec54d37f57c716ed83d4cd5317293257517799ad152b42da428a6dbbee5a34442330143fc887c02b0e997901c7229c892f960d7d4a1764abea7927bf72a808c3774d263bd67664e9b139902987227343ba6611fccc82128127c91689e953ee6be1629737da5f1ddabdd448dcf7264c18eb95d711d4d4f71b6daeb765ecce9c60ba28b29f44f74e600ec1d52092598d43d2724d04a221c7ca0159104383da2de746a7006023b537260490fb0c672c06f872192eb4ed18cb93025b9a11fc23d907f7cafb9a7eeb9c1215b767feb33dbf23278b9aaa0025072151bccc1b84f6a4254818b8455709811d89ac5fb4e522cdc0e47d11d575cf3875ee6e0a1d837915380ebf1b7b8ba48df6fdac58d9772c28fd63193e4db5e0b7136512877137f83051a1f8f3e9ae07389000053ecc2724ceab3387cfaeb9437e461631c7aec2583d90c63e0b5b33531e0e32f39865670b63e0a670c34a1dcdcc052886b494fcec50931cc433049d2d282c64e195921728def7e60b1bb38312fcc0fa85e1b9e50ede1444713188e840d72ef110db7b6727c8a783611385c2cfd65c4769818ad877a50c75f06eb3f7a7b444a04f946177214d6eb9026e3f326154514145c1e7ed4ed31ce3ed9b2fde9b7c8675196f90e72eb453a764d01977c602d4d0dd3970214b59b48f4bd18057d867065b39da192725a7aca010fcce4c27b4bf931a7ed000930a0c57a3abf65687005d86620e40c72716b2fc54d367514df9f88159dcd302d2b41228ec0f71ad659ab56c65d1f69723318a1c9df0e27e8b649fd5bc7701e94f54438528e56cedeef2471f1c1b5f10a540a2b84007150f01788ca78ecbd9bddbd82145197b62c010198981de2f100725aeb480e6e0a6a863f0e495896a3220f4fb5b0e4de9861cdd93786920c9e25328853777047f8b17db92e432941efc55818f542b5974d1ced27b69e0c40af55728c1f20a798fe2f072669e90d48b9601f5784340d3d88aabd0568ce44977eaa4f31381ee09ce3ebfe226e7009be19905da2c42faff8b3c438d792a487c06981729feac8809c1e04b82dde68869b53ec52c10019f2127c3533b8a98775ebc2eb72d8e82de6e5b3c29632318469a89bd59f871c164f09f936f91528097c902ab448df926b0f5be65a56152b38ef3ac6f13d5bbe99a8d508987ab8996519272c022fc30b05dc128b0d78b48615edd05dfc599f575806395c8ff49bf7f55fc9c6927235d7a447504a80058b350df70a8f5c11b290f66008330b69075869a7488d1f002c9dee70251037aa899b36cdf89bfa92549169a93b1be2da50b10961f2eeb972b138d9ff26a10fd2a2ffda4a3ab34c55633e5243bf5af0127d45fa8459aa1b7231df22105ae3d57814372069f6a080218e1f5bb953028631782ec54e48f774727adcb84178e9b4e114d4d725bb8bcda7152d04d1f93c86179143a4c22e9e2a7206f2f05f54a1eb64f1682251e9ccd4087fd08fc2918462469a30c631366049727592c494e5bcdb21245cddf7de9b0a0b2fa7451080e7de9724a4ded677078b7296309c545901efd3d878f3533f8713869960b140a2feba1ae5e9d0db5378537209cc17516fa2b881afc960ba79cf0d21c591be9ce3fcb43c429c99a35068db72b251252b0b377144822e7b43bc99f44c6cadd501eda9b7de1b93a72cc6b682729b666e8f817cf16bd023719d42ce387380ac87d2362c4f330e4393d4e8ace372d93f0f6f3a60b204844160b33aa064551203d17d52eb759676b66b4c9ac5a272ffd7ba87a49293094b706c77b137fbb39bde5f51513d8fe98267b96aff8d011123f72b7871743f690ebad75d668a80f8a8903b9ece9eaa7f3f51b4f53c6e505e3a4a29ea6f959a90e8d2b35525627d75066bb5cb804273e2f11c9b396e979e53cb3a1ecbdf48bac967d5bd13c8f519f0fa71bf52921256aae09feb50f66dd772bb147844f187acba7500bd53340cc37248e98b95fff5a04f1797a9f2a2537072bb220695f4ff8d58afb7467960e8cd9a6b2e8c164e624129ce574f42d283c072813d284fee66ed9967ec06d266d24861416112491be50207d144d7ec67ecfd728db4c18d85292c6cb1bd3c77a39b5c81e2fbc2e534f43ccad2396b9109365972a9807c78a0213ebc085081ec358652a4ffe0e6f92cd03429a9127fcc8c2fc4728317122ec30d5977a989b93bcade56f9bb8ff3900cbd1fb20a09f3d2209e353c0ffa335064d866ffc23e5d7e696bcdc34fd77607d42b3f93b714fc7882ee776f736fdc8b66be03331ba4a872bcdfcff0a0cc53822f497dd3509e38a3d340f37285206ef2d8de9ed26d2e7e818766bdd0176f62aac9bf2f802939425ed7775c72f0197c9752f8bc6620a85801c895e3304408f87a2ba43ef14513a3b98f1adb4ccdb4c1021f5e2c46c3d53b32e3e44fa27293f885d6ceae98b993be05968de972d0edcaededeb1b57bcdf0fd1f1a20679ffe668a7db111062540b306e84ec0f65e54c7c649a4c716b6b9e522107f37185177d64b8a5bb172e6b8a06a3779d187233b8369a2a6102b1438305922f9c4888a85b7ed79794d89e600c4e62d64deb0c8d6a467db1aa0dd3405841d6980dbc98ea33ae8ef2d15e4513e730c1faccb87210b3be463b1b07a6ea2b88f7de107532f8a4b3b6ecd11b03a935c5c410a58d7214b8c331ea7b54684a800a934772ec45be5fb726c094c85536f7c15cf3042e12a3719cb25767f76ca4ea7d5c7db9c427036e6848055459b56fa6ef021de78b518b68c634ca0769799a9dcf3f327d43569523dff23001b36229716a7678b08072d51473ef5a3c0646d473b28d4b81bb946f2ca8f8e1ea353793eb59690d169572a0c012ced19cd4bca26e241f4a1a4c097fa9a16e503851c90471b64d49d77472270793d1188a1be316baeed5d412f86f925a8248e3540c527a9619e06061eb3ecb63343eb7f6b28a41091e6178220ed2f981b6509dbce58aaf6ba6d6159b31724c85e2740a563e980c657e46bc76b982f73e9d8dd2c5f34bc851829c8cbb3372706b37c14526cf4300482b3aaf8bc613c3bbe805285e952295e4fc143a802872943ff2a089f053014dbfb0656360157b7444f6b77815708276c1a365e69eba03a917a35fe1e85c24d1b16c2aaa52288107286852863109d34abab3e64b047c4f14d0521c0d87d75d40d58b10867a156060c14b9299c672a39187116312ae02019cb580274d54df6288c34ce38350fa5bde109bb3c213441e15ad4ab6aa736445aa337eeadf4b1e9dde3087b37be6257582babe33ffe1b1fff6cca05cf1f9ae72b2a78299851476697f4f56fe4e36da8685783dc954c9f001a56f716925def12df41935248c72b356a0f05c28f89c61a4a66995d04b1001c7a48c0a3e3258a76d63e13a5ce522870af41c72d7ba4c639e5821d5e20779202e4051ab08b55c3172ef7b7d73a9053b494eced42de77ae6ca1e581f8f3d7a52902239082173c9236cc56646923d558e73f7ade82516d90be6cae69b27676d3c935bd850a13632aa72a3b621c5111cec897f7a6ffcb7dde04bd1329b3a127167378c2b80b0830c5a72f9592652cc826a6b709798a6c2ce3f288d07de6c8ec813f657cbaf933c1a3b7248679e2d6c9ad5b8b4bb9a85168553078bcb4b7eb0ba8a7c4a617ef6c9f74072b7dbab0cbb6668e62048fd6f83ad87fa803a8d8935b3ca323f9a7ad32995f360b0e269207e3124653c4ca6400c993d4420622eccbec416e158b3512255fea47253a8fc56f7dbedd731a3b29e06fd307a66bee4bde9a51d10d4436f7404aa58475685a94640a110c547439d0ce7afed7d3f434bff9a87eef59d1297117b9d33723670f86ff9d508897a89c6c861184f3ebf8ea163581ae7465be28ae9176a5e4ec4a426d644a38b995b3c96acdca4c7d9a6387edd4df4c251fac85102f62a1d72511dd1582ef0a095db2491761e2d1b152ebf8ccab442f4896165a4cec2cada72badd3824e9851a61c94b153a4e76d8351f1fe90680043c752bbf2153495c3172ccdde16310ebffd7b237bb59fc779daee97b3e20540133a4aa7384e3618b6e4912e663e6805e58364e1f3a420e2640f297ce388815f06f0eaa3e7edb5b6f3c72803b8f97d426a09a5762bb64b21f4540cfc2613f875080bcf113e193b2339072166b88250b866edf632bed75d7e3e4c0c32768fbd6646e2bba1d1f18923586727fa5f29405aef9e6a18416a17d4c3a6fd5bc9ee19a4a220f6c8803ee93901f22d5e6fa378d02c8aaa4b75b333051000bec6706bda5795e43505339326e7eb63fc833540c75c2606d4768bbd480b3f1971159e1114cabe632a183d66c5626f103667929b055b9320924e748cdd97b9c21d5a7ecb82cac8dbcaebf521681803d7259368a004f053a9ea380b412dc1acb24ccdd9d6c7dae2071eb59d00555af527220d2afdc1a04c58c311132dc6c2fa93a89c8687cb76c0d53e5659afeb2df3c39c3a79578c93d50b755967b879e1ec19f4ff86d1c438edd3b780e1e9b4f017c023e011c209511df601b7d379b74d819d5264680200a09ea8bbf6bd8b92c1c3e72706e3572de2ddd183f33a8299c1de72bf2769fa9a9836a913554072633b1a172b48dfb61d70419b07517cb6d8f3c7f42e2f808de61a6db1486cc88000b1a270d9807644876a53d9cbf558cf8ada377bae16b81138ae1344642e87801c333b802ea05ec2f9c6aad6b0c29fa1101841d8a68672e9e47632651d479bde033e549360b968436362503bd0468458d4548388ef515e1d62846a51f86ac532b649aa3572a08ddf9106a1ab4edfe3b43bf2f7d8d1f42e73671d2fe23293d48ce20cb6c663fa47c281ebb7bc199939b3eadf38cd1b88d4ab1ace13f314e7dee4be862e072238301bd3ffec1cdddec6caf1b165f2c6d5fe257dc2afa262376c1c39b8e5f2bb97c6e030df1c458dc7aded123c0143adcbe6e64bbab20669c7d8b9dbf93016ca16566eb4fef98101fd16576255c41244cf08063381af32a7ff4cb63cf4e2772e9d630a3ef93c578886548e80053946826186a252cacc11acafe2685f4ccbc72a133391ba64aa52724686d2d2e319268c8f5df11c25a6346a2e40ea891c81f3376c112f933b79f5a81f01c97729bbd05a0d6c315e73e8f1a36ead77cc53f3633c28a9af155cc4f5d4d12abcc1120f5589d99ffba30cec4174d5fed868299b872899325f84df0dcafde694e3b16b103f25e1a36afe2f793c3e5000f3c689c6f72d78eff552e5dca3cb6bc218d3f2fe2f3c7ef117ab10f69a655d951f4d5c5b65a0d225ba27326cf00252ffff19c0e13f60db447f43c57e408ba30f2ed8dce5b720f9e3184a053b841f23fe74b015f0906c641f7284965fff46dc6da23cf3ae131f39c406dfdeb690d207df3a82d68f673eef5aedb25563bcfb212bf16d9e30f06cf73c7b392068c9e335ec51e6fc0ea4c4a1cafaacb8a8fd22b0c2dd3d02e30722d47c80e00f2b4271a02d7ccd51d7082493a7dfae21b67cc1971df903969e672cc427f5afd8dcf4b232e223b325074d6c76c2c4262f9833831ee90b34765c755182a3d5cab9aad4a5a9d5b28e92bd2e5154d5506a74d17a2ec31dd5b3538a22f6f66efc15737508d097bb836abc1c598ba3b5a26f3406dab42ba9380feb50f3a17d8ca28fa4ce317642e6176c466842c134036d15e062a7e14d6f4293f1b2472dad48c7c09d5ca3220a305af1931d216fdf69495c28b34208e849753f41a4a72ff483015636778f1590422b783497539f619e37bb35b8af95a6d1151b1557d720d01ee690347d902b15c24337cd07362fc9175fc0e8af7d8d359507f239656063537b000b404832daacf9f52223411b7c5cd85e040e1983c1c20506b48ae82724c6cf329db983c215c055a0d79685d7825e1cee7a14002b57be819be2083167221599731ce1484378a080054b9744a8ecf9e16a56c803b76d0f1d9dc6e039a60c07dbe31a4761e33e8a41b4ee0677536cc5fc8c6ffabbcf58e7076ad82f2c34123b428bdb2f416e278d95474dac5049bc358614f05365d605162f371a6cb9972effe1104b2e87352af8a41805e0a227c556cdc2838d3187574d78bcf6e03fc729bfc0a800de7b915dae7a9f3d359536e631729f2e9454a35778a141d86661443f5b3bf4f402b6bd082fc83f897938a269795c80d4bfe342b46bedafe361bea725e99c8f2fa1d00c8a4e04a38edad9eab6267de459fd8635ce205bc92b2e488037d23559c007cc75be45e8cdab2c8a7d261a3ed32dbb47bd052466452d60d1c72b86379a3fe62051388567b339cff455a276e7d6ee5075af64bf527469a616049786070eef366f739e4787ac52429dea53a215362b0ffa72c94093df7f751a4000d3df81ea4114ae64f93011a12f52f8a876bd43ceddbc6304cd5d5d9a9360d48d17fbe8fc814b97ea1ddbbb4040bbafd486852760bd15c285206276c6f0764729ce8869d2403c188b4d42174a4e1061bbd10bdaa07082ee64fff0c5fdceddf72017c41bdfcd4f6249fec93b65ca7c16df5ae74b785702b1fced08b6275c2d3720f1869bd31760ce1070bcadba0d63e784d8392b50d58fe1623fb1f1168a51109fdda4f64fe875f1ae75e3cc847f38c5650d751be17c4d7ddf81dfa64909c9e08ace438acae3077aa42d17bb71f158579efd0cf95f9f7db79e3c73dcd85e27023c9f11a44e5d9d17f23b7db24e51cea9de52a571dc097d1d611bce41a94e66672054b00b76bdd9f794749de5d6234bd995800222aebf8272b60847bd4190bc852c12a3eec79cce9c1e5dcc61ac2b3b6102aaa261bd5c84152bbb132ea2e64fc564622f7792183b4fe11458488151def5b087d824f368a18802ee6223a2bda76596759423e20797e0c5d2442cdce175725cfd3363836f8e2271d6b3d0c4622c4726c42dc39f1565577bf99b8ed9f8a269d6c23e1b174bb5768795049d11e901d72f46a90f1faa4fdd1ac9229a6fc62a846cb407a173c643037f75776f8cc54e24e079728309cbcec6a2c2c94bc2db6f1b58a83e8e2eaf986a3b21c6ca14348df31d1f47911090f9a5cad687f1afd0300ad927b89799d0e2b5f621ecd74bf5d9645771da8eb42a6462914b2e2792ecc0358f7bd1dc4c9c12fb1ec87d5b834e30472e736470b3c2753f9f73bd2b4bbd2406faf19aecb0474869ec0966a4affc13572e99dc019a17f89cb5853f92fae0ac041829db1bff1901ae1949532d7247c3a5a29c6ac8307805f55f66febf28210f2f6196063f8e7d32fcbe4a23aab66043f5137d91844c7548a69c523db29c76f40a6e5ea71a7a26a7185cbd60670001c460aead27e4a11f0de74b6652ec0ccb079c459c53ad71d6f7a4fe786f7d99911b572dd7bc7429462ca01cfa5b331fa4af7e6ad787463d5fdf5406555d0f4321f7020d9847e1d9a4faa12eb32c08297668056cd20af424c6dae0b07b0e4bc24e1334cbffd3f11d948ef27ca33cadb3280c8364392394652a378371c3d129559f7b041af70b7cc30aa21aec0d6ce8bcc955f8887a952f6980622d4595f0c5a55e159723b4d6559bf6f98141741a8d707185ea416fb6bcc04a05d0a1847cf78d056183b428443df6a1b539bb9b1eaf0ea2a6dad5a4361e4fd024301703ad399f8f5227248f888828d0f9175298cfa2b265c69cb7b809d402ab11f3ed6212c24fccd2572c8e414a8993da435c641cc8027d2f9786353f15982dfd6cbc98fd18076885972f67c7e3ec28fdd232c0b34ae10ce126453a29f4d6f97696aa1c6945fd443bc72d8486291733e003d358841ae741efaab045f2e7b1c22789b40a3cf0c989b8c72feb645b5861ab9cd33c6fcf70ff05509b0d44fcb68bcddc7ac0895a4cd5e127286e586fa2599694c13f02c50dc3259a62b3a52592b942fc07a3ac31818292672294364f398958c6b313c769176c44fea9c42e982035442fe50ca479038a1bb53b2dab11df120b59ab23f5a20e3f90cb01553a92abe947da1190ef2b1046204029799f162c9e9b28957644897605d8b73b7eff73bbb875289c7d9d4b8d1b1856e30e0e1b1d4b070025f7ce9cabc613c6b49fd44f16f6120e71df433d0064d3572b24a2d020a4e92d5eb77461cb829a3abc3e58f53c36da273597b9670bf413172eb80bcdc1111b7d56751f25cf5164ffb65bc8a8aa4211a98c82199c486734f2632defae9840f38ffd9ddda0605b42c14d3807ed9dd4b764cdfea87e7024939727f34a6ae0d784b5c9b2fb92b76dc95c60c43894d80e876791b1f9aa70bb0c072557e41d7b878edbcd8d4ffb87347e6d3e30a4c2f8f3bfdb4a6563ab62f238a726fbdf2973cf8a8377500db30e37639417071e74476ed82894b87e30df398936804db3801975d70c6225b13774cbc1e265d39a23bdd39866cd1a4c99a4251c246f68fd10a005ec0f6a54d236ae592ff2d630ac0a481c639b853b488764d10474bd753f33ebf055e856b46c7c7201ed107409417bd4c2cd9c7493ce62444ea8f724cf5614d762566568ece39e03385d7046390b38e19e27b23cb5d8888b5bac2721afa2738bf86ee712bfce6e481c49acb29c50eb3da81f7ad389a1a07e68fc8727bad8552e022b4a645cd4725df5f27d6331f256b93208933afec74911ca1a372a8ddc668e756cdb026917a6b6672096f3a5ac5fc4bb9470183d8c3ff40f41155c8bdf1d1951a66052ee7853ace7accba79183922c3c3dd809eed4e44856aeb72eefb9bede73f747e5ab4ea0703cbb46977bfb2e7c896f9b1614a7bf569abde1382d3094640e49d17315283b177a8b1554af5199d74cdcd52155fc05acc535a7242350861273127357c52e4bb381782cd6e829451154c33ce5911e2bc6be00d72fc4875943def905d2142e276776d49b5d8566508af78494d1a47662f93949e42606d1d31041be81a8f52da476d2381033e1f856a23cbc22b6975d0a8906ad672dd273167eb101334a1cc47ab93c8b7db17479f509ae4cce4ea450c63a1ee3b7284629e8775afd2b2dbc68bd6167f33e2775091c0658ba8322067fad8fbac5272bfea75ad8218aece5025354fe9f72c8234ae116397ce080c281d387b288ac372db103cdff16da23fa15a2f1d737d2c9e429f2661ed54a4fed211f40d754cd27249e7950fbd3c34aa40d24c0b9bf5435524720c8c4235767243d5381b8c767872295e1f485f69174ddf1f81b8283081607d64c75ba3c5aaec52206a764de24e72fa1203ce8b9b271623c342acec6de5c66c965e8f9f6f1611ab608cdcca4ea451122f445c99fcce41eeda8f825ce895799fe7075ce78670ce11ad69ba98ff20729b4613884cad6d68e4c081241f5d7ce3cf3f29ae43d1095f8e9d2acfbead1753c5fe4b74900a8c77ba94d823be338d1824c0b269453b99a651952cbb1dd38b72c093de802e2ff351f5dcfbb6c218761e634cbf3398337399af57d6bbecda661b19a5f203c559a3a509771b96d55853c4eb08d492ea42bc3ed6dfb6c097ec530bf664898b5b32cf8e2138dd6dbadfed82aa65a0abd03e9b23c76b4ebba339bd72970e0d0ceb71f2c529ed91d5067d3b9fc0e78ebd91d1ac60e00c63a412a8e5729b8846c936718e3906f345d5c3f1aea89fc4f4bab5297e884be20ea3aac83f7269a5bf744c6b805c2aa5a5287af900cca645596377e2a9aff33c621b34846771a064041d0e455e8e4f7e14c5a671f9d2937a18b1eeeb656c53ef2f164c0f2a7212e7cf7e51b2d6816f5ebac08d2e8d681fcbbc372a20e169d54d51796aa79c129d38944cf3489ff352179d39b713e2c221baf14fe0c5baf785ec10bc5503f152428ed3e6c3e7ffbbc8cb883b3101e6f06640891406ecff39a8e0047c14243a729a4e9cf317d202018c8df01ec1fd7df5869022516ec0d54217efd915a9f8d072a5f1e8a093d3010b8eb68dd6b73530feb132c74e48314fe34597bce0a1148448ce2df6022f2378f7abbdae39ceafec662168c712cfbf12c020dd31a29e140e309da4e9af85045730fc063d9bbf502f65244f0f23cfce6b36da183974d9f6e15acc8664961e2e4756c4353992492c83db54b28911431c9730ab359bc32d72b672243641fe378e35d714286f36d1be1de9c9ab5c3a261e817f3faf419f14fa931f4ef08200b3c3a25bc0fe06750fbaa1d4a8bdff64a10a826f166e5e5a3ad12e72f808f4706fb6a178ff4b3a070bcc2ed0fdc7ed6f9b9ad4782c5a75aeccb0c57276b88d2ea5562a948dd6ade5c02510c36e072fbc9d87eccc9c693a2e465a1c72db6ae77293f116966647d8ee14aa0aec3f6e70727073540e30dab69baf6a9572e1bd6e67aff554a04e0ef02fa81bf701569569d275e987fc37b503a133975c2c7a57c1cc9c4136320ecce49473fd143eda54810f78a08f906a276523dd30c770fcabcf8d372c5b5b0cfaa3812d5db216a0538ad7c842cc6912cc04bf36b07f4945a83e5ef9970fc2e598ef25a8fcea251ea07c1c6a911ecf1ad6255e1e87a409109faa5965c9f2da232d84b3c33bec2558f8a1cd0b8a76b2fdab0b090d2e4216bfe4974423eb1eb4059c25cbfe6baf270006d21ec411319a7a0b17d89a329b62e1b6cb638c546581e9e3bdb535dc15b41f9567a648401877b7b7225c92151123ca19e2c0fe4f4ce4c1cb251814f130d42c2743a6fb2f15dc2e06be8dc0d7cf2a0ae8d30d89226603840fb4f0803bda88a6695737d6b54118178c08bf7b804172f55841a3c53267f04e64e3c63a9a558192b4dc3b2389d103374d41f01941682f88fbd8030203a77828d188bec622eee8f61e0c1c10f8620179ca55f84c940672e0a41e7b8b0fa1f6d35d405b5c923d57d747a9f494fd0644470a1b8fbde10272aa9fea3ae35b9e187e665316737a854aa53735d5b19f220076634b03d7a58b72012215568cc6ddecf5b94c00c7788fea75b18ee29b7ff4c538638a580327dc1b6c7b965fc4f3f053e5deb843d603938c73069ca6e664d00afe62f382c8516f72e4026f712fe490ad7dab82492008a676f4d065ee7604594f1da1bfafc2b60023fa1db27c661576e320dde24a2f6d13d4590c3e53784663d7507dc2920513585dbd92777340673444e2fef6d5a2bdbc2f8005557ec05e843851f849b253cfc23ff4a23eaec86d438f15d4fb84cf7596294b57e9ea6386d0cf89f2ee96e79b94726567f16199c6659311058bb760eddbaf84d42bf458d7f9a2af81b2b085f9fb7245f78ceb3e32d7b046948916c84de8bc1bab2b96e7d3fbeb11af05d07ec89c7233dac13fa20c62fbe9031a51f45cb1c85747d88d7ecd7284257466268863c8106553480adc1919a8950b92506fbcd3bb82202dc3a91a8c74cd70d78cd338f14a4d6084a354624d382618ea347d81d6edc4a12f65c7d049c26a1ae63b62b0cf2f7dfc2a016e64fa1e34a6673877c578697e28a574076f13f5a5772e74dddde263f39589e7bdec156f9151b09ef1c413c1d49b50d1d4cbc2b0a92c5adf392fae723d7d84e7dc4406061e2fd9be043f7aeb733bca49ab5420a98404b547fa66764a4481cfc6c003191c5828aae266ad34681cf491fecd7c78d309ec757b9206ec721179416566eaeb3f1a70d0462f5d45c10b263feb3a7692da6cd3d777744ce13ae0b0b21dff48c3e3301bcfa90666af1eb6b2ce558eaa69930a963dfa07db484015954e35382af49a2fc15a6a841c306cf64e837c282c6b699cccf8751e58fe2a12bf8d8cd532a16da686d4bac0c6ed1c2d4f7b7f09055c1d02196fc8a45b5c72211c470fd4a826dcf595eaf4fdb2abe548d64f24c9f86d0018fd2d41ddcbb0501ce8d17815fc99ed29adc6983ea5f29a99492d2cc3f421eb4b69999484d51f57a1c442fe2f1c6b2ad82098d87495abe388e9e58fb57d7f778ea8610c4946fd587fc6a66adb8764dfe9a497b5e34d6bc32da8f96800d75b3fca87c7624bd5d072c3cfd4dbf5ebd875dbc58168c5a0801fa0691b925af6b30475d64a29b8fbed72abed18106f8ed82d08f3c090c05c6b492e28c2a7641e6a2d3997df4ee7ed4135fb376934c33b5b30916c8fd785d3b9ccd7a4e5523843b72acaab5eca70abb5721c41eef68e58bf6b69b1d275a6442494d98b9cd195f1bbc2eba70dea05a7e50745861af3223f22091e31d027447d2ed2422a30dcb71a864cfa161707b091d772167452c8f76189925beb22f0f7db8728a456c4319c1f0e1f7fc51474f3f8d807339572d0f53477f5ab333701800a561c2a9e1ef46068fca0c5d40010bfc9d0729f192554f9e7ba1a07d05b498b7dbef6453c6ce7eefaca86cc0ce0a8a11eb5408aa4ea08804eb68fa760615fefdf718750beeb68a2535175f720cfd46f554922195e3c435529aa8b970478e635cb3e8751fb037f039dc253a5b7fd2b2389c15a588c2ba60504840d6681a925b8754c35fbb7b06824acf6ad8d02fce17a424a72d81b50a3b70e67e0cc1c0410b803f655dbb3c4de7ec96bf57bc3551ceca900222e5c42ef5b73358400bf1f536712f063a1894112980456ab3c1ce9bb754aba72cbd4522c46507281448ee8b7702cf2a78122e26ca4c013effaf6f2253748d72f70eacf9c5076f9e4e1c687b853e6a93aa361b2ceb49298050de427af8f425772aa6957d09dc6d6c46154b0fe351e3daa4104460d41991fc5fd87df2456d6e87296da62086be4f739715ccd45a2056053ef2881c4c5344f2c05c4b8c86df2e072fb385ea6b7f6a2de65cf8a33d7779b80fbda8b92e8374ea5775829a65d0c0a725571b6272ca5f215c83e47eec66129a3b7ad67ef15e0a30a8b97bab3caa5c801732ec32fbf1b72aeb4a4d1ec8edc43ca014fe8ee5e0377d366f7e10249229a5d83053a4d60834e15ba87bb7ee26d649e8679b00a138704c28442023e1148bf72d8c52de42f320b341c377a139f7b1c26bb92236ada2eeeb612e5df0d5618434027835f364ad3931f699a4851e6e1936b4e1e5e5f27e0c00d06d92ed440c9c6108ee7910345f97e1b5cc63648b3416664bb7e0a6920d30c55ed555ce239beae41f76fc21f609d78583b131788edc6a4ea45b1b8049dd72614b7c6c17b4d357972b52f2ca13e262af1ad6f8bea337e7d4a23d30a04d3e6fc4176bd9d3adff2aa312938298baaba41706fb6ea1fd2afd76d92d198580aa8acce4b409b9ee5fbf07214abe34195d335c16ae3e1c6d428f451fe42e2becf111e05115c25c4e4b3d9728de6b5c4fb80cfdaff23f6a07c50040b443edb5e0d8a6dd95bae02a6e15f635e549e8a8812f47aa3173f13e26fa06572a22b3b50fdb27c08c419a237d58baf7277d089be3c3c74609eeb5e8d754ade7d4b23f06b039329119bed7afd79231447cb692f53642854acfbf5be8e8157737129253b5d20f93b45da9b6dafbcc80f2961743ca1aa564749a215294ff53f55a6769da6355571b75ca9eb1f57da3e085027fdadba71a57a312fd983772e07b8cc745a49073c7ad9b0ac0014af71c49061fa86892c12444b119b1a2d03507aed642babf37e5ac9eb28dfbf22d650e8857205722e53092d556acbcb7eec3c172e9e4a985d0e45ece6c38bca021805f45e155856c690ad7b620be78f959647c6b8c640794cb9a22c25a8abe545a13866f63113b4cfaacef50e249973538d9f342ce98b66c1c0d6ec26b4fa7fa684185096510e9db1190b663c96fc5bf4d1d4c0448729adfea68179c4fd6e65df5804344a72969c536b46e8152a6798ea2c6ef56f94f1804d85d9ff4f7f1860a021ae11ee05134200e3f3410e7cf804260f15109649b376368e7250164fa697e601f897ad72fd9d77edce2ad36c5d061837eb958fe3bba5ba677dcf53eb5c2b2f693173bf72abcfb428839d43d4e4c0815d27edc8d77f66170f27800c7e8f985ab7f3468572d0d01cf077f92a4294c099b603b63cc3abbea18cc5f7456f4fce71488569b92585d22152ad221007cf2356229e393a83150acf90d26e35f3750a2f51191ae30f44254fdcda4e2ce1829aacac076a4fb2633951ee11ab32b3f9a809871a5582728bcd15054e9b243037907480f0ecc4dc417ed61dc240becfa5c188e4f119e4469c9a81888b368e80a04c5314399a8988160f1f400c64eccc0a343ed737938701622bec649e568961ca192939b87d10117aa97eaccc94ef3a7979380dcaa120569ca06975da51536b181dc35cb68c30c090f7ef2078c2fe0212ea720a21b00a724a12962ec0b9b4454e78d8a7ec328eaac8915682a95c862ac4d70e44edc0fa72e46335d4a10b824ee8c2a0b5c037ecd9a62000298bee8debe59b0e2ae3282372e1c764eb884eeaa86f3212f68207bb1013bc774aa88209930e533808c95ab07264eb900f733c576f76029dcc518bb78e0ed1d239527c226453627df97698f9727cd08aa83345cce9b0b8540a1e362bb4c8b31aeb25887ed8fb7ff22af92e497235b5587102ca69404a3623ac7ce85a802fbac8fa3da92bebc9f3f304fccff372ffd4074410bef7091f51ec0a8faee2f587a308034b69079dfc12b883c63f7e7288250802e3dd9feaefc55ff4b37eafd0bfd8591bcebbf0100eca941d9a74f8007fb2fd472309eb488c4d7c4ebeb5edc5cf2f24f7a4513f87c9e2120f54bb113805ac8e23c695a93d0892fca98fb65759a01df1db6fb7f53e574cafa8b1b12e72a35a0e67f75bda44044504e41c0f6f6cb77a03fd12761a7d54441c309f93927212ca45e54b7769a7946aa34cdf819a1bfd7530abdc662340195a861813b1f70fb0fc1597b53a9da3a8addcf231fab399240bc37707e4152e40305b4d6058ee728ad546099e70dd68ff0a2016a5726b7304011c7708e1ce40b1ce8cd152bf3c72f940e6b85b2971ecdfcbba485759dff6ab51ba5341fd684ec6bb8deffab742097560c7fab6c57d42f66027fc031062ca388d653e4335ec4bdcde322cf4f748620631ad7deb0426b868a099a8a57c3e24925506fdcb6065a54cc31f856c4ae872a0ee420acd2e7a85bfce496724b1dca19f5d2c7623bbc120e425745d3e75aa72666bac82768588da5d8bee788e7cfe58d6d05d5967f4c53e5b5671c32112ff72f169c72f051c8a41d4866154a15773b9b2be853e57941e37c6c5d817f2e18d48f6714e58f87de19b5369cf5d29f21c956ff67aecaee552c9ce986e3ee851093eba2349db456c54eb65beb3ecc1d333970d6b5bcae84a89519add56e6755d7a3200dad3705e68e67286b7a7cebf06b281e41fafb74112f389776fa4a7920fa1729a744edd179c9f0d30ed4611050f77055ef223b3c459e6b61e4d984b757a7b6dcd81f649166a4c20726e09ab4ea12952e41225780f5aa1f1b522f75176a25506401ec8a8c376861e720035b859d12968a69a44f22c60bc440cacc59860f5ad72f6c9e6d3249c001dc81d124acfdcb150d170aab7352d3a632120cb3c4da9d972ba7f75350d7c3af693ef2944512553596400fab6fba62d5677e7752ac4ce49726ba4d9f4239806ddc2bfb1d325b6db2acbb90ba598d7a1d4e0b80691c5ef1671286fd4b4f24a6b0f95a3cdccb5dea1d6a3bbcbbbd77495cbb4c152cde7d8c372507783164813423d66d5a882f2e2194502179ea6af8f89b7df326549437e3c3ca6f708e2452997be1b9ba785e987c404bcfdd699e96e98b7d5aca5347fee9e727d75c712ac4aaaa33061c5caf9c2a5c31be705f397a298353909fa9bba82db7227eca0374eb00bb7d958624909333819f3c7f93f2546dfa2486733575415f772638ae00100e996c796f9ab6ab4b5b5680c174d6a55539b54121cf098d286dc2de4fc9087594689cd0070eb6e94c4ac0c4c0245ed39ea95911f2c378ef091d65d553e9e022af009bf6fc377fa49d6392f53f7e63830c7dbca5374e624836dec724f6d77cd43faf246834b91d76163d86192e8010cc21cfe558e69f5b1bd04cf72f8695249ac7c26ebb493c77df0b8a1d295a503a9c04237f126f22c1fd9215472388815d9ee350b4f0e4996e004e06a474ae348415d7dc5b6a97bae686d237f4134c9e62b5ef410d3e8f64422d2f51d9f0ef832b4d3c198bc5791424ca0248b7255ab7a59abef63847c0769b78909870334f68a762f3f8e6d417028dc8445595960c292f5eea0d9c652d61f38bb3364e972c3d946dfa100e8f59cdf98323a0d19301b679fd2096d5577a626b167668fb8632ab709574a8b98151d055d66651f10239649757773cd2b4423738ec6929326e451e4db92485fd86efca2d5a2fde91b793da324200244b7b544fa1659d3969b10cf80988e36584d514727de2442027231f0e6e5913f272385864b45fd47b1d2dd30c7d050bbbd91e3526cbd86f1ad72a9867bda1acc3b13482b3d67ea31a1b2917555133b1a7e73c40bd995f88e89721703dd410ad3acef2c7c2561c1deaae4418922fc4a64a18e02283b838280ae415b6066d55c44b99609bbc7389409e432c62ec06242a0aa1fb6e74066ffc8267267ff0fd6d15b5f6271824ba6daf54401d4fb6e486b7b7d4889973094c51ca84ac781b04aa953f4b469bc8e3b75d3faaecf82e7b082af0e662112500a85c746725592872b15f4b55c975498292de10278a50ee90e8184444d27517073daa9a472409094ab7f448142bd7cc9c953d10fffa92cb5fa5186b307029d5eae6e75cc5d63a52d20d779537f49e78678359fa5b9d850433058020130ece64e54be006c4a8ffe5723d326831c94150d93097cc3234e53877aae5899bd65d648ca113b7746cba1da844042adcd539732f8affe382fbe82ce9702cfb72cca55416a136b06680dbd1af6b33596e26fee0216ddd34c47390a7a8040cef900febff7d9298b2b723333e9649262d53a4a4719fd58cb68e62643717ca2f1a1e6481807e0f52e8417c9a8e7709fad26b326b873a39a24ae6f0450d8e3c9fb69a0471171c87ffe3e726f0ca856c991f93ebc40958e41f064fe266b6bc03190412ae3e95bef80833172705e1b6a4e6f48246a47fa427ed4926824c55b7e6ad287a5775d44393d47537237395fa77a41901977d0a48027de9645c969fbc2144829da8bd868d92808b472da924b757c86ea96d69c17c20bd85ec6ce34652189d41604f9398dc555ce7b725def373e9ba3abbbc8f6a6337bd273309206973979dcd8e765e0171432f32305b3a1b000f2dc899b29a3a2195dd3a8ade9e3b962010d12409bea4111c58c33721fef34bc4007a4d8340be1c151d0a05fe78c1cf884baae8d29452e2dd651b621521a5ab4cfc4e5653d6ce87091fe5e02429275b458c7670490bf1abde0ebd05983bc1de1f01e46feb4892ba016c3ca8d72f833a7b1a95f85a042f39c296f6e72a4b02270a47067582d04e62a143c05b8c070e11285c870a250a2d85b6e4c7572716d9b3af44ef4d97e13d276e0eb33eef07f602e3352f0b601955d5a7b6cad722f62de8a492f08e45768d5e5106f78afd921def8a29b440ffd53bc14211b3052bde336ce78d83c875d1c117696d2297ee13982e935d93f319379f1281007a172363e3d331f9a2995d6f90581e936293213e80757799642a7e9a2e60df014f772029a91a7a9a8b3af48c5939a552af5f5ea71a729b556edb67cc23611105da70017937c5b6ce839dc6ccf8463f67c3ffc44e0d8143b8847220034b7c52a243a7294a47f9197dd1bea6d0b2fac260b1a83b4bf35130b7391ab56702ec4aa919172f203ea12f8d8bff5cfc9df7124c0d10435b462bb1ff0b5c953eea82a1d3f0c43f335947fef7fccdefe0829c013194816a1ada41217482d1d18561888ff7c3c15b27e123f7d2b44cf79e34ab0bc240f8db8dd9c1f153ad60a7f093d51a2a1f7103721d743a420304e5f9d036cfdf79e480157cbac44a02a01d4aca68870a5297218eb3c85231593b3cdd72b31585be369cfe27b23a1d0d856e220061911d38a5851a4e51839ab9d20cd953453f61019d340dc33f140399d441ddb81b3e77015729ae38e44361538d652e885b58e9e1f90a4d146968267f0540ff86fd9e36f0a72752f4df93a917366260b122f77d9e10e8058c281aec6b4012e6c2065bbe635720181579b40140be0062bbcf28333eb556c8635808dcb5a44ef1419d84296874cce7b3d213b753e45d17b76fdf8ed7bf9187264128ddabb77309b41d06b350672e9380355ab44e8d617c5992202f524031b4bcf22c96b6dbe3886f6b5cf15cf236c6de0aeca04add6b70b81b02569a98ac3ed2c6ffb6c58371daee1db1e06496b2b57460cee6c0b5526b7d48e27c3cf7fe02faafbd99ec66607d8eb9bd69ece4155b96d6f6cf740c0353d38fe5dc7ea4eb74f9cc2e59482e5c39a9aacd6a8893df708839288a643ef0ed17b52330880f8e7cf0744acd9254eacbd644e4c1c2372437ad46631f1e5f24d400dddb6f04204f6a273d103a98032b40b58ffc7a7e83ac960d2ed489212caad674ff8ceecc74c58db5f5b75c308e829f184c409ed1865e3f964c1b06bb889cdf6183c23ad5535a2329c4752b16721c1a9935eb2b9df29a7741fad819bfa12d2ee3b995461997bdff9286d430e3985c2c02c55ac663255a45dac83dcec781750229dcf94c1d8f9a90bafecbde03a4d0fa6c82315066b72c3133d807447986ef7f44c2fd5bcb7e4d6f2f3e821f2a2b4b310f4ad184e40507fd8533416eee6afd95a7542bc4bf90ea5e76769def06cf1303eb72bcc72a73c1231ab11fa168eb0e95d12846daaa5913ace49e670fd82a6a81540239b8c3d723eaf74c72a2ab2ee34df45e3fb4572c406db2d97261357b514509fd04e6932643e6d064ca72e7ffb6b1606cb5b40af661b8f32d7066e6809b43b7cdaad272b726b3714e52755b4ad40270080a57ee5849d23db87ac239e79fa751090cb21ae1a810ee73180a34cc376a00ba1c219157886a62fd22160a8b2e0a977dd45579463a4ed3d1496f98cfa1c5439a85fea1feae10a601b1131c808e108892e5f85d1729198cb1c9952965473bf733e754ba60505ae5833993e96012cf9b195293106725f8d9a4934d8b7d43345a677e6622593fe60f3a2226fd1a702c7b96505a5f320c114b5ae33889a3db886a4e17e690e413b3f32f19c14aeb33ae67852bc895823168815c4660352a1774a8f5378c8b6d6c3fe89f76dfccd784557f645dece1946168af9fed15a301a2b1c4c9b7f3090215f5fd98ee35fc2c63e2da69d4c63bb7226a646062ab94efc8452791ebeca190cfae9563502f8974f015ea542027ceb7256e273b2caefab6c0388f39f7ebecd8754681d7e07b168f76e3ae82d494782727a7bb155283d1dcfa861773ab32a17e99a255f0934df6cd0647f937ddd228572c209c9c60f04a56ba919fb56c38d71d85e8a28f4ea9265a96b839c4f23219572bede1bcd1b508afb70860ff2a12da8a51ef97de0c759d04ae0042938b255197278ff7185532ecc1460873e2398c6cbfc86a4d456c956aff49a203a8c20b54e564eb4e2ef533d65012f08c96f45091e71fc5e8331f193b72c50797ef4126648727d9c162df445fe81e537f0c75b936e3c9de28f2ea58083b4bcca544812902072246671f321e6b8536495905fec1879e9da027c9bf12de21c8ab67b02eec3ab72802257d1d7807509db48fe60a670e689c3634c7426db7947cfcc37be95b14229921f3425d5f8123372b9f5418029d04832af975625883c79018d77bcc5309672ebd3d00d851bac257ff4e2ef477b542030d4b2a5265cea0cc94c44cdceb06e335d8f2f7dc504a5e201bacc7589a4b991716d5e9c55cccf8a021e308cd2d64c72ff4e8afa4e2a8c753de2dbacf9a0c08b6dd5ff2d57ded55db53560fbaafeb57278d036cbe58a2ea17b363e32d392d3b808859c0fb50b9aa805057859c9d6aa72a08ff8a11105483b20edfa006ea85a9d57646abdf1ec8efb5cea1676cb927e27378579ff65878e544cb3414f02dab8a2def123a3b33adbb7d792ec90b9cf5a02b8709ca828c82c8a5212dc65257ac17ec7d8b3a4794d6b041b19e312f36298654299492c95a11e0e1ccfd978280c7f50177fc5d8af4b4e6a7441f485f1985272e6421060f9f520f259c776cc09501df4d84794885fe7bdd6d9c14cefb5c8941d6b714743bb08c0b23f197d479e9aa1bf190e6dbdab50d0d2ad2699365752625d439b1e038ec1e800cb2d6b6d6e42e35316de1e2c8cf39f6586d8e8ab8d0c8772d109046c23fb12e7a7076da9abc2bd290dd0893a5444e5425d726d7544fc7c23656e50e0332e5a844979fdf77d4ed7137aa5e40541451746163a203ba1482e5c112fccbaec2588c1d5139d8e4ba53c83a8b016182c833948b5c577ef4266206151084cbbb7c26a428b2b28a404bf9efe0dfb12f5087da232e05a34a18851a972637b75613065c82b051a54b173a56a46f3f5ee299f931294d963187ebaed8b72e8a22e33570870fa06a33b6d570829b80b1b1a90b77a99aa1a83af91d938f372017cc1b5b6c81fde08f4d6bd5423ffd298cd6f4b11377ea216c802849d6d4046a05c9f7b43fbf4b079dd663963d89e8d2c1fd86c41c64627735d24aac7c99c729a5934f504304f7de9a906dc95983bbd813243f6e98e8e85a3f880da4a57a272508528176c4bb29fbfc6fed99ef935122e7023252178bcc540b6020522be6e727fe0d197a0a28a6d5c10af3cb3df85b49d23397c225219a63627b5d4f1adfc04e8073cd60bfb09125bb7943d3a667172bb3345a6c2eb9225246a09872f0704519aba2b3424b93f53fbb498ef21cb76433412525ae1408dc50539df6e808c8e72a6f89a4d70d15f1b44fb1710b66d683cc4587741b0826a313c6a11474c8fe800237f65d45e81a9cf30b114880a9b15f1fc43bce904cb5b894bc99d9bcda1d572070e9e7a3252084076f6d98b518e39a4ce98446a8e0319b5f34d08c824fb0332b4745233b0c0f3c417e0963fc33079435d1464219b4c8a214b104297ac5e273dfb8a051b8ce5c78903efd5c9b26fac4bd03d726e512e2002ffdbeca83f922d724dac9329e1300f70a9bcfbd53dff429dd4117fa87d8530741c4df985986ba572afde32629649d306e1cbaf594f1c82e329f824517827f0d74b50de427f4fe07227e48b3ac64a78c237d10432ee82f4854b05b88ceeba05873e8fcebc1406a672e7670794c4f843146b668acdfc940c2cfb617eaee1f2408f50c01fab28869139232ee72df2a3874068c2bae3dd2c6949cdc4417623170d54cbca23a7c655364d12ae2cdd3f7b8f0bbc796d7246874e0ce7148ab5dff46fddc8dc7e02e6c96a72f30143f7f44e29e8986dc8a05b70ea51f205b5bf651de1386913d4997bff931121a1563a46e7f439390a54fd2f91b378db0d917512e9deac4af727d172d220722daa65efafce48c28cf484925f1e9e0be4c8a739b2124f060dff9f1d5e34a72655f365cf009dbbfacf0d565ca5804b750880f8088f4ec074cccb06037a7bbd728e0e402cb857517815b6c31ccf0973199791fb1afe96e74597ca50d5535930258b8ef0f30eca264bae7d908e3f258741a9f4e11cb0b6562f30d4a19a7d5d24729f4928753651970135f83ee49befbb950d89da18834ba65b3807723eded244726517ab9716af0c413e4083da5e189cf59fbdf2d02c9ebfaa09af02b297bed4726ceacda23cb31ecb1547eef8d8430c3b79df3141b44df9521af86a6dbfe162152d96a37548ae81ba3925d996cdaa956f7df9817295d382aeb8d64851adaf6172f1b0eba3d0efbd32c3acc60dc4d9e405913770556ee631a926d14851e9454564cb657ffb736d1233f0d3ad7187234a0ee84f31435dea7b27377e17c3e95466723ef2e52a47a15526346c3e3553a17ebc73cdf311dc5cf184380101a8bed6ba7249de7b85357a14a81a80e917f8430d3bea08e8b097591ebee0cf472838c5a954b1a56f03af4c8f902539a81a69eba4a2f71bbf5fd75f4db98416669a96c68e720eb2206336447860966d4f4deef3737a33162173cd919dd82b121a21f5b3c04fd8c1100f4781ec2fb34afaf78ebabc6b3de1861db694b8488ea9d8d9a7d42372b214ab5617e97d11c3079a655d25abd20e383966adb11326c1bcaac1f580a6724608bddcf72d6487e3ddb491cb99a7bd734e835be339c3a9db56c19f16275b6c3a8287da78f9e0703150b8a194d12915687a8cbd523ff90f9b04a0115d6b45722604d867cac5be2554cb8a8293e7e4b86f8b0868993a77d4fc5b1b88b24a85728940003a013d0ae96ea72ff04427b1d2ad0603160a12394b18dbe1035c041672a002d6160ef50be1c04d471e6c9e6ad56f690c4ce429d651c62eb096f6ca8e3d78ef64d0bb1f36dfba9c9082423c80e35998c7ca8d84aeb9d196be27e3cd577274b73d9dbbe52f1105bdd0a6f8243a8ec53da6585cc1958d4d0f50b4a7ec692872135a2e9acbca62ff943fed5e2734cd0f7b5c984068d8c7089df46a28ccf372f3a178f4bdbce58136757f50b3d0d86e7ece0ce7dea903baf14c8c4737ec50721494d86836503b686cf152b63a5160b723cf523084ae277087b36f406779227218e8948927d5a04609f82b548c056339cfe523558db220de404ccd2e6bce8a7267fd158bcc939b4024f5e3a1c6c0c6066b1266dde768a3add2163cd2e6bed33296442c7c74deba64941a6b3d5aad2f66e9d78e4a9ccecd80d4db35a99784a872b07a305e64cc7ad49d7b60fdebb9b5e0c7dd80f4e68e15964b998aee2335be24b84a36583be03d8acae2c546f7122a089641e2d3c1104b8592860dea4336b7722bdd8234268326a454c9aebf618bedff95a46f6d40be16c2a749822a536438728df00d103321238ebc0054202a003216edfe1454c059faba619fecc2aedcef727c50222f531ea437c5025e526c5d6a0356dbb286e4923a2f98f19919758bde23795d8322990d5ce217f49dfba69d1246338efedbe0b1cbf14d50dbb55a5dc44bf4fb3614690f0d174e43ed734cf1efca3e245cb417d61455447476438a63df4c67930520c293f71c3811fff0f9072c51685905d87d8237c9d4311aa3aa379a722ae4da132b95891b1e4f47e6b6158cb62a58bf016c97ca0f7700af0aa0f6c7729b074c3676bbc75fc71bd52da76b1ac08343ef10f0013dd05551ec0d232c5072bc0763178c5247fe1aa63d7641a1443dd0d4f28abbdb1445628f791e43772c72c10d153b6c1b872d07497b51de0d1c7455438fa77c2548b50f12b7a9b339855d7c55ca6930434e71510b6e3f179cbd064fe8443ce5bb2d177365995d89a12a72388b7d3dee27f33cfe4617582fdcdd4b2ef9d558a61d65ae45b543f7c62ae44d40a0fb652c49f3c5bfce2984ab3820d64187591d2f77b06e61d0716cefea1e72a008d1936a7a6cd57c0f99ad92858900306e99c4c8f11937d450c8861bbfad72dd2a2fdd6890f1088050d34381999b886fd6f01dfed4f331e410dd845cf8a672971346b6976fdfe36bb5e5e92663d91b5a5a57d269eaf0ad86b5cffeb001880d08ee83866fe651554f8de389d7bff4ddbd76fc561489216223ad536d82e7ca2e18261eb659013602bc4de430487ecf9d777bdaf23eed3d63405b5f4875f96a1d2e181111315b3e012693f7572d5b25a6e5ec8afdbca02205a1d1571afb7a2f72fa24bde9616365069b230a744009269cde1d5c8f60d01b64c7eb1d11c468f065cb70d072136ad534bc123f0699c3d7d96c21811280b14d0c628c20d2e8414f72dde839d6f16ac6f84bf1a702a6ca6f165d51afd6c63ab9349478ec5a469abf721f89b28d4e238581ec3a56ff142698f6d0dcc7896a7789751c0977c02a12db722725505975d6ed2cc4a652e39e8b3ca4ccc3d65e6055c2d32b418eedfaa17a72082680503ce888876e1bd73c27429c55a8a715b3d6ee39edfee99854c644da352ba94faebfafe3412236dbcb1e0afec478047f35ce50da6f5c6d794f36c86f7298554c1bc5f87db1b6c8ed0de14e5dda7c200bef34513ef77d794142c4242772a149f9f34bbab5e9980c32d4ec8d8e2f0f220a300ddc14ce50ad335c8cf526578a89087b74b921ecb84cc5c16c035dfb084fd3df44db0ed7542510f8b56ff9728408178067bc717a1577da961c6f658943241a69c8299bd98e087831b64ca77225d67b09ada4337be58913bc3512c537df72e1f5141c4943e2b4fcad2f61b0721f58ea6229b7d1df92be55668bfe39ce6b1b2636efdc340232932b68a9a98c72b803ff522360913dca623999d860171fb3ee45942b26a4b6a66364fa3571ea722789f16875279150c2dc30fe84de94e428c4d7dba6ba9c1ff7ab7b8a300f54172f283075b3f84a63200a7168d57d3a9458fe065385cfc0a0b3a9d6e7f7e83b728fc6da6cbf62f43e700e5865b7ef42009c9fe44df623414757d4852e5d1aa4727f7766b26175e3102905396d6b0c5e0f14b1535840eac3acf16f9c7be2c1c120e0933323ce6e9ccd0d6ffc23c070704f89e77a6ca753e97729cee153215aeb72f5672b7821539c38339b4a4fbef9f320cd96d934fdd1ac33838d5ac76da057373471db491729e4fd7b8976468f550b0b7791c058e4745f3d9da3d6f714e91f7250cfaf5294accf737cb3e46ed2a32d0aff4fb251ba316a30e2ce6ab8097f19721c95b5707bd2673d02b01841f3624a39432af3b8301f7756e75c62dfc2382a2c31915a3c09de4154cda2ab26e1419b7f9363a98fd6764a0836f9ad96dfa69272b2574ef41d19351c5725165b70d6d7dfcc2882993143f6a14f0e4606065a3234923a3e76443768be78c9957e1cf7ebc8d7681b5d7743b348432dab4a37c66472c8aeedf777c6b31ca6fde929c645ae0d3704691b3de494ca3e845913701a767254200f3fef88170a8511fb6d691a4d7073a2ee753d6afb3dcf3e1bcd5679ac01a8acd9a0c9bca87204bc72f398d6f7a0a3bf938dc33c413f33cd709988aeee369d7a2820c14f0c87777b8d52ca3485fa8e5c25c9ba09d7b43184fa8cae3114729d917bf003c84f3b1a5f146f1070d6f1460bfdf1e1eb084215d268a5ab5f027278ffec38e5e71a45850e553da2076d1a0f9f19483b490d3eda803daa60039472b1b78ade2eedf7088654ae732ba958dff0681b046a86652e00100bda1cd7b008b5ae6f4935b6797d870c50789297114e6b853760f63603113d3a71abb9f8477229715f49f7b5b471a8bf2ef27aeb52a752d411387907574631a831635cb29f7263d7c7f0a3c31df38335f8435e065bbc4ccb2821d513307638c022c8f26b406d3d742a081f5075300a1976fb1cfcc4ea8af1570ef39c0c7fb985f9ded2d7f2723446af8cfbc6a2c2a1252710532838f70b67a5b35443a7891b02b4159c69e272ad4f549278fa1ce5b93093ed973693e315fc64cbfbfff5ffe22f617733e5fe6f200e74ca0759bd1828cf2415f8e44ddeba302f9525ef427eedfd6a09f962a2577f28d672a4b4d421b2fc7de36a7f2dca77c5b2d9e29f71fbf022d82b6d0eac33ac30245d7ec218bc42200112e0b879499573d12d4e05af8a9959a32be0817f72ab3d5f986a19373b05ce19253eb5aeec473b9241b2a662a14b9c59f8af007a5b7313793a735734b0830ee116a327bb4be42169ad66be9f5d77924ced35be16721e5124ebefff5f94b2786d1ec7822e19e816450da53cb704b89fa73705c32155176137e65906d361a8ad049e3496cd9dcf95c89ab4ab80f1ba24711ac415bf724b733316316cc0009c8b8378db700e157007406871b40fed71641b8e4e3dc2729552706d9aa405ee4f27ef10c00f54ccfb4e3a06fc71f90244587efa6c72627281410c9bb4ae8869e57d139e052026df6f3f34a5528279fb59b9c31982fd737203ac742a61d463819dedbc56b6bc3d65c4571e86aa5d757c374a399f3a80305ccc112bb4d01f915770b9a56f9ce883cb3d48d085e1db6a74fb6fc230dd223e72615cff7c32c2c703adafd59cca271afa56438cb710d198ca58738a346a96f1722f32e363a7e41b2285424f717968116d6e881445209498b19db9b960c274d60b8d4e3aa64cec80023adf5524fbcbf35ab6486148daffedfeb66d055b0d44541556db89b7569a41acc6e0b805c15aa44ddea7e19eb0eebce59da9e86eb11ae472b4f592dd027ec451d4a72b4526a516813c59dd7aa8739681d4c791d725965072fd225616a9a0f3c0e1956880362dbf43d92b32e353417a3757ffafda2ee0a5729feb5ce3c5a3cb186b15585312c40cee7b6c1fa422e2bfb74088062705825472b1f0ab33e7f0c25efe0daf6498addce6f0f0ca671a31f2f996672ed1a63b7d72282f01e8e9899551942ab005d502d93f7db4127efe8d9c9ed5a9a8832796b47269881f4758c34222d2d8c8de0948a24c8ae8daf11d3f5f8a0e77efffa2cdde72e4e4e3c75c6034acddaaca447cb4f19c1da26b762cdc6489790a1360cc23ca588dbddf1458771ce520bd2792832b96bd8635679df8817e9df719766203ef637258eb0475b93a452c07b86ef77ac661b26bd4392de61a637f9782d5ecd39091720554bf0830421d981c2fc8b8ca43436139914cf24154c2e2f649aeaf8f0d0c721b4ddfc64dad60706ab102d501f5c35325c984754e0ea8253b3f99f52fbe7f7247f708efc16d23ebee9d06c55bad3d2679156f181c33974a92dcb4ab48cb5e72e51952e0a270c6e62987d6554851f4375f3bb912b00b76e60091dc9535a00a2bb2ccd1e0674a6326660f9302d9ba5628b50f5c6841f03086acb5d8fbc8a9b972c9bd049ef26851490add12d0fe9137d36bdc5cf366d09360113046c8c5b51267caba3abd1a3f05eed140815c06d07b3647467675ad6e599e4c6b8c855cb8373fd9c32a5a41888b2d1f42ca8c4fb7e1299c3dbc5ff12e23f00f90ffc5cf5ecb72ec363f509f17b0f23746fe8f1cf95e3049ca917d148c8e6e5d5f81c58cc6a472502cea01dc4a6a1f7436ce5c1549a28a9f1f20e3b182fdd4ec995646eda68b72ba1510f4991b62f53a16fb77cae0f1d32d88990131f4d6fed0ed51108b1e506d92730ca3b096c50fc09316605f456dce696904bf7f081686dffb601a249a681d45b3375595b3d7c6fc55c08e29f0f1274fb88529b19d1fb2b067db797b62717225bdfbdfd026f4c0603d58d67e25cf6dc3ae87416542c2f39460e9186a3318723282ce5a3007e75f88bfd4d621acd782f8e891f642e729ac07c69f2a90823672a3db8146e92e9f97ed40dc4029d45fe440d4c697a7078edaf1469788c6b1754f2494c5448dffb913d70170ca81f61ffc8a255f8fca3b85dc61c3a0db50ddbf7241b832c264aa0eb17cace0edd4c9da22516f6113152212a5af6d795db576a729d27d0c379654dfd8a75097c679f1ecbc261816464c2b172894f4978aae0646378977db467b0055779ac00c8368edfa42a019cf945f0b3d18e621d66920cf207220b9d5959f5c9d7303a6d07fed5fbb9402ec4c6128d6ca36019c88f5396af272fc482dc46276f8ecd05ab29556205146d1b8983e8bdd63b71d1bb6d1b12ead52dbc269d011da5c3b04fd8e8792b9eb8019be1d460c2d1ae27919917b311b8d722dc70c93a0bbeb83976387a1570da3c27f3465be54dd33526cdcc2f11ea76f727bb7ebf88dcd7e80868c0e0f2eeae2e78645b2258e780b103ba6de9e19864172e840ef400efa913752ae4e7bdd63dd4daa0fac3b6dc02756491b37ea4f8e181a81d4bb9838092a4308082f59a17b6925cf4871ccc992812d9f1139d9bb2e317218062d0cefbc36b5e92c60d5d774627953fc69fe5c3da57bd26cb0597c2f8516ff509ae3447fcbef1d0a0444cc4b82bdf954259cfd344728783fe7b45fe32772a6447d74cf4371b4a4e696000256599101b18298b52d3be62b8c163652a9c63c2989e62469dbbe64ff492088bdf7ad2ae18bc53003a91751f2fd35158da21d25674101e0e0d02689349d1e2cb724b5258bb4ce830db9f92969bbdf76db65ea1c1fc518825b3b11e8579a1d133034aa12e32979cc41ab8d8cbaf4c299edd535442ef142b282fe2617015207b44fd51ef7c8116e6cd99fd3fad53d55e7c3f2ff3df734db271170ec1eff15612db185a4ac2e8ec00acd0a28348608aa4af0b39f03c51ab2c6e501f7c291096ca230bdcf42b9feb3aed5a4bde52820a186f207166635018a36d7605f77532f6abad6ea0d2405c294b936273d7623a676a48983a26ac92ef8b589095dd82d0885d53e154e74e0abd00fd37c6dca8d5809a538803d46fdeedaa2b9b6905edf2b4dae7c3623692e0fadd090593657b8474b89a630a0720cc6c1099bf82786fba3693a3ce19f38d045e8af0bc60a2f3fc869ef7153b072999474e71db7b922b772cfbf6afb25c8c1183f37447db479807846ba844b706d54e913a788a4f2062e0b05579b7f56d932a542d4819d37427d95fb2ef078f4720c933988b13f90eeede0c7e8a729d13ddb5ad9bc5e1291617788ef10ba732e7206ad2706b6db2a72ca70daeaba5373eccfeea218cf510d42b18874dfc2f54f07fbf530d89088dc3b18f088609d384a111c3b44dddab5bf603f8a8f7309014d4644ab30886e8f9f5f0865c4cef9afa67af3605038fba11c9590897196c96e1372f01e349d78ea0bd35d7b6a57a0f7f954871869c37bc5926750aad87748b8aa61b8f96da7c83ec3b6768de75920eb858238c08aef41fa7e7910a2681dac51db16934d681aa43c1239426d352f0b6694fb7a370dedbf63b7ade105243d9535c85459c494eea794eb1c399e6b795c7a5e7cbe5783ea7325bb9a5e2e537739e55872fd3511071c79f08b7fdd3af793f2e8f6709132b98c92b00beb9788d291d9e67238e0ecacc603cca68b7c6272c6e93f8da0cc0a3bdf0e4fa4c58661ed22ea20720751b247ce875fb74cdea3e0db5ef363869faf67c5d1601bab85e8e8a4f7e872f3db425afc1f7f20ecb9a56858a9a1d34013b2e9a457037972a2aacba56f5b35a97baffe6e5c47bdfd3671ee0124503c10556a0a1076b06cce40a00b585312720ddf5a35d2fd04ef11716832971ae1d64e0747a5ea1bea9f6d0617e4f5dc9a391a4a7f57fd5817a782cb5ffd05aa99cce7e9a5ca08d34e371236e0743517d9721b6df50cfff6ef424c0ac734b66f3dfdf75931858f873c7b1b9beb7a056f58729a8116a87fef3ecbf4b7521d6ffc8aac78be3cdb54059f56f7d401d2d9decd7250fdb51b547f52023f30d2de904c9bd36cd2edb8c46b0edbed60ce9e5045e503bcd2d08eaa88ea950bb48543b1becfe980b298c162949e679cd66c07e7999b72e0d3cf943e4756c4f92c5bbe5d87b5e5c96e338f52c4a9105ddfcd90a3f12872c1d6b50fd632d0ddfaaf05c56c9ade85f8da9db171ffcc44a24c4320e9285c6fb81cfa92a0bfc0a12d21f30c588af8b9f2b22db5fec274f3b82a8ba1a2a6687289371809577d0a104fc3bf1fe132ae8bd078527014540a50ace6104675cb2e61e8d292effee08d2c97f144a4759adb9cae491a36960e82ce2604f312bde68672a2aacc599681d3833878f879fdfbfc4b70747701f738a387273ce9129fc2de1a9f2d8d91d44aea8853d4b58d1e34c54262c4fe84a73469b3c35603855d08d8427929d8d0c806b28f87a938bb9bb26442a7cac5f5ac5f2eda7c8880394658887214d998595ceaae720dd56312eed614ec206f408fe3ddea9ee1dc7376cc798655d657370b4fe8751901b096661fc31dd587317a6316252646817407e0a4cfe9259f0d4b4bfd5b0fd61532ae1f206082b9c1f789f6ed83a3b9ec3c724cd6579172234ad955a9590a589eb6c5754ef04b4952ce8aa70748271c71845ed6e453ff5d3eb3bbe52f8673bb721592e4c5f98c59981942815cdc8961df3d787430f1197238b38f023372e7dfaf15975fa8a4c4a15a7b0ee64653ba7a5dac3b40c3d3ad722ce9bbac990f142053b67c290d3eed55fa1386f3d31cdf6f51581ef942a18854ff8d5551879a4a5b8f21fbc5a322d21564ecdb6bf70b90035387084e659a462288d56b1617345756e07399f4fe31ac9e5604dcb3b3f70474536146ee959a5b65f806c402d43d5f52d4bc3e80a84e60a0d84c0debe4a409f5fe4453151a0c2b105f45e3ec6219b0ce860643a73337ebd8275e8d9fcf57b4607c6a483994ab323bcd0e9970d98919de28a5cde390311aca81298ddc5955217480df7e7c5430837263094467ca2c0cbcc7e9e7666239f0cf5564f705d2ea8eda509b776587a6f340f704fe439aceac7bbae948061411eab112306399574798eae8a19c157fa7275909fa0b8af6a00fa2944651e45ff6b56fbbad5e27e62e10e09e368650f65d99723a4d43ec746300bde94e0a5b01a20dd8cd78f61fa9eec27ac0c6b0015595ea31f8630fe26154a9fe615c59525385e18be3202fffc367bed594639c9bcd18c625d434e4ac04a8742bc94ea770e82dbc669d24e9263dcc1085fbeaa99afda90d722fc10275d0524198446c7f72506c4fe7f989ad351f975bc572c5582fe8f4f64713f83f656d745bbace2f25ed6529a5c848f39836df3531f1d62819f9d7698206e188012719dbe5131f503c1b8d7b9472658ebb680fb6d2fc2f1ea9d5331e3572397d7c00342cf20ed32d3c9c4e1b205dd31a5dab86d73a2a5967d3eaca71f972dd13249576072edf686614e44a27b7e5c900d3aab703799eef847a5eeac3ac721bba543b8a42c7f6db20fd1e5234748948c2c7cf203b464a5055772e946cbc4b83bdf5ad227e516b4fe8b2ea1017f11b43ded503523c407b521fc68e5626e772464853fc499d0f6765f8bc2bdd455b8fe373a53a8be89e428b0e0fdd0692fa721b19aed5cd7853c58c0df881c88c06afb4299388b1fb886a9c1b781576de5544bbe47bdb343ee7677f84977eb7e19786f483aa3aceb4f539517b6a17341ed47230a410ddfd797b63881ea3f5d8ef8b255f71dd3d667ee77d4a3ca8795063c572e29a928f3ec321a839c581fa66c58eaaec2102dab3df2265617e10881356ea722c04b1e0d663979b3d6d2094cfe7a284ee160c7da2057dfc5c43e0438f19c072a55ff1c758a6d6392ea58d45615f8c7adffcabdf305e8e63bccd5a35df7a192c73a24e3c14d9f93ec2ea21ccdd3e2f8f33303d36b79cdf69caa4ac9d2c71dc58972f9c7fa747d34337c95e491c571d86cdad94958a9a710612c3d5ac3ed577724887af29da95615910dd50f6dcd0fa24b838517b7e47e2ea1535b314d6c18f72eeed5ef85a48390c97d612024da8a82ab078cb939deb33c12d02df1143b5bc65ccc9ae9a6bb5b933aba8403886ccf6ce2c990261fb43047b0af7ce20cc6e8e478376e1b39ffff0ac6c2258e9b874f3054c0c0d71b2a2c8e926406354dc7c862305fc63b65368c5da1eeb18e18003e71e567f3a49fbb8cb85697ea9dd30c55452ab5804474041e2d44d3d2e6f77714ce863712230fe626400ae4328f1fa17a754edbcd2b4e38139833094bafdbbd580288de1b71c9b091ecf4fc40d487e85d872015f8f308c4e383d9ce57980c31363ca70e5cc90713c6cfb9693a6ab7ed501728c6d3dd666fd0eca8801c8fedaa7d93ccd2f6600e1e77c7e389b897f54cc07723fa7eecc9e21ca61b67d064972bb19d7fcd703a2247adb92c17567e297b3857205b4b3f8d467e2fb3a1e802cfb077a8555e1570aa6f1b4ba472f994d84e322241475f178f3914a1dac1704411e0ce1a454539915492826c3c0f42449c0db783c62a85e6c0fe766f10d2541f4886b65656d8a32e927783896577ba41e03464d5a45d3896de184d34ea39583a1b67be3038b38c42eaa3bf77d40f3b2127765167203956a06291638a04379a272c476f574a9ad0a29af518e165666381dc5030228180f86082a60c38aea4a506384db343533f2f015f134725cd6fb878b23f8f805f7e66b6a563b528da6f13cbc52032cd30cb2be4f77eab5ce5903f64349fa237295cd43fdb75cf7c6c087af1bf1009931363b7f6e44637753db61daf6fe2d8a4e895b33113a47e6c72d33a9091de58d57aeff3e2ef9a9eae81ea9d8b2c17a571f4b105797c0a352961415a9aa457761c8fa9097f3747e9259e398cc4a1e1bf272c3af8f9c67e4943b66ddd26c25b40a80f0c484bd1724947741ada96a86cc1f720fb84479e823fe0a1b4ef100330f4547b5a53a9d84449a9c61ec25ec2aa4ca7221972b123ee2999121378f1c92a5b3dbaf6aafd549f22e3e7f9ebaabcfb77f72d5221dd2a2798cb60bf7772e41b5310d5126a25030226c04f69e65894777097271d43e2dd18ac1c48db90f4e844f21ad17be66b97e8a395f38a100ba2faf353fb55ad60c6be344b0aba8c369abdb4d9a4cb7cedf830623a2799bcfda2435256f7f8f96c34bff28914947f9ee9a799b78241282f2af3ad1d273fe1e5c97d1e4722b567ed142f36713c3121079af0ff868c22fa37e177d005dd1b6ac56dcb9f372a2cbf2956d17f722ea9040854ab97123bc9291d1eeadcd7a32a72c3c7988cd729bc185210b26658a7e7169458dfd3f4f1d55f3158df8745693685f912a9c1c2ff4a89dc9b53c4f428fd16fbe8bcc42b88f6140c2862dfcbc252c50db98a5e872e6f9160b189e86f46dcd6c247c1d5153b5e91ac904877dec207577df281ba01c54f7cf45e4b224c8c0d2cbcde3e1fb7b23e89a53bc1ad4f7f225eb0251eee12cc01de151ab21bb03bf450ff01b8b3c22403a760d1f192a231a1198b610155668ab7317b4c44791013cb827dc5549e3735cd3e2bec7d2fe9a5efa4445a2dd6f2a5ac8c25f427e6426249ae7374125e74873861550954a838687a52ca447724e72beb4f7357f455fa2b521ac272308562489c7d2c0e3ba2662d468af0ad6a9137219ca330511b0540e3c3d01d9e2064934f5f253046a2cc7b1ce7f86c727fb5c5e8829cd06cc937c43c371672434e0f353e0bc688fe3a5c298ef6905660119797271da6cfe90bffd8d27703c39a85718c49be0311e789a202badc2291974e33b028d539ecd6c4347cb87b968d33365729fc29d96a2fa892ec3841382d817065c584873dd56bbef3bb2faa632c4b53127a60ef213ae4e5ae4b65ac3df163054685e63eec64d3062e87f9a5b801331896aa6b054a9f3f70c8ea014024469ad59c9723607044965d2e3f733f8daf779f134a0f874966e249696a869987d3be21c43722c8786c56eea1fdf36ac53ec5b276dc3c7f85e9af747acbb408d7375a302b343f24ef60cf71a830e8387d3246fa3a742883a1d9b9f6e48dffe618d3cc8216929b1c52a32e109333c07fda16d1169ca8de8f1673fe8dd1612cec71a4d0510f56326d2deebb18ead26712f975febd23a456905f09b917bf7841ad72ac0f36af30ff1fb1e0cbabe018a3346b46513900021230b7783b6e37e1edcc55e207820e843813b7f0bd51e513597995f03b45884886fe60fa8ec924e8144dd6a60c476ff0c0a09781783ab5e522283077cc58981d5315f3d3f538d521296a55d6e22a8cc72d437e1a9f5fd1bf054313bee524c2b46e884fd9db77fdc004a68092344b42531dce6d2cb8e36d760c8942ebea4f902cda1079bec48fa65b3afb019a5f047755d3a30a808a4af173eeeae8c4b4c05848ddc0373c605c8777ea86c4db4e2c6617259bfa0e1e436291f0388af1c5df51b585dcb9ada63b779905ec6854cc37b7c7285fcffef459caaeae81b562f9ce8948279d41fcd79541aa7ae7dbf51810c8d720e3b1dd11920b269b0caf356f9a020e07e8cc5f46beff0d5be5b3b582a537772a4a4098514ae23eff9e13291cd73047db9e3406ebe04d77ad3f3b2d158253741ee48308de14b6d4936b6f0b24b0e7c36b470cc2faccea7d48053a35334634872412e06720f76d86324bdc0f7ef1246477d61ce1449fa821f39a86e3a006f5a72ed4320b0f1ece5d0444feacbd06de55d23ee9636d5774ab2bacf295752b7943884b531599720e3f2ef99919a44b13bb38c277771db75582fafe6691af2126872e24cb98e0e3bb2632a9c126e7d84ef0ffb530cd09c6eeb4192eaea9a777eee476ee6f2bccdc99e19dd4b180f28a98684e455a0c81b1113ce560eb83b02bb3030794c326acae0ebe15587adcafa4d6ed27478530a7ebf03d05947c5309e9e266c1943c303780955050902a98331066ca1676deaf436d8ae0ab6cdcf8b4882a9725c8b34b37dbc062cfc580007eed59793f011af08709395a5a9bf41a8bac66819961a6790d1076ac0c7a76ff95bb3f914b341db0ca0b52f824c12cde1ee3f16727be47bb9b90fae7e5463f3aef9a329a4529637facb7b037c6e31275c57de2072b19d37d5d353356b2377254ba3e238be56b0806db2fa1e01c3dbbcd2f336007216a61e0754e4dca0d41a6f69988679c2c159cc8d10231f35d3e137b5dcbd8a72a1b0989c4293a00736890e9a0b748be8868b40c1e69964ace50a72c12adca0729842fc5db7cbe14dd495b5fe9b9171752f47abdf55fd02fbc3c56e5a1f87057202ace04e7c3c49b3a77acb6ea64cdfd1b146b0e33967b6106ed1a25d11720772462a86ba6e5124ead81f3f9f3ba4c10af4fad40b62799deaa484bb7141c5216b8bbdc966d1c5aca25cdcfdd2d26e7734bea1d249cfb56ae9c882366dd133af7211df738961de4cd69dbd1a8f459d6abcebf41d23a4226eea4715074fdb555772b15fb24a8d1446b0832a43327a26045d4e95805aa38d745b0ea519c46656510f1b2279c016cc8faf08e84bed8dd0f6c1623e53f9fd284391e84de8e14bd1bf3e0f490547fa461ce340a6f4103b1f6a920d5d45b0cf77c1dcd6eeccb5f1152a61072550c1beb692e2bc405787f711f1a49a84f4122aaf86ab85d9579b3ce55d720c3c7d99fcca531d9be1732d4bbe401146cd295bd5d3e25cf125db1429806c72ade140c2fd63a88a887d59463b50723cafff3d75e0058d5780e0d290275a9e70188be3223794dcf4556d039ff2247802a4b5bf950b55b7122d3459351239322a69e83b43a2ce244b47d96214c897fb0c22e30000fba795df50c1c601a2d4667234ed49ee61684a2448f47ee708ee25a621f70b10346bdee41403c3c817b55b086ec4ab1da91c80eb6197705c7eb1c28ec07f82a42eda9093331bc413fef69572002dcb458eb394ed874d561ea9311394dca7d1450d069057b32f21edf80bef6251a9123a43fbc76fcab7142ec36b5006a5531a1658a822f54f03142b65acb73e8ee1b06ab472628f1dc635621c3f15951b78bad01192b210e76d0282beb3356e840cee20a4dc5c5fe7cafb24db1cd39ce5b4ee1ce03266172811f1371203315a0c414ef8c1587bf165ef26be0eb64f7b74500fe9a386e0ca561cdacadba94d5a20f223d3db01d47b9e591d1eb72d541991904225e4404d35507f9858fe76c4727ea525e67a741c8d0642b0fb7fda04092b8e1d8ad07d542278878172198c6d03dc46d2729f3a3b5e9adf25e82e32ac29ea2a11b96980b1624aa7162718ac677295097f8861cbf6f0555b6c9220462d023d4e6fc4f3b11703177f904abc5f7f72f9ea37934181640e6c9ff6ee8d325589998a66fb0d2038b5c863c8cf1d990a10d4c7962f8a50315e4cadd30ef69480c0f83e29a220321a52171d81780a5e1c49edb9132eff5854d71188db63357e24c7cceb1d6a032ba0c2772835cd1e201953f6883d16d7c4f73a9626fbdbfd9b4dcb858d8f284c9aa9394541ff5ecab9bd72f4e39d209904ae9e657a3db17b7c834849413c98ff97aa9168e52daef39dbd609d4e875bcd8f85ab528ac6232285e33b8966e34dfa8e4da363042db893f6a5725baa98258d9888b400a72b9ae73b4e10fce47c990bcdba65879802d5d43fc7628612b7c487cbd19569ee738974555ac3ef1dccca4edca5615b98524ec4913d726cd2b42cd0794eacf185dd876fd3cdd71bb4e77e1462e2ab310f696174ba6f72632d0461651c20fc04d2b4f35d53e16867820ed458c15f566cc8a03e9971fa5ed7b05ad3af8f69d0f3f896e555e8a3a376d9672fff68e2555d93c535106d8f723f4d752044b36d689fb8f99709e979b5ddab53cdb9646100d717e19c90c21372f9f53c4dcd7adf63998057274a27119e018c2288a748c3ee8af682e6c9886118abeb16d230a42e0a01384c7dfaccfde4d04e367dd7e49d3aa7fc82621d8cfb7209150fe58aa70da4068ec2545c53d98d0aeb9838d92f018585f6404766d0ea0e4bdd24ee25da469acf1218abd04b496f2d5e8eaf02a9201daaa3509a2b0ff372fc358a1af4079c4cf04c6172ac2d9f9ce8d264516cb8e5efa8a8d18481ebf301aebc7de81aa52dd3af11e68387055f34e0058a4fa4c2eb35f7e4416c03d42a0ac9df2df685842fb9e78b6be939f2be8469d28e128bc7a29ac9913064163b5f72003229f3b6643bc5ae036c4432739a6eac726dd2e3060a7722b53ee7c4345f5593228c1ce1cce2282083cb8dd94647b8338eafcc64e0e2bb6591ffedf16beb2e9c4ea8de8ab9e9491f879d0631c93328fed216f8cf24bf2961d5962acba4e972ee31320e4cd2dccf120465c365be2f249177f0b5c7b89c235461453ffa7d577276f9b050f4fec9252cd1fe0f738ca5ce76208e4499b7aa216f56b76ae587667245c18e9a71cde1bb4152cbd22a9fb5aea480feeb185f8b4b8f2f7a78cae6837237772c51a90ca44fa60ebda79c96b15231612c03c4d4ebfde4ac95bde1b1d772ba6c05d00f8a08021abfb20514c9d76a8c804f5fd677f72282c734461a4179061e0a3b7f0949ecd88413639719ae9b630d135646b7576da101d6a965e5f043589427dd2e507fd96685d0fb36cd5d2c5bab438d34f618f76aa30e8407edcfe12d4f3ee4dd9495ca6a832d1a6e01eb7f2d4683f42ea4aee82d0d2d74cc4dfbd426dce258e6b0a82424b2a36265bb90824e23a6b07d32e672f12a33096a8d3e4e7243197f5bd2a36366ba3ab40f1587610f4416065b3532539e0edf35f73d51ce4c69909ecf159790076f19189ff4223c4b304bc1223a94dda4ada3635441f0ee727acf09b12485d3888bd77da82979fbd96adbb2f77908e213cbfd488cea89ee728e7ee59300111a62f8580294283b522189ad090c067bbb0ffecf81cae4351809b65af8a2f402313fe649a06b0aaf0d8f867802b3cf80266809c8ead5a4fb0d140b66bd1ee7386d682984e94433c81fa244a3829a35ba47893fd36267cbc9dc72f2e4521b0a26ae07d20334a9da8fb98239782d08362e006616fbc7c8638a9572d81b78d9b4560f9cf92cdb1a547be5a3d8971d2b87980d595f0e75eb092b472eb65b8ff0b2cdb594dfe47c82105c643aac0cc84e4b4fc6a567b6eabbbbc4a24aeb673437a29d44e0adf9f8b838abb81620138310bff24241ecb04f988c384e33408a937b9ec9e342a3b8ce9f2489f76383194165a77edf97fad0844b371828726b3c56cee9ae870d63c7585ee2e1787e88ab403af24e29052a21f34fe952a53ee8e17a0d55904637f1a848dd0f709caaafbf9345138cd8daf059d950d1f37472575fe0b4b30b01c8bc87162ce0bbaf72781cde8e085bd2835ff09dd667e0ef723faee1e0bf636ae20d77ce42a193ac9d7f9b331624aa5d42fc767bb338d6c672b705e2300fee92b3cdc1f31ad9f5158a8d8083e53cee1693618234ecaf3c4a61647deea91d18740173090c0e35745436e90f2c61d531685fadf86251cc252a723707bf037dabba29dc5d604b1e704c878ca6970ed80f1141fe35def5b02cbf483954f5e638bc988ac1cb2a6efdb80cc57535695e4488a7bd3f73f815f485b82d58109910226b388528e9a9804e1fd3325a629563760d52c85675c8f1c9426e11027ed677ff65ee643f90ca7538560813aff34b26d9036c3c299258214c0fd92dc470b9116f021f2c68aafe68d9c27f47af364ba84dddecad77562cbf2b502b646be8ff3555a63c427021fbf5a65f22c2cf5d5ba2ff37067738c84a96761c8b44ae29cb4beb8ce0b7c1e575e336db69eea71897d5666778a6fc8bee4490e00868425713252e3e25d19d8fdbaf29e8627c9ad51aa0113f190ab06b1279637023270f5549da774a596857ba97995e9132ce813c118eecb8c6ff4e3e2afe34eb5c727b99218c830a7ad8b09a4d28ba61ec61aab6826f66bf07dfd611f856cc165d720ca0d52dcb56bcd7b4bc048a01c52553d17aeff55f050a5533e7b09bb88a3e7213d60bbf2c29a09b5a556c16e407eb07f33101b29e44ec68b3abe6e1cbcf18271744568284de404074341573b5f7a4c3e40e619ea37d6986c24fdfc47c73422601d33ed4266651318da55149e1fe860ff12df900d0e09d7f9882636353713928ab2c3a634b5fcefee2c3948862f47e9df87c98ae1d0c80dd9e390954f79d9a197605697f96ed78c53c7aff0107b1c231bb0e3b736f08a95c25561e09743041727a636d586eb45c8db89dd71f83879448fcd946aa9eb14146f65b06d7ed2afd72baf24d77650e22ccfadd695af6b7bca93ced601c3728d9e12e8d75115fa45b7260765e469e8993885ff0201e001c1dfae463068c81724b87ec9bc741fbbef467f45b1ba43521ec122d0f7c2effb92af4677ee07b1ace8a8a174eaad7b9f8ec728a55f2671360845834ddca7ed8a020493f17e4f17255e0fd70c9d645ef0cc04006e308a760f046bba10745b3b2491845bbdb18b6147b0879d5e914820291601e7594c14e40ba33a20dc5dc29a13622b113591316f659d60d1b80c04c567dd37272e86043457d5a5bb438ed52ebe975ca1479da77ebcf35fa3feb1994be8c107204b4f00b62eec32ecae0d59835e968b6b4ec009f558d74dd937e0308b13b1672330749f3889354db8da18d6350ba921aefb4e5c75293f00fafdfd455f0d20b72be610a26eecd1566642bdec37b2d9f8e7c7fdd4740f7350295c3c207f569c008470a1813a321e8509c3a097600a7c28fc5adbc2b1cd2b3df4a8fed5733c18034b882619185242544e162cc7edea0ba448e95681e83878a78a8dff9a755e2ff726bc3439304f11f9dc424c1b8f00f7e1231d3e0ee9ac3ed2a5e7866712c4b4d4adfc90f7c41142603c6c006c4e76c382be8c0b06ded0f0293f0b9b346b244011778884dc4fbc3a42b08bd7c8dab7e310955696a74a01ef71360c71f2593a87772960dc79af2f465e82a393798a44eb9c9f5dfc2ea112f348ca8958d4a7258fe728d78c19da6957fc75ddaa1accd43d995dee69c3cba9c8d03c5916dd85c0d577251714ffe285a64c7681deab74fb71dc473992592e7d9680bc6522a600168c772e69b0244dfee9e8875d02f35616e69bbe00016d60c8d69fb272adaca17a8ad72191e3dbdb71b3f75c7c506f0d0a8be0e970505260ac258ef18d0f88137274d2656e3693c25d02db2d6dae6324db52373261bbf18fa5fbe917d9d9ef74e46910ba475de44654ddd27f300c9cba5e5688725b243e999cb9cfebe81d449dd1e8a1fcbd2a7ad2c605b1187d005e4cede57e0eb72d1e9065ce648340c19dfc53a184aef53cedda31a1f651e4875ef63957da549bfd369732f9f3a492520152c7a876e0f8dafa7fc450d92377196e87791658ddbaef3ba774410c25eab6b224778e072ffe3797b7ab41df75e87d1867d405f4e7bea031aea096cf62202c50bbb2a945df98022c44452f629d508f43624642a5439f153780718812ec9b5b0d10287ad72c74a63e9ca5a944ac6a532fea427f22e1c872384a52b80735329d92fcef23d72ec1d9c67d7fd45a79041987d7f5544937259c350b6d915b6a87031381089637224402125a5e9ed2af35528b056d46338cf65868ef3611ccd4f3efd896c8926162e1d3aba9bf1539fd834817e6b4d996738eea98ced293ccbdb4211f009911d1d06b28464a3f75c56908316c20f7af092f34b9fe452bfbb07205e4a058a7e254b5c946d58f5595c92f0672c424e4ba30c3b50fc21550a7de71536bdbb93143b72a192000ba8e99d61fd0a42d53066d9850617a51fb6bef3633273cd9203c4ae71a458a6beb5abf25628bd026433890ad1b28eaeb914b943edb66023faf6e5316823e3df5daefbe7bed434de50e0915b9f4e441c364fe8c4d549c3afbfc6548972ded29428776f0bbbeb112db3a01a6cce2ce1b8b0b688d9c29d39a2ab0c3c8a2638ff4065d8ffd9852600221d43090774470095a85dd4a1377769efb113eece02a08791d27e537446efd30b52e9d561d2edbf15297bbcf0e4ba2380cc0aa1da722be0e9f752b5587d9a2eeb846bdb2de6474debbbce2f51fa9a7e5bdb47375f7272e390eeb00145a3719145a04256f3e308edce3e6478be0e7a426d3983b8d1724e221e355a8000a621fc2d7cba83f59068d0dd887862c00b5d18eb8ac8a35772f11afd3498e912c813419a55a8589f412d7fba095335d4e7456b4a8885b88b72f6da9ddc721e26981736454e0724e8f089ea6ea13cd6aa90da4439d2f2b7936c8b90f0ab1db33fbdf4f835d02d3f5627dfaebc78b51e848cd40bde89a11710721c6a4413e4ed830993630aff7b567a96dc2c0260c32e1b5a47eaa23b1533b37224a4b1982da9463ca4d7790ecd852b3854d8595ce2c6660994212567089d5972c8e718a3cdc67405ab629d22aebc44e40fbaea0835e809f924604e7ca9cc2b7254818e9ea5bdf09e5a92960e45779ed360ed5fa031fdeec56f88f75cb56561664bda0ae5ca3e5a74c80ad8239ccc5e71d27f551eb10bb9ddd838052f8d32cf57209bac4b6836dc5aac4cbba87c88f78f6a24260f77a21a348e3c452d85ffe9725804c1bc835e4768a5460cefc9bde565f7faa819a8ad48c962ea79a885b55a724a216a2ed04da3c805cb607d933bf36349c9ebb25d6a949d41f81c31a7af28722aaa5dfaa3aa5cfdfaa0c378b3b8dbd2d7bcbe603b2f122e17897a5e4d5a24726ab6cb2c6e77509a26e2f88182c3cb1deff29bf34278684904d452fb05439372e0fb4b52bbde510729119bb5319c754acdf24bd5b28811999d9cb1884fc1f6725b0c578893354d2acb8261a22f9d5bfb23dd3dd2f2a31096d10fca71b307a03d665a57f865d21b87edf6f7dadd2b98918514e31d21ccb0f649ddb4765a581a0dc88f68ea104a01481970c6c2d8290bcbcde1d59c8642575db0aa882e1fee737206e2e28cfe605aa898463929666cfbc1ee2e04a7c5b10fdd37ed83d3c801e27282a066517c07bf2eb04a820e905d9bf861d6b2e181175ed58f6615d2735a2072fe3bba85ec8819bf13ba2f8c640383194db7a6c51f959c978418b69c1bec5b3e55df7979e9eb0431a4eae2ef80d794d9ce879ed189bcec91336afca24946bd722e6bd5928ae7d0fc4bec31ab697003628c6923cbbd7bec571861a25da51379611640101493c518692f00d5495d91e2c07437463b577c052b747a77349732d872695d93088c8d8ea5ac981b0b5df0c1309f0bbfbb3a9a095465550b7e764c2464c4d894d3ae8fe075d3c7dc32fb444caf360ca837025fcefe4c0b0c0bc68ce5350a3737220dd8ed0bd30b6bad3056dff9da84456d42c7d6132e71addec5312b72362423b318c6f3197fbab6a4760ff48368bff2688f36687b1d79a0b355e36372c454ec27def1e5f545d5cac50768c8a0e56eeb90ed319332b3971ffd2b63e072273d954ce03d8f0a036e21a6c3b4417e1fb5fcd4af782f369538f8e7e2946f72bd05c76bdff04dcb0fc614091a0fb237829fa93ed71cfc646f25507dbf207f6f7b6fa538aeb773a7acbe1a77dccf2ebe0c9d2f118012a1631fa154d0e1c4c672955bbd97e1e406319de551d718c8a6a32e7f14f95dc1b17c67eb9a2e01aef45dc0707e966b12969b55294a2cbfb5666fba91c3926817927a61c4ee769c439672cecb3cf4bf5eecc5badf31c29bc40344d4ac261588213e0767a1a6053c8838724c8a8ecef767d9330a57530acb8c9fd1e6f5b3cbaa90089afb45520c2224262988c34275a56783e1cbc42079b07abf414e59219368643f1c2bd6ad97463b1839b1febc578459ba55a01f9140682fa55e0aaf5f28a47e6832ccab11869d5f463e42508fef9230d0cdc2f2e4c8d00a05b7b4157fe076eaee1faa4049fdd92da572e2442632d7c6619891a81ad1689ee354e4b8e8d17f22d6b274b950d466d73f2415e31ded3512e315d03eaf49b7a05b135fcea92ee93cffb24f78034ef715de3869089eb7b2e24663f1b6dca30a8bca955d90b5c159d4327896d02723618d05729e98d4d7b704064a0a1bdedaf9ef107353cbd5b2632116f834c4dd0d466076720fe42c0b05d605ca7a507a7bcfd282c59b48ae45f95d3b447b2e863a23735872bf175469b1b3e485302c8cb62f5f2d93c2841eb8c402e4f3961d2c06dc111b7214ca695ae1ee8ff24a2f26dd58b6ee775567c454dbea7943dd27ebb4571a376381ad554fe275a7c3ce8848eb9b85c333650d124af4428309f0fb158bd9f77772563892eeb6516f25d9d1e655dc735597a26f2df5fc696a52b804e09b5d904b724ac5e5d6ef37c6eebc53a85473219d41418a4811df8a433601715a9bf5f65d721b486f673152e5d9ef2017496532bc16a3e5fefead1628bf5bb1279b36972a54d1f21b8b12554238303115d44fb36d27311e43f30e6bc39d8c0cb3fa10ee5b729620843c448899a08989a5a80882a85a7e69f934efb2b97e26922a4e51e72f729c68e2aea686748829e4eb2a277cc946a161b48c2a4da0b1d4c50065222afc27ac0047cd1192fe7f60620d100a67f125387207d8c4351623161fcc8f4afc45725a6f2038fef1c5ce89fe4ca59a193e20bdc95aa8e873b0f294758eeab302156ba294c8a8ffef4c5034dfcd814ff706a95be8e1cd1a2b7d0f7522bb7ba639f972002683384c3b16d2b919f8cf66d487c34e9c8525f9105eaf18c07f0513d5505dda521f6ab4f6bb8da03a4857950e43033195c8c82c04f9a7ca3846745ca6de729bf124f952653cc6416aef1477a221388943bd8270f9e0359f32af907dea3c721106d593069ed074f5fa01256c85da90831c487aac1f945afb624e2690961568803e24185da328dcec75434249e4529010014bdeb85e0aaef3470d5ec409f672601a8934f9524030e15c3cc5983b62ef215be3d54029e1a2e9f520b542879756a3fd7a07ec1c16fd5607d9d123eb15252a59e435ff3275774679ffcc2e7172729d13a581f37a5993855aee87781a235a0807b193df297690d7820c9c7f445a720bb7e20fd1a13ece1a778a74ff04bac7a847633fa76eaf0cedf3e994fd33c52250e69c5c7d503b93bbb3ebe83f2635d028d1447ca237a64bbedc121f0f79917211c5809d16d3efac9f5cac94086ff7164f1579ccf9d8780b63598d738956ab726c58b3b3e101da29db85d3be91a09da6ca6b6a2395d2dbd07e093edc84813572b66cc8a0c3f2e132e2a4ee64a7f19f3d804d6c56be3ff7b6280b84e5a20b335499757c08e2912bfc82e8f605d5f31d309faa7d5b71dc323ca030ba8ed82af246aaf89aab4ba47b74837171b71da2097c2dca43b8193b3a61a1d7d063b0f19c7273e205afd84cfd90ba092af7963ef78ecd3c06baaf18233dcdd519392b88135fa4a6290888060936050628a25fd658eeceb4f5d9c2c522842a28faa9cbf3ac72f0e4541201f4221faf16bfd7ccd222fb017cde3216b63fb521e79a378d91e155a22a7750eafacad6f14f546501628d401d8f6d5823cac9e7a7f0affbab231e726eb94faec17d25030d304a1da9e43d0056c6bb34f451c1df5546c93536a1d472fadbb9630342732fae1b27cb2fa41472a4886cf7e685b5e7a47845f3a6d7b43babdb0f7baea989f169ef1c32b4b32b658ccac227358a7e6853aa6dc848f81372777059edec4a7954e9a13e3af7419e5c0b8abbaad3233fca255d88b49a0efd72a192554b1eaa3c06c258762ce11610f23a59d5ed48e19988dfca757e4879265980cb1dc5b00490aa0a5b23a76781cbce4b30734b5e1ffdf90569266ae5c12872b9c2fc50938cce71e89d7fa028a15034181d47fe6f6ee2e313c3d1881846e31b277e77562de13fe7733a28cf70ca2d08221141d7b7732a1e661358de73359f720bb307276b168c33501375934ccc5140d5e83ceaf570b556ef844ae6cc417b724e6ffee0035f3487800107346c069d119511ab1a03c1f8db2ee736fabed4c9727f88927d45f56f7be5088240fe8a0ecb21fa03f313f8de0db5e2349f146df2729b8963a780783113ea13f632cebae9f6b5f3efe83bb5b198075fa1d7bab9205c563673272dc5c156f5aa45a16dd7692f20070505b929599566133f953353ef72fda78463789e522be43fb087da7cfc9d714b07c3f89ec963ad83bedcb276e852bb355dc797a5601a95bd257fcb2ef8ee46a1343423d3a476cc7446074de6f0723f48008be04ceb7dba12787cdb84edb706a204b170b7856250c4b81b3f7aef728103593bf4b37b5a73d8991029699fa7c6f0c00880880a61cc8ab4f614f5d369a1c76fb38013c3dfe10e51d348055d3d602220a7e8ad350431ec2a5e6fbbb6728636d4872f635646308851233085d2d6ec294e3a1971855d1a13ba3cc14fab72d3e90e677699528242b2c44807456d7a5a0f273eb4a506cb4fef3c2a64b3567225cd041ace1289d6b1dee2e4bc1edba69aec2f87e04e2aa5f7131f991c2a3472f9af6bf1f17fe41260d8ff33c83c100d15f4921640fb0b067ce81db62465635d906aaee619d70e1dcbabb918358125269508b605d79080c2f42b50e56c211d7274d2a866e9b5e1e5b8ac8218cb623139f6d5007fc581f5592062143982f2647230c4a00503c50e5dccac79396dadfac019628def6aa52e64bb4b39c86e04a94107bfe6401ca111143dd8fb548e1dfdd177482f1dd7ac5253e45c2a917966e272deb84c36a6c6cb194229cf0e2e3dc3edd6d268160fcb4c927a3702ae2b8274709b8b95ef7af90f7ebe1608b39eaaaf1bce0ec57205cba5202c33c89ddae44b46e2197b3fcf35383e0f70628d72fef441a41356818e1068c9feab8ce1825d3a724d6f7981cfb707a3b4fcf9fa11f134efc14b26bd7c141859cda192061bdcc9726bdad6a030b46ac844017d6344f0174c56ca8590d77c04e070770c0abb82d672e690d24e10cc6281df48fc297a5f569e9bf75e583f90ab9257824e140fcc4b7258afb1f107681b7a1a824654894d6e07da18b00ee93ef545a3b8bbf777fed254e87887ab4c514cb6a67a3b0b31609b68ead81912d59e4b4847b0990a523fd1729544b226f4c3efa7ada70d0edd4b4f1432b0a2ce97666c9d2b3ba32d9355f96dd0e8a596150923cc670d729df35e3bff9dd01823997fe745f2ead07c85ab137228d723a4c830d34e9cd4de2dc3deea81807c64a542e456a3f4b12f51802604723a3f30d70f2e5f547dc2263f2df925a5a6699e1aff143d2a7b29d1bd59f712466f45798a457a4e07d58892ab2b53916e8f951fe746f21dff8015fbf1aec29b7262944e2fa59227b0f6669b2e902daf4e237e1e04ff211521becc9af5a6077d72c912add0fb9a54c8d62eaa8ab699781629d5253a1b92efe8240ba664c0e4cc72da8603b1d2eb02b6156dd209867cfd985edb0a35a3bc94891a8233ab5eaa2c3089912581748f79bc9ee8e07ac509114429ecf6b6911771861299cb3c1d91e472cc232cc7a416b0f33e7b4e988a3501eaab41d3cca886b13686e11190c9b5787223bb5e7f36987570c8ab7f2e8f712151408f8fcfdaa941bcf245ca19a6aa8272e1bdfebb3db3f846c7cbeea74135f3d73d9b598386e81f801441f563c2be7e72d3d44c05a18f63fc7f4e5857880d6c14483d02a5c5dbcfa1f35a9eba80e7ef4b3925bdec91bc5527405833bfb6b336b448cd637c2fb89c68e2594058aac3e57296800afe1ed29daec75dadacedd7e67660d0aef9ab6c561623039d0e33a69272e482f68a2263727fafcdc034fb8fdfa8866ba613aaa9f1455d0446d1382aa07299bd4947737f0d1af82d85f7aa32bdb997b67975df852061ba309a34b67ed972241110843eb7b172718449be3ed20b30f50c30c4c059638022e602a21f28633e0eac19e1b693d47c0db3f6bac09aefcb2e24dbb1acaec21652c7f1f21ca5c1722cbdf76d1329a774e28da9e266f60dbfc52b0d2d28bd85947f334a275a433672ca6faef105171e110de0dbde0fa9c3f4fb367af223d77fb16f1f8274e860367224e4011737a176efd6db9554fbdd8dadcd6c877cab05357b9dd6c8ba23d65c6f83baa24c129e9bc56964ce0bd59aac848b65f708d5ca5bc47a645a39aa59892e06fa2fa9f147d7d24cbc6b0970c71222a36481c94549b010ed0133a7c1e91e72428b0c761c3ad5b6137543bb8f13fe31a6f3dbc3f7d9c90597ac406deaa10572bc39640e72466cfc0cca849f29ba0e971587898b5c4e7d91e5855da1ccedc572cff1d4723565d1b9cce424424cdb7b021ce8c6dcb931c6d3cbc3e4871207971adb6c93ba9015ae6601e1e3040703a5f380f57091d55b8378884ceb863515292ad15aa619673056e61970f97241393e39b1b8cde36af47642dbe0513b76bbb019c7299daf0d6fe1b14bc9e1fa6fbd693c867ec0f89eb1f7648f5e9a9a032ce31e51b7d832e4a79aabeca092865c26fb18a85bafac724519a330203f86c8586e3f575e269827cee14319c185d206f7cb982bcfc0c30ca3791992fd5d6f708e8464d3da134cee83b9d144f42efa77ed982bafd67b789f76621e4b7544cfe4388872fa0337ed44c9b41859227e3c8f69cdcc7935ac2998ff8e6708de6270d1f73a720081cdd60edfe6ff20e800272b9659d6980c75a739c454273bd8e6be836b3b72e51a64d2b84a3bd39d4bccb08abe37f7f8856630de6a0d07027db8b35ddecf21ce899d84f9b695e436c4c3753e3552a25e7f977d9ff8d04bd397fc510adae37241e3aa37f816a4607e41b4e38c0a83d7b2da56245222012b4c39f6935f394d33da40e46fa54887de76029fd994a4f1d2f65d5a4a2dccfd293b8f1e521559b17287aff20c39af4f2d079a50263ca0c3929045ec7d907d99290921a19d02f0282fc25a1dcbe2d33608c1196a536ad0913908e6b38ae3af4b5907b0422be5e55d72a0cb0af440ca6429f72e89bc0ea2750b85c9b9701ec4e43136d73d18db88265c10e9b22a4498ee947636c0a98c36cd1f78b9cf76a3bb62e2fdcf1d636ee0b664fc55ef808b0d29be1e696cd531f139f7a30c2fdfe9a5edead7063df1747cbb052b8120f55bd89e692dfafa039232d2be80a2d472278436c7025c1d9998aa1a72420e75e32a719a3409a3474e63012bccff4e116fad533d91580fc1f62e799c2c46282f53bbef46080c36762f6ead8ea9df9403afff560adb7daf897f382fca72107ab3a2dcb83929483c6bc88158fc6edd9fb1987d0967149e0f28dd3985c072acce972702f30a631b2968a322b8d3bebed14bd60ec1c505e23899790788aa7214b500c659424f87574978e72bba08f8e2bf7a1777af86c251e6852c3001d37251817325fd87c8281064faa517029d363f8b1c3caeeedbc6c56b63c9318b143723ec5c9503af2f022f1a8fd729f3e9f54339341576b67a1a81f10b67c63caa2d1b2ae2f6340421a71b618c60e6eee73ee044fce64c335714e2c9b24391ed81688adc4cdb2ee2b3b5738d62168458fcc93a0936eba5bd0d1ecc7dcc94d93e09156b3a39ab8ede977fcfa229e9ec7f66f80286520914601cd19f62e37ab53edf28edb4e5eb8dcb04e51f7f8bed34ea86b0b4f691db385d892ed8a95ca39c1de77225ae437b26b7c14653f53ec17dd006d669c9485bd053fafffe620552ab207072b9873fbb82e36a2ed00bb3e58edb7d0c78144dda96575c1ca99b891af8cf6a1e239fd5459cb5f19bfaa3feed60cd2ae3bdbbc55b1ed01f62591ad31c28f99d72acf1c313c8a119189d07513e8e88e2dd05430c1978eea5bbcd65722a8aa2027254d61a89db0ff37566f7a17ef08914ea6bb664467b166a56456c54204aef4b72b379477375404e92eb6b7fa112f9d610fa9ae55d83edcf89d805fe05295d0200d8b6faf225ffab5cf5447c9a24baf3327f6347b4f778bc28f8b2a7f76341915fb73e68ac5cfccec0ce10fde844e0483f37a3cfe815506c33fe44cfaec1b40d72398e9b501d51b0ae7cdc0eca5074d87795a030a7537bb20e64abfb1836751972ef5642908c3fce5f7209359a37c093edec1bbc1a8c942b54c8f796c70bf9d97290ac54239fb39e24f9ce2f0d12d9f6fa87fdcd5f1bf1652bc11c0cdbab30695538d71fd784f90e60f9a90ef7cd02a7a76203822771ca4a087d6bc81897e70272d96d3dd8006ecf36ce3fe255c39b60f76d13316fa7dbb33a3e99339594358c72f3e145a14d7f05a56e14230d77618335b3246f89f58c3e90d39dbedcfe492672ee12148a09eac9ac3aaf670e2c67645712724550ade77db9a2094ba8d0aeb072a28a58a85409e2f6b9c78357e32d9b33347915ce3094cc50709af92ee7288872fe92fbccb571f46263cfaa6ed7e37e34f78464669b16f7ca73f9963132f4382a8ac45d02c17f734b4dedaf6a535fd4b49801a5a4a7e580d06ad3cac7d62b0540a4db72f22c73b4b58a4a6a102a4fc9784d99b1231b51d9c1be880b994142fe7251228cc20102b8a54cc9e1ae33e8d21d6555cd5b5ab960c7346eb33ae768c0729427666a3644c5028112b0f2d0fcfe4185fcf873dfde3aa3a9b64cb36d27df72b027ab744eb148fa24cfbd6bc43b8b08feaf289214603f85e06a0f3aeae92372519c78274eb393c694e222942c482182c19e257fb0ba2940b87041d64d0eec4e04dc33246eb6ae3a62afa8fbb22f2ea4e734616cb5bbcfd3b817a172cb401c72a8c3d93e1a15efd8a6b6903626b4b3eae2ddafc6425cc1d14bd41e30eecd7672086a7f8bf95dc9d4c970eb6b1f20ff64027435cc19f3a0764e958c4c44e6cd4fa67026fb937bf0b2ca239772ec5235ecc6891e093a116736588073ab8b12c3727067f26fa63d9c03dc862c0aeef76bdf2aa196d05da75b67b4fbab7d4855f972bf9c833b1d08accba4eb3c0863804c1b38c423af551bf5f2977204215ea660567a45fb05a7f86298ea052de76b64e21fe04faa0015a905c7155154731b2fb472008671e14eae47c21b16e5b40f91f1704bff8088f62b5bca22b030bb1fab61727b8a9a78566d818812717ff123be9c4dd693ffa1a6f056e26ab271af9a8ebe72dacb8e095cdfe2a5b1fc14eb01935c72ab7a7d0eef22667e4344b11b46aa3d721f4e6f59ac99b03799b5c1a9e164d24d226f03428d99c43c4e4d277946a4c515d160a022ed66bcd79284d5bb06fb65f2e2b2df11af7ebb77e82e726fc640534250fb37bca1b0de6401c8919ed45364dfd0a712fafdae65866ff737d6c06ae969421c0086a41a459c45fd67406e046fe63effce3d6b6059088d18e7a626ec3972dcdb55bd916cbfccf487328e6abb724cd369ae409addb98b28a1786bc77e971708c7986cc5fafc7090972d070bdfb4be3f160febe267f7c847681c9cfa070e7268a9e8914a888158f3599e430daee704dfbe6ae00a3b1450b92da8b418e09515fae7502d364bdf343890628686d0bcdd17ce577ddba3c91984f1e7bd98d4ef72966471280d9f77d6658627030782684e27f86fb16b0cce4611a4567e43095b41673e0d05bdbbf33bb35a1e742defe1932feeda1042fa4bd6086d2bb447673e3d2134fa328ee50608d5439f657ff045c93d30474a61f3d422a684a71d4a1ef0727b24213a5f181d75dce2b103208f7cb6a7dbf38b7daecec534d195b484f5e61847cabdb9c6a2e3127d8d1e01d00b42e10f42242d8fedb3e80aad3d652948694267468b0d9e8561862cc335e778885d651716de2d9436c83e66d319d08bfc500192169a47f82a01457260fb18758eacaccdb5ba75c35441cbd5990bddc3ca92563c7c461c2efc379a79455420b482a9b6aa355f250114ef23ace8b2a3afbfa57210157dd86f32ed7210f2753d7ec0c7100991da27343f1b86c32426330fdb9c4131ef3c1915cec9329f0cc5cb9132d02dc2b241cb5c46d974cc4452f5a2a6c212e1df9703ecc3438726e67b692b863ccf6b9fabebb10dbac41305dddf00434572f4af6d5fc0706f73849f16aabffc8c3d2a94036e9ed88c8da0f367bda2131f72652ddb3e71fc9ad7eaafeda0f9c73736facc190a1fc9b40ea9e33e30389dc3723212708d7463d0c441fe7c111d370264bf73b7ae7049791141ea22e38948727239d7d6cd0456bfcc21324ae3380f1756418c740cf45b0ad3f5a38f3cba144d722e35bc9a29d8b00c5dc9d45e70f88d3e3a37209c2b67fd8b5b93d0f7ca143b49d33b1e23645947220105d33e8dd089e9e5e16a657b73ef842b6970b3da023c2cb505ee8155aa0caefe03ad8f36106e1bf657c415198b74939a8e4892cada2a7226abde496befd2754d66e4e4213c4b2d9e54bd85064b828ba7df26c585d7391ff18e3af51601dadb3d0072036d26ca11276f3eeb0eff04cb8ba5dbc418321972d6520a80dfa7c856699010f65f970a9258ffb0b00a4973ff693fde2300a72170f3c7693a90b8294b445b92c91ee87a5e9b5718996c1dd8adbc30337aaa2a8241e8c159b4e5b8f4beb2338b3bda1576905f8fe7b09e81ae8e7c0b2f90bfa1cd72324aec32dbfbb01292acfa760f47cbf7d80089841fd7268b46164ef1cb7729725df409959732d911f4d3a7c4efd7d285067c57d30c6cbc98f4ddd26d70d1fd72a6feadb80159f28eeabaed725029029f4388a1a3e0f75a5be253d524c45724723e25d3fb65286c9f6d43f6adb6ffe2666ef1687d9b9c0f1df36bcb25f2859072af1c68ac2c867f3f3ec2d36b26fe5290d6890ae8b2340ec73c019445adca5c72ae1d918c726603c04a22f9199a5919d64fa867579592bfd4b77035122a9ce1724d164eb8575a8feca668e8816a021e91789767fc84ac33d340d25ff0fb81ae13d5487ae158d4eb2852f006424f1e85329efe8823cedd0c55b4b427ba603fd7405b46458c0c2a28e49cd3205a84816a73c1ae106fe9c94ff0a669020e4a8405263cd838ea3da8d1f508151977bec7feb939e2fa84aedd40fe45e622cdc204935490d5b2900232957a943763621d10e5bf850702018a27a3714f1efff917063472927e885f0011bd90859cbcb153af4e3a842965eca67f35455d5c37c9cc49f072235e273020156ccfce1e94646d1b420fc360c621a37796707a0822bcb2c85d2c6b1de240464214a33c41253b25a6c604c2e33e48dc9c0cf3002a4c853d83e47284dd4ca76a28d1b9ac06faaf8351495867b64f29e56413b418f422c0f3d370722b3142b78be1cb73ff3f2680240aab480de992ab480699cd547935d158872e30db83e536cfcd4f084b79080eeb50e2d15470a77e06c1e2d78d27ade665aca9722ce7785c20b77e797413fbe2137178bcf13f8c9f59d8a903461ddb16f7793472a74e0993c1ea1eb2c4b4df2069cc2f1107750f18c5c4a5a1d65cd315acd56872049a05fbb592b04bcf052864f4a896a0137262b9e5f41612298d25f1221ccb7290524478ebd5ad8b71071dc80666b13c7965f0119a3c8436bbc11ff78b45da406a7195a794d87404b3ae55efd95265fcdf3857c57a801091ed38b4cebd04f23fa501494f18f549a367d465abec69d9ce4ba45a8d39bad591f5f065fc4a626a727ffbca0feaff8ae72a88b30f212fa688e199ceecfdbf6dd7cde0077d0f955e72bacf2a7db9fb95b7ba7323e12eee634c87dd093b2add95eefb0dee4e9762847202c0195cee0f5318e8e83b7424b720abc7da89db79c6c47a847ed86768184c72703b462b41dcc5193856d426ba0231a407e98a6174352a9a3ae044d2f65e082a5d01775fd0b834b4ffab54adfea2deb5b0120ce16821902b277a3372d50b3f7226d122d31a9c353aedbd347456323e9bb332802b9f3651324db85533d8bbf87282709508a11d10c5011a7c2d3f15f67ab6472ff7eb252843761d174aa21e42729e5560daddfd4f7aa1be8e93ab2c0078a8783c35c75b7c8ef75f81e768e11172b6a48bc0b0e6ea9e6ce5b74a7316d14d04792b7328b8a10987ac8b05b5127e7242980a7489269dbdf866521738b4129e03a554621e997dac108e7d7165c8e834d5f0109485bc8d1495ade3f1239d3f24e757201c9acd693f37f6767305299b723a5157eae97c7571e6a43b94bb201d07cc5bda5bb2acaa4f208a0a93f9cd4d6d8199b100b02fdded8b36540550fb8dae3ee1d743dcac43494a6d0abf0ff98572c7f7445f4e1beb048730a5372c4ee917fc7106e504b02aee44e0a55a5550c072d66607a5faeffb0450129f2136cf1d256a1a5387127756954ec7f305a4ee45722477b7bb90e9e8c8689034b15f742e347ddf2c5db1b3520983c3b106195010463d53245db79e849eaee70c1289aa7105b5c9c223cf51a055197fa88df6aaf072ea03f575394e64a2dea01086d5604f66f1428f6eb2c610c92fccfce7af585e72d2f2cf3e32ff94987b5e916e01cb04f7c1067d992b61fecae11f6e733a293072d1bdf47490befdc33de9d21e4d895c0b905766a7e75c17c682cadf52f91244722690a2e335ebba4bb65d070935dbea6b36115fe014bed4f919af43f9adc67c66680e0f1d36ca81d4d3f4be5bfd4fc58f935a46222d82e268abc6cf3d41f15172858dbabab4b4330303065d3d598dea52243a9a7920ff3c6c3ce246a70997d31095823e745bc5ab9d8b9066588567f988b17c4f39052b9626d93cb999916bb137e47e24f4e2c0b1fa131c5de30f33af7025a467a4002068bb500f3ecc137a7e727e8a60001d9489f9ce180c4d9b3cdc0b9f0421401baedde920fd97c9a4a6e72c406f165c2167ed79a91d6dff3b895637c4c055428d81ac55f62e5d32e3d24769d238be8d6cc44497024477381aced561a5c4847c178aeb7ff2ab283ef0ec1b3b1ee727cbe06d860bc519a989e1b6f4eb2e7f2cf3837be161999a31268838a2727e96e7eef608e36592950159535e04857f3acb5a7d7d6685ffaab2d26dd11972b39e5ace82d0ca7c62e902e09a395bb2ec9a153b45343e7976661f2fadcc3c7236e8b0305cd75806840176b46b58fa57cac129fb9b2f46dcc8f47411bd64e872e4877157fe509a87a1058fc5942ab4d95a3d2359bd087819a18e810e1b4a2718a933fb613d6ffcdd8ee2658354a89fbe7eb5002e1f7499cd6c75e59edf9a1972248522ca7e4da05195af522991dcbab94bec51035295e0cc26880fa1ad138872c3687cf343c8134f027ceb6d07cccee2ba8d75cc529d3de165e220af1eee5557cead641f59d4840e905114a333651449441cbe4b137b5d8d36b4441bc914a248d2b3b5948144c02b6919580c2b72836cd716b1c59afd0f898132184376933e6965f4d7362940f16f7b176d4146165c565e07049112644099a29ceb05e296337234829174784756c93fc1ad73ff36a7421ea038afaf88cf786c5673d15a2cb763c87e3b73ee9efea78daa7c00da124a2339602e4a239ddb03b04fe0afaa89ac5f6237f6f11b9d7be55ae8c91c2e03206797012e81483f09f3d2b986b45f5afb721d7360b174973f9c032833a94698edb476f7eae65974ac50144361a21409ea72592705e25a575c0d1505a64bc7d295843dcd54960bfefaf0613e30ec749e707297d38b5cc905eb8aced3bd3b0067f09b9e4482cfd4ec782b780e60a509f0e74aad4a6005ea11d114bdda3e9ee996197f12ce014d0cf473a415e4f0afbeb127726118ebff2caf0423a02e80ea2a261c2a73af2eae99ffa9f4ecc6710ba89b4956318bf4d9beda744d5015dbebaabba1ff1d0cbcfd9ed1836324cbdbc7352b4429335fa2a62029d87b414c80394a75ad19a9144e857e9ed553b4fd126411df3d14c4c9d28343f46c49d1278d31df6c09f88c9b56a287bb1a8fbb7d96abbb675a727c911069fd3707cd5cbf55283cde2851d52edf8a04868566f7388133f5950672be7b985dfc3c0981c7769067152b9cbc15f23f74f8da2df9105cbd6a0132cd0bc919dc0dd8488915e52f76e69b119b47099e9077b70f5ec51b2ff4fb3bf99272c78f76c3bde861541a04a482593b400c0bc861a40b457cdacb20e4f9ab11af728b5983f3d7bd6fffa0bf218f8354cd960c5c02b48fe580d8b36b88c8c071f9148d073e3fa4b0a7eff9898744a31ebc74d29855c92db892d113d6e533e5034e72b6a19e7b6d0bca707fe1ebeef216aa7147330c3527ece4eb015f965b61b93b7254de1f1aa1a5a687a1170e59ba6680358e221e16e81013a4cbfe2140d04b92021d795052f3531efe2f00048b8ebfca69976ff853700b4cd5f7cd6e23c698b372494b436b6e8703da569be311916cfe4d51502dc2c949e50ee9cd31de5fd7e372cd9369e26a57b392e3f1237781e551f574df15c351c0a0af42286877a58d397265ff51e1cc2b4cda99e2014de5cb4dbffa21c9d549a8ca12b494ceea3cb088569ea5c243d3d1221f9a2feee89341cddeedc85f48cc1186121c2dffbf335d6d72145111e5128c0f0f0f9d13240414ff4ccaffa72d3270258d49f2866543b31b725b1d29c24c7a5dd2d47d10c5ef15d78e9d4092973bf6c8505cafc2ad1cf1a73ba14efba0f1c3eee5f6102384c3e3548f38dd3350e067c47a32a4f7df59551672240e18f02acee1a3c4bb954d88b929f26863ee84e52c5e6825198d51f15efd724b4268a30ae59e198c6906de7bb2045813046d3f7ddd2673fe02f3f38023a2726483ee17b0a9121d4938177bdf1fef4bba888c19c316c010e3723a63d02b8d7282fcd5290ae4e104fcf6646866a81dcd51e86ec79bbb5416f3b224cc5eb58d5fae40ce684a7328bc078551b2b2007ade81b199ee5573a854577e2c1a8b18e872a5c214917bbd585ca55f8608e8f2bfbd7c7adcf3345d53ce0f708870e968fd72b74cce148a3a96007190bb8a089304e3d576b582a1049de7f3289472ad52b45f9492b52acdc2bcb3c235a15b1eadf76865372491861a8b7e6127e3c122515572a11804de6cb35cfee2caab2b0b76ecf5208cfdde6946e0e48b74fa8e5a5f15253c17a23b9024507f20f6d628cba51c5db51dcc1a5f1b012ce72c1f0b3f900272ce5fc88f8a5475796a84faf4d92b0ad8b16d46b6985773c6306b722ab571a972cb336a01aba8a68d9ea27c21a3ac9fafbefccb6784633bee18aac48640ffbd41ba90e4905c9aa078257fdca793e3be812097151127e0ed613fa50cad4f9b2155da4d6d554b806655a157ffe9b18757623a1d8ce86da76605099263fa7c13e672ea74c2e4aac2715403bd4d74590380f98d751d19e176da963826b7a5501026722648097dbdefee90ba0a9649d2062e336a83a44b12dbb0820f944d2646c2a76d3fc915cab6e5fc5bf57ee997313ec9d814cd1a179f795d49d1eaf0070cc3270caf9f5f32d0c76108696051ace3977a02074712fd2032794d4044f494f8e9d25e96ef9c983204bf985188acae6d0fa22ab638fac5e46cee100a6eec65cd47520ad21732c9bf4552462fda28346dd438504678ebffd150711fde15ba5713391c727f2e4c85edc6e795ff5299474ab35d33f6dc40479cd41c678ce179abc9247c3b09932ae482a48840a0abb0a1b94fce6b6d5454a1cdd2b3fe02dcb656ac8eab5473cb315dbdca8bebfa42ae5129c6ebf500a37bceee1f1fd7711c80ca66676750cc264911a4f656e8f480ae31beafb4482dee8dc59190c154b9cd8944c2291429d8b7e226e94df91da25b8c747463515e140313b98d11a9539eab52738d08111a3f181278b67f370adabc586209a770d22dbaa852146334996a9c6765f5356172c47277133ff77a641105288d1233b835f13d428d487ee23404139a30bd41224571ba576d84c79b7bbf810969dd3bc6a0fb2d1be4b339d3e74e54a76f948bbe50c264caafc5f16a47dc16452b4a3c95c6c6e72debeac353c71bdc36167277c048646ef5eb312db9b22dfcf58d8b843abe77477199451c37b1328b4efa5f6fee56a1d1dfa0e9e655258c6ad7bfb09906f4bf6b9cb5c86e125115e90370a57ce072b485657ed587606f0f003ec6bb77f118167ded341a641b611561f40a34cd7172afdbdb52ee919da38038190612d52b79be27004fbd4234af362c2e6372113f234f8181fc0e6db093822eedf13bf24fe5b9e4d4a43ac6a5ec8f03ea21482acb720ee0284071f98b647fe6f1c25582f047c7b4dad59051aa7c7cef5e2f7ecbbd691b44a2a8cb36fcab1df9c9047a28d277841f5c64b427776468c0028877710472de6d2520e0531bd2394b5a121911740a3c3283893b619e7dd41c191dd0d8ed727ad6a4246717817fe6333456be6c0ff0852c623b43f2cdfba6d3fdffba91381c48b41797250743dbb93feb8bd18bdd0b016c34bb495356da2fc13610bf7f5a7270c3fff3adb373f963119b3b01deb08f52bf0c6f66d818f52f6ff2bac27bb026e84f38a44173dd486f41ef124384c65de25e0c15223b43ee14d4b4cabba9647239d5848623e6a6e81b21099282813cc5c057e73f1d989873e982daf7454e67727044c2877258248a81b8abd41019d0092c793c11e3f9eb36ddcc5ad91c522f6d1365f5ac914d1e6cc31dc7d18d26fd0f8113ceaf1c8e75f1525f3ffae5c2612fc3d0b6ab106c6a87e10260ae59f79688ed3971db359166f0eda51596d4dfc7591421dca3e7fe4524bd51da204f0abf5a3a396fe41cb6400057ec1ac8a1a02a56205ee73acb926f4e0b0864d36dcb8b859104c6e52551b2957c1367aaccbe491f9eb186a5e42bf8adec3ff04eee477e43f1f7bb9ed6c48053c26fb4958d8581725b6ceeb3e2e4cb5644c10c28549efabb0455e8b207c5547a9a4c213b061fd9727a2684fd0bef937d8064df5c616b0d29600f3279ffb21e262f864824c84ef906a2dbdb027913fa739e250a9071243330f69aa2d20e71899d59fd7f8240b5da72cb002015cfc76e6bd326e8399f185c6392c717e26864df57f5f0b590df172672b8384b7f6c2f1695e10d1cff0aaac02ec77f7bf0f30e807e6074b9192e2ffe724c48dad36dcb342222ad4140bb4e6640b69513b017711efa12285f4ae955a13e99c6055b0eb444c7db62fa8a56097018af08faa1581b9dc212437b894c56b80860ca967ea4bdc30a58b47ee50687967a2a3c4f1b012d896fc376a306247ba6722d01bca9c29095b6c7d68d9e0b3cb378142b0938960a7eb28fd79ec1b29a2872fc2b236816c69afec4ff22b8b8d2d969f0b82b0af2d599ce0e92a73baeece572828fb257e58ac2649b051e6e539de3676f5745a7c87a28a307dec243179c956507d274ab91aab1833118e2b419358329c2fa7bcf766a8448fef15269b1175072b08253877e8d3be58f79913997d07e5d88eed7455ea312706d0259ec43fb5372d15698def71eec8f8b2114b967a0c35321a204dee5cf0dfdac8c8fa202298e3ad37bfdb1c24e8d0282c282e4738a3a37e1a85221d64f1b9c8c57fd0067357e72ce017929d6c0c8d16ce6dcd3ef8fa10822a2330a3256a816f970ae4bce46ae72e5231d70369dc6632f717563327a36e1a98c58351b74e633c9e10f32790d1772e3ff58e1414ee45b5f6a87a59544e867f64dbf0491e8a36c071d6aa25922d472617157e1a3871d7c95b2e8d10884009f9e707b18daeee2f3bca6f36f26455d72ef44bb7699c00f8797bd0536cc924dac6eef888c76ad672a71f33df6b3cc1f72188c5c6741d58629432b85a8dc0896bfca1d2122332c4355ba07279a208164728d8bc195144fa48c5f93716acbb4e89a1a28deb0f99fa229520f1626082e641d1e4a12c0f6a8f5c2df3059e666381ce05ba711fbdf6edba1f25e7d5cd6b05372530957868c77949e818b452c8e5d77df2c7cf82f90f23128bd473f2dc7e2d072ff0409e2550b3a6905823e1bcc6fa90cec9da45f29064392a84d9b86dbf9c94caec2a693e1ff15e3b7f688ce470f5c53b02b460059b5192d4c99ee1feabd3a4129930de2aa97859919f76542e14e1f69c1a851d3422ea5efec7181de61511c7201d957b01ec286f5b1746e04fcff19d4996d054af49b4d6d37288beb7aed19567594c181f1d94b8ab40e32c0920e4a520d522ca1311adba319c0632f12ec7218524e9d8db536376b28cd309aa4a3377ceab391330040ac6d0462746c38358f6cf06a050e63c8952974d4cef608c956c90c57595b03ed8218b46c25041574fc5f40f0a6dc3073206f603aaf882cd313cd09a25af45fde90c5e5b6990ef17472722942cba53b0af041e7e545056771ace1219b04a6d49b0ef5d996645cd65eb87222dd70a70810eb25c0b8fe3d1a346e2785ce2a1c38f1847d42ad3c9e0d8e8672210998ad1b5867fc19620c91a860bc2046a73a766c0ad5ca2586c2959d0d66378a561dc9f5e7ad37035e40157302da04cd56a0f7373edfe590a34317c2b5ff6ac088e702cd95aec266da459d1c188f4716859eb7ea003b5433a71fea11831e722e83e351a1791ba97cc2ebf165300a9632aafb355389c9c011d01b81f7c16a72476497f2b094f481f5f6f393d61b99d60d3cd6d0cf4b24df4d7157779ba5ba72468955f6e76d15d429d176dc8be431f371bfb9944f9311dde55a3d2578fefb72a4a2234203b1557d77a9191016f442a1aa79776e26ab252d414f0561846ea4343b3ecf85cb71d0b414ebe9cb9d6d24501d60536d944fa61483a1bae92e9d3272074951b44936dfe83102963b0b4a1c20fe3ac3034e9cc7e2c2baba29480f106451ecd483e548f1a86b3f57a431cbd0b86104ced0757a4e88d667b441a76516724d198ba7b7cd7603f7f32a0e2cfbee55ae07835711dd575410ade8a8d305167287b173d594eb3e68c25a4d4e063904a3a1d24e2a2d89586f96a33379234ab772c3e4991c041420001728e4602a273148a9162eb56bd36dc582aae6eadd272572a8ad7d8f9d4b5e603c5044e8c97f5172c08daf7e4e0c95b38a8118f10e227462d1061adc0355044c2142fafcff14bd632b9fa9726e711f3b3a52e2eae225a236cd2cd276644c3d1387239e49e04bb065d07d51db8331223cf7a5af8d867c124bc2c1635dc3705ceb1fafa3cb1466a0d34408fd60d2b69f8ebc3b825d6bdf6a727d0cf868477584364c14690a00c2e2793a81d373451461a40548570156b2992d41ee6c8f6d5e2c383e7d4ecb54bee8de72a3cfc2fcac85be6b00470b884162722731f096376fbe1199d86e7cf1f351566bd73d78ffb072586cebff6c31c8c372a51ac607627d1351f22ca989322d3e61190506495fdcc958f69764efd2a1f74eaea5b869a4fe0b44f6c67c2ab5d8dceaeee015edb1018811efbe8a735f73154783520ea3759a6acb6671111c956e75c15c94f187306eeb09a8c344fd17b2bb72b8dc1575b45e7022cc444699e6c8d36c02017c627862166ca4b546476eb9c872e86bbda79b3fa1b9e2921fa8451f2b22b7a600f89e0507b3010f8e19720aa772672b44dc78dcc5c775107b831e9988336da3d5221489f45432590b21d5119c5c27a7b0517169db747ad4080cf144e4016eb17029ca7861d9ee3aae593fcb2e7264979c33529b66475f43c0e650572f53f05e5cff1ed04ce18f23a6ba2d01b472bfd37ee926ac2d3784ad377b68c33be90a21c4d71018fd76bb792f30e1799472d43cebf97bd822e4756f4ce4e5ea36e86bff8371779fe9dd7c8e056a83917172b29fe2c6490b5993160dc7d3e4318e9383e51c791d67311f031f0c730556035aed371e69448693912f13464138f1c4ec1502b201bcd2170b7da53a13dea0196bff1c869d818fd5495bfc6403a43d2e7599cea7a85d6f2523ada860906be11a72913d6495dc47b3c671edcff0c46d5cdbc777ffcc97c1978ba5e9f4fdf3366c4960366ffcc4cc23713245bac3af09168c0abc75a7e04a61e793591d974fcf1025671d9b61a9d60b70f8758f8f9724281e53ad9b01986d3f4aa768ef87d871f854e92d88ad6eba9434bc79019d1ed4520adf9b670753031f0fa9eddcc36ecb7c72e49e41485bd61c11333a1d33013250f3caf76da8b2b67d46c747d26a0df75a53ac53d58f1a91b1e77c568caec53b88ac3bf39660ac89de6ce4fff7d393b6aa72424242abcc40b5308753ffdc6511ee51abe7d1e53b5e99cd79ba3767b35f8172a3698587ee35bcfe71131c62b31c373aae4a7a5904ef415bc2fec19ae8ad507262570aad69e989073b331c6b1309df213754ba1872de6a62d3cb2262a8459c7280b174f95567a8b06c59369c97bb172b7144878acc0095884fcf00c07e811249ea87bcc41db3e74474227691e90ec1e86501e4adeafb43f51e5713eaf1947072430cadb0f6bad0fa29e852c098d042acadc70bb241474236ef41f41311602172d31ee329741f233277bbdc49ac424040258b8e82dcfdc7ec8daa799c8aae847232bdf4c54ead1cab53810ebd5cc7ea2a2e7dff847de5a16b63f5b4f6b74ad20baa0cdae25dcc13c0a573a01bb3fc24d18b5e6c40df680ced1dd097434bc2d6165fe288b0e9ca2a59befd9109d482847c99be3f98c1468e2d4f7b0741ab2d9f5cf084407654cc975d552d9a83bf8f31bdaea1c36d913886595b61207ba15b204b210d633ec46a1a6d91a47bb4c62dc69808c1b49dd8e26aa172d0e8d520e08472cb99ff7ac6111f4bb7a1fb7a33b5a3fb635897276e49b2f0f57a95a917f7b272de7f2969025abce969af4ae9f4752f1bc8653b0af158c18d95b3279f158f51724b3a7660c9c84cb8dfe41fd1d62c7d0f5f63c5bd2d5f0f30a6987698f95a6d721f65db54f2b42a4fdafbf39f35743b7ee845f02e9d4c302fba05788d0fe97f72b74e9d66d58b5a3858f09bcaf321b2a2dc3d5c4cbae0f335a9e941b2c7b98372677a45974f65795e4c0e03208857c75f081f563f5074a5bd1c5ee1200167b8725c9984cd1ad442c32d9ff4ffb4fee47dda2394a7a764c0188be9b2b2e4800d658e491667461a31b6c7979a8db7e87aec8552a40b6f876a52933ba43b75a1c94a10b0fa23767f04a8ae24d89a56c6c32f2e502dc025206d58674f9ed940506172c8e78a9385d78f6aa4eb192adcf497c9b879019d40edc2baef5eb01baf112172d2a28c3bbf992e40d4f09ef32e47d71b5426bdb267312b141e450222461e59726614a8436cc5bc7c085d689d5d23b371732a4875898628c9acf339b44d87127248e307725d3465bcb7616551e7baef2f43b06afbca32df787c80782fbc768b15ea6b9858ac2e868c5e4ce832fb6067b5f1dd87480ac5cefad0ad4beb66e7cb14d577e9bc4dcd1819517caa682af575392fd08e2050116cfa7ad95a162b38255cae39f142c03e2ae3bdec840ac4abbc8cc922babc3eee1a8cb4878aa111a6457295bd56f3e57701d33f164416da0ee897530f207c2fc5e8911275bf158448b506e4d57db2885b8b4474d95775fe3fe32fadbe29d5b1473247441ab2c2d5f3270c04e1b1af265d4ea583cd9137050ab08c6d7cfec5aa13f514dd80171e2a48bd720436037073a793f1d6e61678532296d76ae3b2b5b30fc13c01a1f730ee6ca517d75c1dff3c2e48cae5b88c3254afb71d091e2b2680791d5e6dfa3270713290723333f5e373d1452b44a37635298905214caa9cf809834fc6e69a1197345ed2725320442e779a083a3010ace7b6a5038adf15c01d5f1578ea317982c3aa5e960bd82ea490628c45a6c483f1d2d957a96bc6936f95a981569ee55769fc4b37a3720b1c5e024c3657f31ccf107cf5e7b5ef458a0978e469c7033582dee104c47b724c8ec264c5e694088df7854d3843d3a0162d98fea3c76acf7668b9bf4eb98f1920150a8553af1b4523834a2be5b7b51bacb800b3edbdfb585fd0adc575abf872833c58e266c59f4a7ab54f862de913986f65c846af4f3f7c99b53c22dae8e1255700bb43b933a82025a1d53ed07a992286c39c429d37dd000f7eef1c86d5e772218979bf16399d4a2ac50bfe234545d07d0be2390e79b9b9e8d315f330da4c72481dbcfc9f5f46542a45a5e281ed6707096c939ce5bf4539740a7df039926872d7867416793d10ab1ea161a3c819798f02c4e4a497f348d81a3484625f434672c00a72597215c50039ab361026b97b88afa9925487576b047bcf7216c2935872be9a8bd33b0b646efe1865985b9dc12bfc0db0c43b63a2a5f0df7b37f31d56726b4e125a1fb84887195eb4591a3b88d3822072293996102514f315b6d1ded825f7f06f9421978d5981faf4f5f4d52488d21ffcff6b14b04870642bbf50eccf5fd824a648027251f94bc6b20d396f5092c44f22c41bf081c9b8b253a7e39a7972db6aba7bfe5faa14311a003ded27e6a501c99b7f137c364562e4d5b4e4090d7290a94f4afb3559997e4676c214f47c42cec8f1ed539817b076934cc050037c7294034435aa47678fff9f156675a845ef3bb50e5cf63946d6b0e53c09cace007214dfcf0ef0625e1af43926752b7720279749748f36e8409abc729bd1a1b9ae06daec9ea564e4ed301a77ed7c33911ec044d82e9c4296cc173c0f01298506c972ecc790eb0a63faba74adb1f77fa64068ebab8e3c9840be74274374af0250f3728dcd4f350b571306278c7fbecc95c6a98d7a16faee8598801d101bf0ce90471c113e12223604e4cd0d324d796ea5c52a87184da4aaa490c5fe08a00dbfcff302f0c4a94ff94f98ee3b0da425b136fbee8040cbc0670a6f421504b2205cff6d4797124d33603770a2d1d9e79cfe90ff43df98cb43e0ad0858e1b39c2bd1713d721b2222f71a91e26c0c722aba90a22ed5eff33601874d7be60cc6bdf5b98e045b274496d955af3db9196011fe0bc73d7ad077a43368d92e1f20e7e23a4f60eb5cc7f42fb126b659e141ece5c2bc3c984f2777c8ccf7ac55cfe85bed19d15c0458212b30417a74bfe19949bcc3ff2bf70bd0cfb2b92df88b627c086d814ece4a72c47b041bbc0740a255d984e729cb6db1551cbefed7b31e2fd5a673401bc24e53e59433bcddb4fd669f056d437d1c3a2644c75d3fc7bfe1511c43cf9b5c6b5d454fc7f6ec3852dc4c2f38b742f94598c9267b8d52434f34d88d6639b6f8584c5c4f3cc00a01fccb31efe09134bb2ecf20ae6d35a5c09bb076ea78c1802434bb72ce7a7ee0aff4d58b4494d9273614fe054af5cbb3edcdce10c3df402209fd0f42364a2acef9ab633ce4befc6fce152443e36c92f853db5583f9a273de97685a7251b94b7c3a6476a1a063e801d34df7f43823150cd2c433803b8c104d88690a72159a2cd07cbc935f0ac6c3d3213bfe91981808c2c92240bff40221587b1cf472f85e32ce6d093117672e4fc41dfad6e79e413d3f0780478dfc766665d93e9c72f76447f6bc323fffbaa7983ecc07a6e614c0a1b180ee41dfcb5ec1fbce2ce40bae968300561a1f13fb5ecd51b9ab30f7de45ed561e78f2a20f1e1543e72f25723de87b3d39480c5590ebf7fa21f494915766726748333512ca532dd89a15fb09f62d624e95eae3720656a79eb814ac96bbb79c3909251205d427542b0d3f9b1ae39d711c1243412bd4948dbe264cfdbbfe0fc03b725582fed462b386ceac8d729be4ebb8f92c7d4f94279f8f46e2fc0a1c76712bfb9ec4eda7891b6bec250d7204dc32fa43012219740faa71987b0e391346fc6377cd1ce5de8e843deb4a0d5d600eb164c24fd6639a1665145ba3a31d531c05ac1eeeacdebfb9c7c58a3afc2b736e54ba5204d7f8d946db3ad89bcc8b0e4c00f8037cc4b977c00f94b2b60c723618f3f1c33c121b28520fe5fab7fbceea38e7a8c3432958c8a311aa8901506752e7a1bad17c577ae8591eb26c33bea778aec65167334bfd0891906646baf2725f03b83c3e1f19f47f96b7b9c459fa70687434e199d213968086d4d9d414900927138b1a2af36e3873157cce1cbcea1f0afc8e07691f71dad53f660d7cee8172167348a11b6b71a9bb281702526cf82fde7041bbe108c934c25cd237c5d9d311a6c54a24f4a659e0dcf0e299581d23bcb727274d4be19df0dcc536b097d92521565b6b40db6bc877e86de879af614eee0dcbfe4509a95366c8b0f3264467cd72ebd813ca1d9401e6c7cc52a46810babe4b7d4a0eaa5af503633bf73331a1e57200ed85a4339afbd44bd91cac01f22e63b873e36313375b72b2897912127a1b5c33ea866ae8d61ef0653e47673f15db268882e0ce3ec6e6ce7d0da6e1a9b91725e21582d6a092d83c3e841b78a0bf639fc83d3aa081835c96519e9deb6cd11b726c3cc29a12f7fb7265e30fbe3e963d5c53a048a385f0bd702b5ef51f1f59f47260c2fc9871f66848e6c2a8221134fdc8fb39bfed94a11ba4645feab0da53a572df3a5c3b95f7a7ec30a4303474c21dcf11249b6eb0682fb492592d16eb561a726547dfea86695cf53a7e55c582a11a2dd74350f2ef34e88f39e55d4321f088317f56cf5c87eeac3de4980602e69dd3bb55cd71d5f574a681bc099d6b1c939272537710956fee24aa4b33bb98e12eefec0ada917fbe5322dd085ec2d3b9a77972c0e3c7598f346ca4e9d173440ae1b36c01f212cf88520ff53cffe8c45feb7972ac33d4b0bf1579bc6f874e5c8766814c9359f17706bb6f3b8bfeb66edf4fc172ac2e55382f6da2e319e81479b476426ff403c01ecdd565edcc13e49e2428be72ddd5efbf2d7ff8346e9bcd4d5b91ae8e88607ac4b6bf5b8c1918cd0f314dad3daf77d2196c92a26b00e9b616da6c04d49a160a776dcc30d642b4c973f092e2720290af94fa5e5919f6acca66223c40163c35ff7bd48268603ff10d42337f26605f2bc2d0866eb27eee0a77a2a6178cc914e77f5c41ee1692b915b9ba9407ef6e9a12cb95495358a383e589125a4b6a96cbc414caccd59f86e9e69ae8b730471a42e44a6361ddb0232f16b6beca3087c660116d72e7d95a91c6676dcc9ee4f872f9b1c344e0b4937519ec56a07d58897749f8f2f253931e3109689d14beafa71d0fa4d38d7b45443a238a485d4ceab7358543663b590e26d40c92c342c8a97d1962cb6dba0411d2b586c30114daba6ef395cdaff3f8ea4850cfce2050f4972b43d1be8e39e759065024a5d2c78baca3f51bdb5fc956758ed617c7457c32d3b8700257dca038eae810d95b44ad82fc673b87c8e33f5540cdca11d36fb9609169729495629e956b75dab12b06160fd3e3d9949b1e73290bf15683f2d5270c9bf372949864969d508832a2de22d29fdf97651e21e2c32918e7ecc9b4036d41f2334745d4219ca717b8dc249d3a9ceac59b5008ec62760f5184461eaefe13a4c5fa721890933282796174416b7a440d74ea93e136ad026610dcce8b1ed17708cd915d17a6ba5dc9c2dbb88057749efc9dfe932c93002c9513d1a8c39a359dee829c7235173c04e0bf1c615c84a7e6d042e5fb3770064083b862e9e9547b257e75f30b3de32d0be5d08aefca1733d695e82f3d5c22028ad3f2d03fa9dabd26abbfa57286a5a33859ff90bdd170a089c1071aa5fd50862ac15e68e947ca726758b2cd72cd7d5234d54dc3256abcdf10ddbb9e96e4cd03797654fd25a22502497259d0727a2c5e9f458285ade166e5530bde1401cebd7ff5db93723684ad6471c012df728b4ddb24bf151cb7d1bb910ca05bcf291985199d929cac2cb778e8ebe8014e72264e4c1d9ff51153e07c7e228a22a821bc9f27159a4d74da6e259ea3fbf97772b672ca205c63c6937a09927f52678e56e4a6fb7aed2c61074825b6e9a0c29b48c82bd1f3ce8f8fa7937aeae2c4ae7eafbe3c24d425355b071ac61f7acf17b672434a9904f03141948a903a2fbf93ee3fc23fca361413c7cedfd28226d02b4863cc70056f55ca00b8a7ec95f16e2e47b190dedb83a5116d28b3b75598954086690a3b73a596563a79668a764453eb8adad772a98a0eeb97928f17d958ca511a7235b50e36c918e3344732c8e99a986ed16c6693050ba20c871361f01efd6cc7132790065fb271c96c971ee3ecfd9a6b7a103399db2a9d24137707bcfc2d0b07727da884fd501810d718ea5f1440410b222b33b959e25f3d99e083433e38160572c95c510490a5b188b92e8fa0931db56367b2cf7421760b0ea4c0cb196a08a572ae3a263673b4fdeb0d1a1bfd7af8cf163d065e1e3917189fb9fd06c2ce382f6abcb80f65385f8325c2014faf50d5600574bc0916a7ae170e6da5f4924bf34b097751b71a74730e0336174d456066c1bf33d12609840477a08cb4acf8dd5f66721a6f1948bb0317de2ff3107decb9066da999e0454b730c525b57fbd3d4d2ff0a976202f63770c6f7a44f334ce91015350ae5fefb42b93f219fd9e86366eb9e10c5c200583d8bb616c83415e9dfc876d86df0025923f19f53a5f66dafa9bfad72b65422edd2a02a69b296f8a3bb648053c7da85206453e899a38bd6e14e49f0132ba2f5a5435266a8cfb5c338c192e3c7eac5143cb1d838ecaf3b5b5ee5b49150c0a2251e5051542232fe7f6a0b066254f8af1901004c0b8d93419e4d5b480a0c76e0bce7031cdc23fcb5f4c361fe1c7bd518c5cb332d8b0c4377e0c3cf914b726a6bb7c97f6e2a63866ae89867aa11c79a9c5456b4a71af39f9ca96234ed0f72a3df4380d1f9668698ee713ff6f9bc6bb8fb4add652b57e34badbf13e0c95868dfc367a3afc19cd603089b425d7fcc76dedff2efa990e18bc4ddecd90d12eb72f53983765e33d968d42d755092b05d3c0ab466f1b5889733a3240c6a8e468b391251d70d2f8bd56d5c2de3f1763aa4b9ec56ce04a3ca42f96c6d0515fbee5453616588049e8ec5eac44f800166777bddf33744d1baf6a94368b5db547dc7ff134f80664c0d005c732a0cf54995c9574ac4b4aee13132bd3a0616a94b51d49a2153fa656da99755fe55f5f1c24dd14efeb20aaf3adb739637031d032ce203c0660d7d6df97b85c15ddd228af2058f55088c23f423bf0296a099dabc19fb51f0722456260450861bb281efb2042039cc69242aec7edfd25875c7fa57a7d7331e4f3f98daac72e6cd552b779dc1374ea799129fba42e5abf11b51eaf431da9f9111600e855e703f7409d198f9135b03c8e40b9cad93deda81e263e58a49c58441728a618e11734eb7183883af6ac917e113e5c65115deebc7ff305d61b27c551662f27c84b4deddc5e4095b3d10ed53151051f1a8289cbdf1ffd7942e55a5f23b72f3afa3fd9706f8d909096cdb3519157d2492f2a67a45e195b1709f651b78cf72fca4b41e6a11886f479999a37f3d82769102f46e4e9dda09339145a2006d4072a9de63b10c6dd5d4047b8ceab6bdb6c5b79f5052e5b8836c1c55b8493fc87572bfa8a6d8f7216561dc8d05e1177e56ce8265f45bcd1b5392ae4c3e4af590ab362838fa44e4bcd237504574dcc6a534516d167f424b3cc7af8165a3d718c11972b75f561c11fd187133db4c9dd4c6fb365a181951c10c4098acc38873c97d7915e53f32f7261aecc18f0ff20da53c2ad9865fd50a677be21d20bb90aebd02a47202e5c746b77abc67d6673b5257bf7f49d875ea999b44d6de771f3cb9c96873728c62e2df50d89eff1e2c67a9e539ff181a7ddc0ffcf2b7f4610251acc8cf5a72f8a275110dc82f9bf1190602706dca33023d0b33197391d77a320ef9244551725d586318a891eec713f460f20ff550897ae3fc74e237ba54b9957d3605009d72683afd2db8da0d9d37e9252632d2c2f52e0bb5084604fdeb484405ce2f34b91c8b83bfca3d03e3056a3167bc93feadb44635435ad959d8784c4352e1f8d25868e4eccc716dbd8377ceb939933a43e50f533c8c0bddd3959a8e162163ea3b2c2f7551a93920aeb65e3555bd35e4977cb0635cbfa3e7adae47ad16faa8b7aa8e7250e6ecc47bb15a108b0afcef1c24622bcefa939bb02c05e0af6f6055c8505b72b5997360b253298ec3c93113c01de8e3336a999448f0f35382ddf80c9ea4e35a1c1cd03bb7a0103ee7304ac1b4f8e63fba97ff1f09ae7162d5629fc804348472ead799a9822bc42d11e8ef4c54261a1c53fb6b4c2d74ba2ebd78717cfb24d372fd6633ce5bbfbc3a0635df18c9932b230cc547d0da9004ec2ce26c06ef95c628067cd0082a06f7cef4eed9970c2d8c7cc60ab4fb5d6ec7bb08ade6cbf5ceab4697f75db0ab58d6585b8e5732963d58c37b6904bf7d3cd57215725111fbd23120214ac83c3c810c9f3d4a9a1e43286ffb3835972bb6fb0521c107a6a67696f0449095f504ff1c75d0669052c6a45ed2c67d1c59a792ed2b9bdfa09d6fbf856772960633fff9399c0f86b02e16025b7176ac7451b3ebf384792e98e96660a9d872b4ca5aca54681d6c47f1db218a588341df779fc202f8a9726a567d0ea1a7b23af7d14bae90e86d5c2798e7e0207c6a63d99e0f698e19e8fd2f876b5505c3fb72ed4b49e323b26f4cd4b42080f513eebbeb2fb8e39c31ea34730873989c461200f99d1fd3dc40cacb6e48a523a53d0c6806ab66423da93de23e503f4e94d24423f801e788987a9ec45987ac3ca0695dd535375c28025891286e5aaf80c995ee2ea0cd81d13c282b8a29b6acd11e6aebf231135ce0673536e48dae37928439ab72b10e60b470cf8d66dcd9d3422ad47d0c95f6a25f17e49633dcb0a52a209ef2482ee2467ccbbc8a97e665b0ad7a29a811f1bd4dc76af662ecc6d824a39d58b50f3a54e29d144a1d47bf4e88a672af073596bf0681d4aae55b504307b48fa7d572d2db25c39554e83366b745e4a0e25d24f95a63731804647fec26d6b9047e6772c76c01b287c2bc98a9de0af5ad0564df6b7d21c431464888849e645b916da972da4ce24af386ddcf9811edc09eadfb16713ca16ccf95cda4fc56206e84906f1aac30b31716bf035ad564b9dfc5bbe9bfc85095554d28852149f712135d036d7282206d4819f89701a7ce41aa3dd434d198494409311f4f05431ab2124e789d15aa7a5a93d8973dbad29eed903bea29ba233c20641da427f231c0bf12c1ac4254dc1a9d4d9a2cf228653bd386f9dc0c283f04a4e91ee3a2d6c03aab50c0abf9647d0721b4718d54db43324a944812b96b6f844a9a656fd3d9c4acc8f0f21d867241ae8bce70fc98fd1f577d7bd7da2f309ed7c45f6eb889f1a68bf25f3ce1d13871eb3f31ba977f20cc7196cf4fd2e2bb055f9a779e0034ed56592601b7e91510702e3058767b95debed35917a334dab2e14ff9b0a834daf2bc2d5a27f51d3272f86d7cc7001aced755f07090af7765eb2b77e66b5bc95b36aa02878d8156c32895fcfdfbaf9c69e5409e48884d6774f32489b9bbda65f581e3601bce5c950a727f276b356821fba8c41ecb536b36b2e632fbb4e998d01d5c109a1ad1d7792672cf731cbda5f13a30f913e4e2dbda5245d21f09878222ab1bc37efa3738f652471797e333e6f53651e6623bf8ba61aa03fe190fa96d5d1290854ddc60b6ed38721e184f0fbbebcc5bf50871e5ad826ee9f5a198f071a57dfe21fb8eba2083e71c9c49d9d4e0bca26882ed3c2b2b757696c07a16b7342bd8b3b11e10d339ece82367c71a0fc255dee764a5457cd534d43090c87750ead34211d2d47fc84dc2cf7207cffc77b0e890803e1cd26bf20a0f2d22acef7646b5f9bf090c4bd6d15d6c72da14938b6a7b63818f2a173e679a5624d56588e6ab5e608e9c931cf36343f26ac06c4c6a8d18039c69c20d4ac72e4881512ea1afab9d3601b66c5c14116f401749df77a9551c70b4bd9de38b751030eb7ebace01a304df92e78397e2cacc4368f5b2bf3827a569b3ef07c5ffe1396d7e9fbdca0b841570d302c05c142bd1fc72c759fcddd767c263aa79384a7ce664c3c31942ff9645937d54ec8e7efb61410c79f7eb640ab67f9b33755e6af5e6f8d2900fe08c16d885f162daba609842e94776c0822e5035145fb0026ddb7a15082c5fdfcee19d24bb220704a5dd136aea7237e3fcdc73c00ceaeb7e13375033f63b8c28baf463d2e8e54e809ed7b24ad2728a486d4601d2c044d4188fba8cf2ca1c21b33289ec0770e0f4fce25af0f5fb72669a55c77668bc03a16b80c718c5fb8fdaa59b8adeace3a72cea905aea099c623b607435b5cc364c5ccce75d667ea04bdc4a4adc35acb18ed099ca848c0c6772a4ff596d4320a50a545b6de93efbd86df6830e06fac47ac95555deaa4d2a3672465a6cde8bdcebd9621d66d39aeceb032aae7900ef256c5fdcdc2f47db12a072270e9fe137680d3016be3ea505327c1e1bd0941425bea1bf1c5cf72648870a72d213d99ce1461c1db59a253ee8b6920560ea9b7ea5ab1670078cba2b75c54d309b41a850ae492ff3c95c2758474d5d9a54e05987febe31118637ee8ef5f1d972636cecbecf9c48ff99473fb8773c162c2a2907dbbb5cb459878ec81e23673672df4ff58741ad55832c5a47735f45ba88c7e94d9aa675b4c7412819878730bb43112669439c974c075aa62813c29efdc9bda0c73329ba1c271025920c61105872e8cde3718dd0b7a78bb51773c67af74e0a3042528ec5044258700bd49061d32c2cba0af1b7771781ea550075716741815f67ed0ebd4532ae36623f2613ad607201d6e8155f0f84432f5fc4811e98cab603c40bceb6091abdfe6b8c313f8ec85fa16be66ac97177c734d5e7e08ff3f54a970a49505d6689632bef6e92a2149a0eec28400e79de33193d2a9be1736e904951790850635492609b936f0760c6ab7293af98be574946a5a12855a01816a90f162200e80c44ede6443db33c4a3ffd72bca7a4c985317870e22a5e3d4b9e2997e08301446a934d59baacba23af44f472b42774e9aa2c23aabc96dc6b9c28996874d6e942b08fb3263a2a223a61f0637204da842fc163b69ec063c5d07390461c80d0c55c2fc453ca5ee74253ef26cc72f7d39ef2fd871aed09859c6fbea86d7cae656d549e13bed802b9b252b2eb6f0a2488d03fbc7956aa7062f770c699971a99107c9f6dba87ae334d2bf16a057035475d28660671620b82f921ba273f973d45ca75707867630da9491d0b0a9e3a1959432d4474265065ce454d4d9f285bdd12d98c258bb17a3754e028b80a4276722b45e45654f21dd6847976d9b4c9fdb589c34f83426a15922013cfac24d7e972e1b87895ffcadc766d66e4d9399af176a747c7e216fc46112b81504874fc086f3d2c56677b0e0bcd87c54e1ed20a3dd999d08bc91a6c44e84f1025406a302d724befac85b43e515606ff6e52c36b94d352b7de45ef23ddbe07c5d41db2d793634d9b860761e00459d96cb70b9981368171072e945ddf12551f45fca54ee9cb72eb6e540eb90f4e08221a51da175283498f8ed374419b905238b49e4e0d946e72ad31ee54b4c9069acea5ffc990851e40150f46f4793924e77a0cb58b4fdb6950bb37742de32c3e2401467e29513a2ea1741cd1128d41d3a815128e4ae0b30e7262668a96fe2756ee6293436690d2c9d87deca0b66aedb083388f9159751a1a72c4748c1450e8e32ef382f0433a607c1e3d69c542d771acdc744e92d5d9484f01cbdf1a7b8248f4643be7c82abce45165899d70f277b08459a7842083a8c284729ee783389319dbae76806fcb6dbe69b61809b563f60edf5dbd1f83e059ab3d42f3f74726841abe055926f483d7c6ce901ef672839f20e6bc553df0ed79c0d072bf81025ad5ffa537c6363db04a106dfa01a4b0951b296b5ceacaf1034e323e00d53d5802d326102f95f53b4257436c5a76aacaa4ef708645e282191c9ff039396e930ebea6036b3cdd4b8b70b98d2d9e51586dca8ff41b4ae214cac7bf7cad7232a28a6077cf9b37217e943b4f02f5ddc7f89106ccd834d9f9fd4604c39d9472b1dfc20735fb987bbdf8a359c1c64c6df3effb3cf3d6583f9feb0bf7dbd03972cdd4b7e076660ebaea608edc673680153d61c5963d078f7a20e706c98465b272c771ba07d922197fb85641509f6e6e9f0cdf25115e8c9fb682a397ab80214348c99bc2548f321b25b0cb47b7b0e1a75fee1f973da5a900d15df967d0bc34c97231875e09b0ed64016c5ce9d77d0cbc7915c5817987938827465a4def801c3a3bbb0bcfbe385dbaad3d9054198913e945883a9a577c5f1cdee3849247c9a6d4667b4c563340ab6bc49d1013af1224f890bec160e27977a2032a3b5045e3e1fc722ce2f8cda5adeb1208afe9af694771a59ef78afc2ea0bccab5624a431b2496720c46d801935bc70139e44d2efdc8465f95e23695617f256db8f38657e65ef3727f33d8635517e1f64393c44637e7abbcb394794878dedb3c1bafaf72bda6547232989d6857ad2e931d5145d72de05ed7e490b6fc0fbee3615542634cd0acce501b9e9a6558af001d4d44e8f15e33c8bb51392cb02d436800226e3ec61f81fa72de0c5140534951296511ee7d4332ca95e7bba0cd6c0f8fab01a0a227985b8c72df0e16b50dba872f971b10a3a7819bb2a405aa9bde16185591b44c854fcd417266bdc077495d825459b6d5e08d3183d85dc41f58371ca76c38544c81c995f02f229c0afdbbd2ecb2fff2b5b81df219d273310dff4713ccbfb40cf234b1587a680e3b46a6ad4d0dd8274054e8637c31cef05918a27e2b1b67c24777676a71456ae93f7fb982c62b9e2c2ecc54634d5e8d47dc7126ede6efaef07287e7ad403127543944df66e4d942bbd7beb4b4c100f578d26e4f03cda2ea52bf5353dc97d35acba32c5b38f684b4cb7c43f60b437475c7e9fcce7105b7894726b374bb6ae172c6b09b58a58aeb2fd85295bbcc263132f9a8c46a7d697f6d57e5a18c16bbde58cdd1ce4dda021eb17447c9ffae857d40d87f347468e1dfacc2799b3a69c2a01329b423b9b8ee8c2a079abda0d6f0bcbe69a44a03195fb1503a73d210a9f8076968484eaf87fba403a956609ec3a86c3f7b63df238e2396586f10f260fca9ba5a734272cd5444bdbaa55c88858c0e473062976ffaae23ebc14d29729332538172e94629f9a6879c117ab33c04e819a4395ec70c76602bd6bc36c9f9e1e3c80e72b9aebf9732fc3bcd025d596006796b712077785e7d0e87b737f0a3e5c4380e3aeb67e664eeced5b3039f631b8099323539f5c9c864a2b4f8102c2bd38ef9d37216d1662d043f59f025d9379d6c420f2794579fcab003abf83a216aede37ed472de917483d7dcb1fd67184c602aec2822d727ecdbe996dbfff674ab0ace391b17be6fd182799c86f1812fcf591c703fce0360a5eb4d7582d1322c38b222fca572927f6b5cdc86169642fc73a0273f2a52d0abc507db75507fda4c78757899d615dc73de4ad111e9cddf77ae7dcb4af6d4c27bf87b8461fc8a485417bdc86dbe721718541bcac6a24ee2540f4fb9e82bfbc42b5e2a5c7619f4d0951c667cd13140b599487cba1465106a10c0a850e5c5ef4ff0d6b1f31847cd6b75abb3408ca772438425ab823f2619f23f1e0608fbd509afb873ae07ab34e6b4bff579f7b73418692aecd4f96daa442e9107cbf03f5655e380b3c9d58afefea984c04adf41835d3c11b4a8046a9fddd94a322577cb359601ed329fee2f8a7b43ca8fce524ffc4230af1c1fe54d55bba943ca4f5e2d7bb75e46f64b470a12c3a60b2c5e6e2b3a24d2c46f05e1614793a08ce4d055483c1e2178b1b4ad1a3b49c8e7c141a2212c72e8236562bfc53e8bb0d945ed505d9d40d3b902a53cf17b3e0687a647b015c0723c66b20c32726f371b891684cb9b0a9576151a5f5b91b48b3bf6ac288ccfe372e978c5b33c55e2ce582eeb6c566a5b06cc57cb0a8e3bf8b19e3194366c18ab72c527533f76375f2c6f29fad5187b1be3be926a299cb64e71c9bba094b1aafd27dcb34d4036bc2b0439a76fcfa3962b57d92c43f422394ecb841ccd8ab21e73149c564c4d93453ba75b6f43fb5d3cdac73ea511725336472eac3f28dd7836807242592388887eac273321a8f3ff244674b99dfe294e9bace67422fb46d7a1ba7231df200f9c30be66de9ace4cf62154b228e8f23d3f86331905cd7136b54fc772a08d1a581989b702bef9facd5f013ba77d2fe9d59302f633d497862d1adfb949c0957fd48c8e7e02beacac8b7a060b47689568c5c6d916c0dcdb8daa5ff8d41114831072077d2e5062262f96c82220578ec0821278e00046447a38fc92a0fa7280d9ec7f7df7c1a4662147c8e31b9d2c8ea5605ae84a7396438c030aec790f727cd66d246a1192b34134c891c9fbccf43fa7a3eb76c2a947e73ef878bbe0ed3e29ea7bb6b1081351f40c31c9c3c45fe6ea9c9f8e962d3226a411369650953a7296d81988f4e0eb1eab0287ddb614caf623a74c917d7560900935ed403762051975d503b24a0c89584a456d9fc3f90fecff8c2b993ff56d53f2e124346f44ac44978b8ae94aa42a7acb9bf0a3ce9e39207accea19bab902ed9ab4c6d3aab6c0728db3b105019239ad5395e325f3c77367c45b3703c888c4d2d9652db9c431ba7299a810a8977499001fe3cf37e602ed938eb5042c8fd37df12da1182ed1ea012e9c0864a4f6c1a0d512e2ce3947fba644020968d8483bdb5d828a58aa69b5da10e85af4049b4424a769c7006e13067a4ed492f625eaaabae8c834b7e8baf1fd3bdb8e8c2be5a71ef36e9bd5c3ecc46eb31ca4179201ebe4af8c33b299831d235da81b0cbaaad0dac73500eb8b4b0c4ac84b90bc5caddfd72810ae6692ca87b072ce9db328ffbdf074d4cba6b8537d3556a12d5344dafaad03b44254751adc1610de71f5f358f4f37040bfc6400fccad4da96665427fefd41c36addd1acf0626342910d851ef2bba8b2819b0025e868034201660448ddae3e5c6e1ad4b75cdda421202ba913d69060ce34c575ec6ebb41d03df08a5cbc0c88034b6a3fe74b8407295f34efd50f9c289ed936ed202c0726f0ecb157f4a1002e0054b671e14259924ea076f2652f6f75d049cc5084fd4e94162e3b91c5db200f98ffe691aa096440acc819b03fbfc57000c93767af64b824a6a959691fbc8804188126afd7af7a90484332944e1e3764775acb9207139ab7180bd6764226fc962d5eaf16aa3ae463072a817df5dbd9369a69765507d79996afdac87c74cf0e12ba73c34bfd88f440a3510f6fecc4f9e1bbd28d14591ea07f83447fb31417a8c6c585a339e3ab423553acd4cf18819ea18f8e894ce319902285023c7367acf23e2d0e26f0569df0d7248eac4d7800d9695091f6364797f6c3c0d287889a75f62a530a60f8d8de8c172880a329aebdafbc46aa82589a85bf0a82434e9b51420466d05662f2ad45e4f7264076382222d67c560e93f86f0bcdb1358531149eeaf4d291ee286df74e991421de5da730396e5e604f4202312720b080acd901fbdef8cd463d3706159e1fb7294b36c7d19375848a2776876bdb21d433bd234d019a9bdd978691541b89bb80edd89ed2f30856921f1807fc8b0a3c06ebfe1871f8c958d9e626b3b797d3d8a7279ea9d19a96b690c3af531eb5dd6538116c8d11d96bdd6edff1538a8fdaeb46cdcc1bb3c9fa8bd0498d74cf418d1b50860359619f310f38baac5ff0ebde6b1727d53e221ad813cbe7db5b64677576fdb74d878b6a34eaa6577c1ea86f679ad727c2efd3bd25e780d45f7aa3c447b49f8b65e77a5174e788c3642390b2e25dd7284039c7feccb12197f7abbaf1a9bd533385bf7b537dab1c7bda6df89350299726abe3aacad8cbbb7c149afc7a767032c06c5284d25a0b04fc89e26002c01eb7242ccefab2a8fd7368cf7e138834819d500a3e829a715175d1bf047b8505ad114ba428bf4ebac01fb00f0134a0fe9b1e7289e752ccaf17d3d32beca715ed8a172d2233bc4aa6a470e900b703c31725fbbaa129b7a77748cb5f78f78ff9a88bd72160f353831073969a7b641c2d657aa31be159faf01013f26d72c2edace3f1965fed315e3e7c7cafb0b8e793f488256d799325744e508a5d80a0201fd606be91b1a15824e51e846791c93a98682e745aabdfda70fffb054ebcd573e64e0c51e721678e69936e991c1bc71bdf75196e1810870eec179050a30cbcc0dc35490757230f6f9eb3b0debccc27e117c070c4fb01a7096baeb3a56d6f4140d97a72f2b2d624fdef92c81a063ca9480cb7a1ceaa7eaf8a57507f53b25ce85167213f87f1abb4a671f5d68acbc99df9b750b4c0a5025a8059c2617b62a5deface7d7a6a87214b150b9e48cbea231bd9c800fb96f3bc6036b033883eb9e41c00775bc1a597215db895bd5101238e866f2363d61a0e2f799c65fb3c889acce1959121453e668e93cbac71829244add1f46d3ee3f39549ded62bad7a10789bf073645d510887290b83790e6bc46f5832dc49de90ab1f19d1bb13fed8d582e5bfb51430197de72ed7133b7a5adeb561cf4b9a27bf028635d7569ba5266628f9bfcb7b253eb7572734b17d0d4cbc63e42c68853cfd8d25b0669615802f2d92f8c35a93eb2ff967267ae65f2be58be929de8dcbf3ae76390768fa59cc2a5884db01a58e435ee9c72e1933a3b805052fcb27ccc1d0d3e788a504979759472fbcda554eb91455e473f00f95265c4908555a8e892af0f31ce2a90e61cc96b6741d936deb569ff98b0594729a3a2b665931a39ace2a0dac24bfeca60e1ced52e12d0473927faa2d1021fd180c86908c0c5d28e9d8a8ed4e12341c61dfbe525ea623920d88d4d80b1ea728c540b86f744931d92a8558215d372496e0846cec06c410e86bdebcb9881d02acc24803272fd3bde274704fbbef95d9121a7f332aedd20d95a17b65ea1e22572c2db8c347b7b41757feed0d6612c89f8849c334d95a96d2f3cccf1c1ccf85a2ce21735e234b0d7d0c5d73a68619389398de5b68aec85e25c84c5943c719e0772087dfe8f9578abd49caac46c3f064635e639828f6584daef97fe422932226572bab44920f1775581f3a4fb78aa362918f256eca6a58ca5b06ef21c0299c9f258d3482a460d18177e1528165d7c577e90789b5a07af4eadcdf776ea34e87cf90820d217b16aec87c89c24988d413553350175808f8096be1d519a3b8d289084728ab7bdd063fc7a3485b51436e871fe07a5bd6cbf7aa39d19f3ae15a63a2edf72489b6377d0c7d0c2aca3a729d8a1c0f0575be285799fa97de0c4858ca7d835729192ca6a97426764b45858975bf484fc3cf7db7218bee001cba6d4fddca2f95b692f95f2a64d5fe79e802b9a98b19a9cee6da80287c61f6f4a1754f408bc691ac084931c4cac1b37a5fbfacf65281869759535bc138e678ad35c6b649a2613335fd6bce2ac8074043024599bdc438d6f12ff7c5a29f0c5c66df419edd480b81dc59d858a8ee0f57ce617bcce0da81d814f11f0cc05e98c0f599a5617ca59c572b4b84681575383f19a24c9aad05180f0a5da8a82d9d95f861d30ce9a4d7d8a71613f75706c3a9685e291a09b5ccd441fab2d666d9d8b4c4da0febd13b7be5b722d6cefad9779fb1e9acbbc4a347b3c702e08f6f55447fc24af8da49f5fcbe472f71361723f03005a9a21b4df8c2b939dcf05a50015bd7a3f10ce482ac3b32472b970abdc41300c71b040b79ee3a30b8ca75193687a76cdfb4fc49218ca72fd724dee15aa9a24bc78ad7a971933ce87f3735051bd10330452db784f83ff70bf103a0bd6e63659d210c370955a54c4acd3017fc98b0d3ae8c56b30267198f6797263ea6624cfa015c4f9d28e5032746d9383360cc509381ddcda8b462671d369480e529b8ef4f6e94cfe1a0486d4ae3a88712e9385d7e858089635137309fb7b726e51f180ab098c7c2bb2f676af6c2cbf401760d452f8fec0e30d890c7ced3206d70ffce8a05600a1f50fda35ad3400f8154e4eedbaa3c08bcdedc240d2c676720400cdfded54a85c0aac8fc0861183209084f733bafb5c5de75b6d002d79a572c3cabe5a88785bb44f94daaa07457b14c44c18e34132df572a898c0682a17372dc2be664bfdb0f19a090a91114abd9b895ff1d36e7b70a1717b20a09cdf582728362ddcafd703f6653b57755ad5b6985dd5639eb46c947c9151d5e97aab1cf720af2fc14d9d764adeae58f5c08065f21dd4cd4e6e49d3831426a938fa2231f4d00b57655a5669d0897cec95df0e8aa6ab65bfc78e7f49157b342bc2a4ba78f72f1c4f13945cbcce962989d0f1b3d0f2e1b4f4cc6e071975814f4b5a988d7077223a96da8a2bc20b6073750f6429711c50f59b4af36ed600f2cc9103c16d78909fed95234ca8d188a1ba4a702338b2a52e4548ad5645afa290a604528d10be872e551677a0b72c21372fc99330e310f4090dc7e092e707856db44730733257272913dfeffb698e154b32ba88fb94b5e0edfc5efa3511778aa3cb59a469a6c7c727c6d303d73c6a6d0dc91b0a29639da07ab6a29e10d4bf9ecf32f7644e6fde37230304ab2a229c5234d6392b9a4db2aae34dfbdbed5c9b89aac4a5df57805487255c8b30bb1fbee7dc0ab459b2608be48d832b4323d17fb0f4eddeac8acabbc3024fd6731b8ffe2619f258012ae73fa6b202def3546207bcbbe7a6c43589366570ea1b87860de604555d13a6ac9c4e34b82970060573930c6896403668aad01721fdd0b98e3fbdfe9cec3a2bdb0c3dc4ae525952b67349570fe7898558d11ed72c1441e85d594c5527883d675028222c3cd6c51b5426365e4b80a684fddd0e8721be41b5a0dad80063ad6f34c4d3416ffb0cc13b8bd045e99f5777258a5078132bdd62180b70b8d3c640756e923d838a741e0df9affc85b984ab88e39be0edf2f53b0da1e632a2fdb880d8d347b9da4c336d225acf973e1fab57df8da8beafc72129add80a7205985f120c1c4f1ef4a8cb4d9f95aa7ec666fabd91462a790262be3663e422731347eb58c2f29f5dad3c21e0b9e2d3a12d93cb2a50d19f2755b01e3d818f3473dcd38f404d70b875343e382fe1208619ee2c767ab97c34c94cb72b2f390afb9a98d85ca9d30d05b006e9bc90dc434e40ca5f855814e5899b50820f78b16ada83b6a8f1f80058b6d5e37ddd3a4bfe99e3786fc2742c2474273542534e0fc54e0bb63ac09a0396455fdb5e526922cf4163514d3a178eebee1734972921f092b592357021c88442107fa19d5cc15b61d473f29c3832a49d52bebfa7245353a5f58d77ba18b77724f02f076e5ccd3cc8a9adfdb0b20df44ba8165aa725c6707d4821838ef50849625be414b0b115ddea76b0fb2f640e055faad57064ee32727acaefe3986dae01a3fd5c16f0a3082542722a77e734f7e039bc48670729711d248a587a508cc6565b1707c97eb3b8ecebcc3cf3500a3f22be74603c87242a8e68ad5e6cb31af9029e61f6580ec83ec426521cec57b6f6d324155a8be15f5109ed64c6e0f45ba065370a0d11687e261d044ae14a5e8f74ebdc7be879d72478bad8bde488da57583a84440d08378f29b0b596729c4435ef2eafd47dfe347ba22d5e04d8c8a31aed7883076e168ccc28d0636a8ffecf9c40885a72037927246491f086b138ccb04f01c7095d4f49f61a3eb9d391c5faa304392c5b6401372bfa8a24fc6a089a8baf908951ab9c365e3caad80f5a5be0cbdb884f14d6877722b611b87389334af8a1476f2cab7b25e9ca2242bb113d77d82bcd604201c472452f9148663ffb34a8ead13cda98ea821557686185450dcb796987f6110cdb872faa6172ab401c51e3ff5bb46581534966d43e07733f47cc945f0ac86c536c062fb7bca7f867739e21cedb8f5a2e708143c4eb8ed8a2e04196e1b8feb4506975eb8205ef635e8faafbd5cef830bfff80ca43cc846730d35e35ad2a914e572e172c739e181ab9c6abec51c033f7bdbb7cc7cc0009c3539fe544260eed992190372c772ec3dec01ee71844407502e80fc93759d6d97f53ecd12108819886e60a972267edaa1309d1d38b38910f15b1c5e3875b80ee322d79c5fa44459012f9181722c4bff07da53f9f77e50154e64ac1d199eff8db4d8d0f950e043c65fcc7b15728fe8ad6d20a0dabd3798edce1a066081133cfed57837866dc3916c3c2856a7721e45c275522202d446f29b45f7423aee214c14f60f0c8bfede0bf24551a58372e639401c6df4679d21fca52eef24e0ddf380642f1cc3656f110e787a26ed5636a4e0fa52597315621a3c2539d37b2b68b9c146e5295c60da03d7a0b1f243726ad26730a058f87c2e9b93d1b3728cd2117ed8f5cac3fcfd31dea3f8463efdf7729244b691c7cc8d1e93497a5c07f90bdb36e997c16cb083517ad10ef272caa91157114583d30558bfbf9fd5f2c5b5bc033a0fd6ff752c822cbf929d1e5b9bf3662980da2a5c4b80f2dbb999514d03e63c992538c42da631c26c966e98f7372a727b1fe7104e5956bd653b6a4152895c5b46aef8faf7406ceddeceea786806ce05530fbfcb0f18f2e98897fd6200e819f865e910c11f7f6bf936b96b0d7f171972fe23d4951df0d1968940e988ef4c51d8608ff59c07362ac1d82e586dbae8817272901a5acb906a827ea5f205078c754b5c9c6b0c5d93fb8fa7e01f69d3fcf9627dd3e2e445db32ef5bb5dbd607821b2f866e53b8c119cb5097387729267f2422f2bf8c592291c7e87135d9e41c25a0c0196d517e4f171b25bbc6ba26f89328724abc2e7a9c091170b1f0ab9a305f1c2c856bfed7ef1dc684f57de4ac4f434472bdd745525bdebb0f7fbecbfcaa7083e28615a36a3f31148ccd1cda31665cd4728bf537638772fd8f6e8edf2fdc20c6c3c02caf166c0e62fa561b45067376924671cba255642cc06131d4030955361b89ebddcbb1d4250b5a5c51a72ccd1393723d4ec32b881441bff3fd975eb52e61e77d7ce841c0049ef703c9dcc2a827d972532ba66d64919779613e9879c8275cb6fbef29f1b90e59fc2785bccf87ebb8725fbae3af4f3b60dc232b122eb22f7fc1e2d841a4e988f947117ff1f766617d7232de233b76478070e344bf008f46a3c733c54c3b12f06130d184ba894e97f26deab123d42bbb6430fe0a115010d6a94fbe99d95db2263fc9f42f22b5236446729fc77f02d91e0850251d59fc204852efd264ca0e0dbcf0abb6922ca1b82bc27244915aeb3dd5eba656dcf54682d7ec2eac4d122ce32bb2630145e59a1457f35877fc9b2374419152f70d559a5f919f8ba58f8e459e3814eedd90028e615f682a059266cb90f49473b1957403d5c4b65663021412ea46e1d1ada060bbfd09bf724b2350e53cf2dd12bca43adb3e79868178d05721d2725bbc8e05339c31380372840ac8f1cd9d4446d8416d59e0ffcd98bee88cc79097294b48772b4b6aea236b38b6abba99837847a9bc9db5e4ef439c8a0a1c6267f3929379d7b71d939dca729a5e54233721c6c9a7057e00f391a3e0e84626e5079872f3571b8789e34af1722944260b6cde5447115bcf24ff60a7677303048326bd4ca93a0d78198eeb6172266fafc29ef7f462ff7d53a24faa11a231d723d8f67ba988b1d75953b958787270255a2b3cb50a6174df2e7f81480f37daed01d9f91852bcede8a4019b9c2872d086915221fc7b9e3a591b0291d876163a9160305faad828c236cfd90e17f36211c43368884207f97fe33cbbfea2f7578c87589951e7bb9cb316721ba7531653d54b3b8d5ebc95a5e70f41a1129d1084002f385cc24e5cb8bcbea13b46b8e1325ca722b12796d5ad86a3a438415a2964c239f43484829773c1962123fb725772517ddaec206967acd2c2548110c59ddebdbc220ab26e3f4d6f420bea037de1266af1da4b52da0e0f8857f239221f35e341a9bcb141e7c537501e3c693a110e1041d287ad2fd22fe5c71e8b033122f10890b8bb4c7b3345bb915e51ffb6f2e8560ab0b1ef0a552158feb3937049ae6cad4486d2d2ca2f1d010ab2f89cee28b50f45e438553f3fc3b097700dc749781a70212dfef686e489c7fefb8414db32c772d273940b64aea827cce32603af30e581c4513d05ae38443bcd289cd954234072be02f1184dd16b871f031053123ebd9465aed2a15a6e0c03986d12ee573008017921512b023c7f0fc266bf643970893c39e411a50ebf063c955c69386f728c72306e3027707246ef6cfbe283f7861786f58a9a494aaefca6a04d1a0f9f19c0727b718a92a73e8314575d760ad2e0891e98216725d341bccfe2330e7a0252b100d77d8c4f6755391ae5fdffc6ee47757271df036d9eb73b57dbf410103c820772991c4d43c94107c06973e32060dbe90699c66aced1df7e933a75691faab696723814eafce4796d5996816b427eff779afa686db04bc3146b11beb2306c48fe0cc29439f8cc8204fc193542501ffcd4d01036bf4e1c54c9cf45143dbf4b5d53725d8af727bd52663ac21c16a3cacf0afcc7d10671b6c8c0f15c0c2537d714017253f497e42ee3eb599dc663617c7f9b76e8a98ea9570299cb435f415023571a727ecfad5337949f4e411c988e337320e49491bd74500a42cc8ee219599624cb35fc0d6278dc51a789c073a3ffb1f6ecdaebca82af486ff792ea07a7ff50acd472c0b94f0c726e5832042baa2c7a0ec707ebc8d4fb7f1f0bdcfd0d88cb4ac21559e340231639f72a20b3e8159ad06f2b10352484053b5e5d3ad321393c9392fa7259751eb8078ab0849b61270cb5ecdd561d0db386d1362981516cab8305ff582ee39a6d22dbe5c0fae0c44bf3f2048307c17bd149fceef340b377e7be4d88c30afd23d1d95f5474c9f1afbeff1d0ac68b596a95cc545e895b28610f63cb461b72bc387cb0e592125c856bf525b49b367fa8c0f9ab150eda2963b9cdd4cb32be72b906f9b609ba3e07625df72a06d02e36805f7059cc1679c1789545f893da06728af3115f4a2ab6a9381440ed395b0ad7a04f874a8413020f03acf4bb98476c7207f5d267ccbfd35b0961d655ec64ddb4f7c31d7a18ba8ffa4b11b8c329148d3a019735492b98b94eab926492c05018cc67e8996e538b2cf6f82dd7ad30fc974da3566465c9c1ba7316aad69f74b0aea56e605ea2fa3a1678e2e59ba997fc5d07c3e115a1765d800cf1a953f088d6db301c78ead71434ea3b7dea4a4746bbc07206a3065aca5f3d1fadeddd1e7e1c77b88cb0124fafbd32f25562b2fa95a495518589ddd4e044e79cc8d8d4ac7f40f30e465b2545634a1db60d79a1b2f47ba3722cf1c04dcd28ad570d71e01b5780059841d76bbf687e5515794c4d52f3ee2219e3978c98e1103f15ce36c46e4a63ffab9aaf408ef00ffd69932bdb5283ec9303cb810d275eeb8ac4da46e9920ba198460676bb4de2a3aa997d4d6de3854b89728bd65eae717689fcff07d4555bb02025c5613d93203427ef6531004a2b723d1c83ee1eb72524a190068a621dc5d34b3ba86c5a6d1bfa8aabec76a2257db4f73b0eb6e71191bd227141fd61f0f55abe2a77e200efc576aa86cab4944560dbf072944253b5210df46256227191e6a151550731dc946d967bd41458748caaaed272f7aa9e6854ebe598b829ae3ec4197f01d606a3ba4ad7bacc4d876082feddaf50a336833f864ee20a35dd5172d842d9f830cf57db92806e8b16ca4b57a755000b01225146d4c73f6e8edea86888cde7802868931efb3899a75fb74d3a3b8b7672b6da864bfa9806dd2521309d39cb485861743fc1bfb28f8b7c77e588c88f4b5c59c03fea5d6b4d52e93b59ecc586a032c374500f821115bd279f5a17b152f603099674462191d8838d2a9749ea26be5efdae8fe8e2531880045ea1ca4d193d725942d0574dbae61010928b3d4c46529a193026ee7ab92cf566186acd1f42af722e7b049713c6572f87a0c6fae6247485a1d168e0ad6f2e264ee188e87086f02efa881d71b159d7f17750e9d2196d11229779ec6e63a61c4d94283c104e6a905e91fef0cd5ba64d76a993461488bb6132c9d3c0dfd8ae3b5573703290b782e915ca2381ffed25adb755a2deea4df095865b1c34699201972ac5266c3c384d5a72cfb0fb4271a45e01d10dcf77e2e015aeec50849f7fecf3af9dc57d7fc7df302f4955b8c230a9a98c1b8821efebe8f7c2f252e52889996f788d00bfe4ddb1b931af25ae0ba65654dd33e326542cac9b4613511bb6002fc471dd57085f678e47342a16d7d650eb260c673a41e54291ef0b6ae24340a6897c7d70f9efae705f6a72a0c5c62af5bb312a988d5509a64bdd4ddc943f825247a812601ddf2cc337db72e6f5579d52114dad473da364a2d1854f144f4fea8e45c738bf0e901ece11f07294999b2098461320d43a455f98f7fdb50a877dfeb376535ee3855cd248bbcd714a0e30c13c40c9d1a9323db6dc307162eabaf9967754b280a31e33c95de6037280ac620f731022e0d9b7b3af4dc8b7d674fdb7eeeb7a3a36d0ce9fbf5a9a426ddd614d3f6bee1cd4518672cd7c01f708da75fdf56d54f1a6709c5298f128a272ae190e0b0644e0410654d49e1b4fbe6c2460c12b5a1ef9cec730211871a4d5720cb8e9c72b91096cee9685bcd0c34b4c9e2695dcddc925e087cd446371aec056fca963ef52a460476c422f648a19eb9765391b8946ee9c347486745d8c07a77209433ca42605e396598e3c7f5b173a0852f26b3bebde16e82449934738a2c772f003318177fe822d1eb022be178a0ea70dc336151c1b0885bb9f2a29009fe0728d167d752dd56892408ce7e2e9ed8df2b7d8e70fde403b375d0d84cfdbf4d33965d479be0b0f9149f8ddddbd6678c7b0068d02ce073461e9a599906bf07cff2842f0d9d291b748a47fb383c531759e65f923d3d5b1303f264b45ad619c13677287781a45bda7342cc48136bcf3665d8cbd818050d5e42a1c210c2ae900dd95725daaa0b2388efceda53a97dd29cc22b603419b6a0d1179e4d61e97bb9a16ea72edea88b0a59e2f598b28369270d04918d90b3aafb8115a535b3028996aed5f374a80eee63726eefbd970c1bf08e73246ca059e02a8850efedc4764d131fd3872e1416b5450ed0f2461ae5c4fef66e1fbc069c5567f52c7e567defa403e3e0b722b33d4cb1e59850ac95e30e54bb5614372601464abc9a6aede0136cd85b75272c1717ecaea520715f0b5a27511e66e24bb47ab5c1c0a0df3002c278685c80b48e59f94d30f508ed3edbef11820ba253e03db27bfecc5e8e26d1a2d7d21c7737284926d97be1d70b6ba98d809ae1dea0164d55d03be87f28b355027845a6010723bd1d55ce9f448acad9a11b169074ed8914daffad679492216c2d258691781724d421bac9d270ca9b1f6bbcc0904f2e21f9dd1ee95ad94dfbab2b4e63e53ba30ef8d512980b64e5eb645d147b558a86f05bd36dbaaf66533960b683bd9b823622f3a65ac6d6b7d389b78e81a2db26577320f37e759b5d3e464719a0f390813180c86ceef8310df69f0ecd86e61c2deda83b00643bf8805218701c559ff59b8715dd9351d000f352b393fe43b5789a45bb06c1cf6dfe4b3b722f29bddc2ca926b03780737b30cea026b80288d63ac4290794083bc2adc85562ed57dfbe6a08b7257fc7aa7018525c71e06e895e653f7182abe8ccd9868330f43362939d02ef3241768cbb193f59be2bd55deb2f76a4bd7f9338f4d26bfe0c87cef4c6e02113363cc4c7d44aec9f9a4ad0f748db86a93fc043e9ea87e42f3bdaaae12066d8aab721f973cf7c831bcd42023a56ed8abca2dceccfefeb502fb049fbe15c816fe5c726169cf70c80f46776d86600e4aaf1eb48d82757885d20ffd6fdd46808f76de4f985382adeded768f4bdd07304d3461bb9ff9d9b42cbca0cdca6dace4ac475c0379470a9ce59b9020f1103989ca34259bf72dc648eddf01e22cfcc000b1d5a6228cba51519edc2b1d7e05059a9787119eaf40c97d74ab7d60fa63d75b9f4c8d0ba6fb8152c80b698382a29007cf1c0e75efb70b4040879a920b3f1284cd9c392f9932b68bb9e3f2a71625d03943fdc8c278699ec2c4bac03fd2dddbbb8aa61b725958d9f57fa64270197c5653f47428fd52656323566756e172960f7b2acda87240731df471fa15b83b894f8b88ab8dbfc0d09f4b05c6e5e377f65ba4903bc072843375f93c35ec98a8c7c8a901e62e9bb08a237428070919d0899cbba5cf455c4ff3a39fe8d48bb64221f8107a42e4250c650e3aa7f76d0a706d406a9de415727faf05539d7f7ba860e0b929b752973c29053888193fbd829bf165c753435c7246ae8585b6da6c4334f38608d41ca8654afece11caf9dd063fc7319ea5d47c7215d1e4db49d7bfdd93725ddd089c97aab4f690dda4fe666fde8bed370056c57285917af79caa998021f93fb4fc385983177fb13292b97a263eb108b9d0493a25271e5183a81ae25297a267cd426928754a2f69d2da8a36bef842773b978b99260f4b8d8018484e95b63825799e416ae87217e08fdf296aff96ba0de9eccb6f72e4abccd093595694f7000e2b517b157f3a0d4d98cfa84166957cde309ebaf87266afac050ed490d141379a1c2c0bec61451b799ecf875d749d0fa5f5ba178872a179ff7763156af531053795702ac2d4b01ef5ae7990ce157d132a78e377e9187059d5b0d58d3789aa1067bcf74743075c1b47bc47b981f5d8c58047c984b90b32c7ac25ee445fb6cbdc8830178e962d12d3524d398ef4780a9f759440635b57e6e95c663f9585ed1ae37998ea0ec0fc4a1708641dce7098dc7a1d42196ac7727d02d86b3f8127349d3fc470d782bffb62d1f0e426b11d810855af1479a1e104dde3bcc38c10ca9377f44543e8df2caff0c5980083a83a9499d5ef6c89fd350715397b157bfc36b83e01455794e3401a7a895cfecf3512d77d3f8e5178c1d8723112d5bc0f516d371db647db82e2c0d25f661fe21ca17eb442cc65719fe1bb1aaa008ac8f61777ebb1f8a441a6b217bc0bbce419fb9f4de46e74b9e10d3bd50ed35bde3f610b8a708963ca9241b702f265006a77a04120d14f2d68d76f4fe0720d5676d6dad39d8336c450e04c1ee8717b7f3907c0bb58d4a6f84bd79597a9722fcd3c17f6132b4d96dee424e1daa230ece74bae466970b055d96df49b775272b2c2bb9f36c44849554f18922d7e32387dc29e929a1ab7b04b8aa658551c7272832ed1465faa974fa47fee464a6439c1c3896f63e98ffa89fd031848365481721b2c546c5e0906f24101f639c649a88de40dbd0da3a3e3a65e49bce281b05153961aff413cbfd28fce9ca410f1439e5d6ad141038f6d4c15c9a9a4baaa8e0972502d83dd921b3a6d3b84979e3a6aa8fd205887c7570d18ee6802eb452709f41ce798a71265eba5817f983ca0b4556d1445ed5ca5ba472296ef14cb58fe9d0722fbe67519f61edf190350abf184a15cf11f1561e8689d503f1c5f9e3f0bc10972ecdaaf2e9057b2f0f8b6e61d5aa40095d8fc0cb60ef13ca3aaeef844f228d54ab143046ad59f6a66fa6a5fa57509a4a05e7b4928d84507ae6ecc27d6fb6ebd4632d35ff5a7ef43d53ad7096da8dc1da96bdd94e056577d131a825055abf64e724041ebbc34a84e8345580f70057d17747c0ebf4205f76367a3263de2de604c61a659c72662211cffc5a0bfc693f5322466f3dfaadf2f09650b1a77705e083a72fde415c3689b3ec82afa1d757222e8627a077d070b9b3db8647759bbb2918b160c9e058bb57863bb6debb1ca260dcc22bf822b7dd708aa13fa70635501f7750c0fc2cf618b4fe7afe64ede551c7dc0d74b9c1a34b0e5a06bec4935b9a15b25723d5f7b681337cc15873724540d52244f41dcad676592493cf292647455466a5de1d90f40afd2a583dd841f039552d1c65f7473f04f3e59491b25342808911872f9fc0aad626c53569c4efc93e88a0ca4eda9ce4887e9334ebd65e24317cfa77225fc0e7038bc06d3bbfb1f4cb670c3de7d57c62578bdd8e56efce88ae3b90872b0c02ce4a0914e3f9386d86874fa9f0ba101bcb925605acb1c22011d6025ac72885da4d31712530433cd6f88c69b5284f4d6f59c936a8cbfeb55a5d2fd73b817af76b22bc50eba6f05e4dc8469f24ae780300716a963bffcc16b44ec001d447202166c3cac24095af91ab0caebde97cabe103cf206d14ecdc2104a519dfeb22181330539cf17301f54ffeb7a420e6affbef817fa017d20cb0cf35bf90faf694a547131d6f9e644c275bf0abc3574a32845558abb3c89ea45fdded08ab23b76725ba0d36eb5b8ae2a3ab0cc0a07ac4c2ccd74779798b19061fa51180ef44ef472492a6791cb7620e80ade4b6d10503f87ba2642b0ce5bd453a45b586d9506c3727529fe514028b30ab2e5e17e2d4aec0e33d8009c74995fff8baf540138881f72d37fbcf5611fc0389fce11e1bcd3f1885ff5280a11508e4fa47a993d3706067264ca3482b02c8692cf98acc8821051677a668818d5be7a2888dd7196630a095d30de324390e554a1db5141235e55bbfb5751fddf70a8fae23d758117f71a35728774cd26093927199dcc9ae2e5ca12dca96d81764ad3f3cc7493239ed927ae72f515a3fc0938cc3c2682133e58aae3ab38f0bdb50f9eb2d7605d304776f53e72c5f3ad63c27d38acc03c452141acc363c17cfe7290da9fc3baba62b2cf301d6dcfc4626014ae8f5e30694f604412faeba685f19a44b7db4c036c3c6c0540be7200a02ce0d34154fb1a5ae890b2bc2d5b6cddbacfa47a4898c35bb1920bc57b72eee32c48e68673fa54d93c5d22bb85a1a4e957601b8ecdd35b0427d2311706039d910344561b615406e7c790d4f50e37d95c0e15fce5e484861114fa88abc62e446cfb6d682a6ba236e30972f3aa8c76d39da31ed6a24a60d3244e3d3476224580c9fa86f7a9adc2f237785ffe656a74a791b45c486d833695d68eb45dd80a7254b22996aee8bc1d6cde15142d925b3ca1a36d8f48034505f8ea88c38963eb72debeae0f7644044484b7187e38dc0366d15d1badfcaa75febe6603620db6487261375de9000951632fe62e52fee48215f960128db6b7fcaa6c06e4b080d2ec72d1eb4e69d012f0feb858dc72a9ca0c208973c655c63c7cce9f97012c4a0c0a7205367779e959305a653262d5d375a7b13226f0b22df8da5cc00795a40a01cf72f7d1632be1a5ee101b7e7ed7abd22655c8d00b49457c6e18d30f4425efa7e9725a6bf4becf0e4fb4580fa7f33bb63d7513ba7ce013c6f8773459e164b98d0463ce18c168e1381d8a75ddf4b78d6cf334c620b61be353dcd23343a03cf50750720ba77c380ec4c9d1e99f80642c244f75bb28e9f12e0b154aca0c8041198d873b6b759cd3f0b00d14de5633def16da25d09eb25bd1ab79f8ada2b9be4f3e0fb72a1b7c23b78000f3301d91b5def969e849963bf9888c56a50f5f4df62bc73cc723e6254c90302d17f4e8bf8afde70698ea75449bb6ee6e3488982d219d6974a666ce77dafcb7a1ae0a50bba46e09de37c9f00bce24835e92a026a9a46cdee2c724eba973c407ae9b4b9aaa0c9ecb7d9fe694b1399d48e397781dc8b06d6b78172522f3d00e4a3a33be11c6746de23c7cf7e5c8bcf4381d5ac8ff2643eeca6487281d876b61c01f314c375af87b83e6db54ac6e7d7ded504af8debf62bf575f76511e13377009a6cca6a642bbda096f1ce4cda5117361426b13a77c745027a78202a77daf65cf82cbb1938b0d2abddbd9dc2db6dc133c4b9c966da1e103cb101236cb0a086ad499f0eca9a944acecd8dbb620e4cb5379bc23761c67293193e02720744cbab1bfeb91de044c82912045efe92f3858515c74d7c1df08f457e9d4c72b40969b231c62d4f1a7ba97af160e3e9cad772f9f1297ae15e2388f559cdd926fb26149a0546b3555f9e31d174184fe47e60a5d1e9adc9e81ab3910c2cd7b8727330f94ad99583d06e63f0d7e9a2cb5b9b7d1420950b78216230992e9d261472ef5c73a8c61822c87a59d78b6f1df6899fdc95933a94b5ed5fedd3a45a33e372f7eeffb10a077f24f29f16d6e2a7eafd865618e104f3fa310c980969464f8a6610c7de9f7c54da10f939fd9eebfba6b6578531b3654f86690055548beebfe7721f951cb335bf496b437ddfe3ba1fedc95dda90c9b2885b22bfaef60e08b10c72ee7e179d8bf1777637eaf0fb1bdb462919cc7221656d44c8ae696378ef15cf7237a0201b585b1943cce1ad04e4991f832fe7bc2c5ca6f0fe0ab5813ef99b7f722761f4a4979d1d778d66c1de075a3fa6a3de771b714e6f9fb8dd862e4e68d672cd8d75e7a3e419e7cd0c6b4893b939feb5d48f95f8e69eb0a5cb4b38cead5b2a59cc0bd9bbd93ef1f60bde61c3a7565d727f34c0fbcbacca72986809008b795116175cc95fe483c8b39de763a66ee517d155faad2aa6129bf9e2aa7a9456e2729936a07e52c53a7a3688aa7bad1944e41ba23da32e6d68037d75cf80a45124728cfe5e8716200cabfb3c67945b32e6ab802ea5213ef8c8d29763de59f27cde253396eb85834c0ac6d7b729f51e9fb5fa0731670f83f71d6988937fa10940f272f27ba35406d40103473977c44dcaac323af7129f3decf32c9e56a24766580c08b6de7967ebde1b2d9aec2d2f1ca27949f89d39b13dcdf0437dcd313fe7bd4663b4b88a82334ed279d7ad5ed89a2bb9354c02f3524f5f90d7cfe7aae569e1d661acdcd74fdc749831e6b089f1502465d9228b195ad02816310db4fafed4f2f3721706ce21f614379a2362027da2528f0c6274837189bcd261584d6c03fc496c6a8e0d2d2777486550496a1d1547cc7bc6001e24c346041331c899e29214f88872f3a420f40d13f21d71fa3926d19b14870524afed4381bcf67ad048e4028a4b7226d0e833ebd884d410c18a1111d72933fe33a628c1aebf3d593cbbca7108d33d2ab5d1ad718dccb92528ca240bf86b5b0f094fa5c956356b4d56b6f8dd4ec747ff85841cbbb080547db92faf1adbdb0907fa65c2e7c6c30b57c9ab8f7b09677037051387b17c6caebf25f27b58ed19f8818e99965adfc975fb0fa14c1583a643c5adea20df03f06f741e7f19f08dcf7811b11f8bfa947ccc4fd0c3987ce4ce72c526604a0defe4e0ba4eaa57c5b6ee0b9a889ba66265d20ce4abe9062d1a65726be4c7b631196a2db343bc14b8d3364054b93281bca8bd3c3dd29b1a8db9b1064ba57aac56550b81b015e20cefac545b92f3e473e7571a7356309bb75fc2974f62bf79e5169fcd82aec25fe862035e244dbc74f330408d9471a4aea8b6333972f49df54c2108951b761fc8f81bd6a18c6e076e1a45d9446c8ee9a37367e4de72ef70e12ae922bea4d3464e5b464b9326eff530316f0d12730361e275982954399e3ab2e13f211aeefd04379b68d3806fad62fc527eba1ff6527c74e4fd18db4e00dbec2548f7cb4d736e98b76d48c2c9cc325df55b8dc9968e476f080f362e72886edaf606d21c4587c69ba11db770d9127a8f0302e6f95c9d97922dbd43377249ede682bf8f1e38dd2f1eb35daa29ceedecec72d3a3cb4e651c69090482085252c240500dec31eb627edadee076aed3cb50a135b7d22a8b58cd43f1ac99a672b98b834cad6051dafd1c8ffb2003636d21e8dc64b50cc2ea7a76041c0feb557294bf2042e909855b4f74750bcc98c3bcccb232cdc16d4816d82217f561239d0ebebe3e278fc918660da15745bc04c5ac354688d3635c2dd74311789cdb25984bc9e99a57e590c555fbbc56acf5202d9acc42b4eca9de53289a9559f85571b53d0bce7f0da63269a5ade91fbc965f97d5edcee085251beaa301f3da07b2cc070e7a03d6fb3903b36d4de720df7eb570b6030082ad68a4473a5fd38be9215533727040b2c0b644aa09cbd5f1fe751cc9852ad4c667d2644e53a7953f4052b7fe72585e1bb01cf41221d9648db5e81fee886d880e267b55d660efe65c6ff0bb210d2af8278d43ce63ec4fe828d0ecbeda48c252335649a2a3495e89c9fa017cf17231f8845b2e0b4510f7c608da2e483186b24374b8ed51d31c59e993b1ba6a7172e9446080b699c8fdaa5b57223ddebec7c806dffa9b0074cbe7efd831bd1ddb0ff0acf1a7caedd9ec68cef0895939ec4093c53752b23debd1c27a486140f45c72078d5a1ac0096cf80e33893d93173a31410dae309bab8d89eeb269d316d30d70d577a16c1f34a5e6e247d9736a06b46ea7f89f692ab3e8d581e7b1a0017dd465289f653ea930666a4908380b97b1d8907bd961050e9c12db7bd89dcfe825343082f888711d6ce82b38db66d9c1d7b52c9ffa55cd1e5c23a8fa92caa2fc33191468ff3773f5e56383b96fea593f5c571be2fec4391b644f3347687fbc7c13760268efcca9b53de8a4fec7c718af87879822866ce0c25966e535cca6ec57240061554b5cdb04ad7673269acd082e3cb42f5eb423af2292889def8ca90ee51eeb7247a253cbed81a20a12882f31a01b1a814e25bcde1f509de887f5577621cca5728bf4273746528aa32e47171f84d774df2ae1a981f2155ca624a3cf0a50913f056b7cb2f2a382e241398574deb5da083995a0c0a44f90b2ee4ea25e17e500f83d3743aa078164c8e7fdf7947451798191293796f77afeaebffbeeaead9c81d03d37e91e72534741146d4bf8be769df2142aa7997573abd67d37f77cb3a935302154a9198bc2efd923582f07e1c9c634c11b6a601f75f4cb9a50d5df767a84f944e3c21f21f5234ac53cf6a14cfeac7e46b1dadce034ebec6679e0634f52a3f55c2d577e050a8735d169213e3468cbec76ee2a435900c6232631598d8d9a441d3b2542faece96dcce5d0a2ccb03422fa2c5af4a7f67a050f3fcb9a1d7488d8e2612d348856aa0e3ceb06bd4d35af798eb6911637f279ff0e20758bbe4cce3f4f724db59c937fdeb0719486c938ed6511c472d27d53b27f6cd30c66f5f386fa4f7255990aeca498ed31f21f83442f07617a67aa4d8220e54d505c58d9fa0006d172e66a007338b7e668c9b78a40d4ac8c185d4bcab1933c9af41e415b47243cab72414cf001bbe3d63761b7e7626d758f27dde2acafc16fd506689fd4d6fc44147272eb00e91e271fc84b796726fe7bb8cc954c24da56be22de82fa3a0e8632d5724ea3d00d38a7ba49470f788c9b9c4a64de33164948d6376ef19e6fdaecbe4b698d66a005e11aa41d9c33cb945b9e45a84bf6e03db5bfaa7a13fab46fac52b302552866b6fcd89122858500b04f354d5ce5225575b0253394298d51621dcfc772fd04f07897535d98ba5e2bc4dda5f50244355fa2960d3c0f0db6c3533f0fbc728f5f718ec89539dd16d9218751d5826e86880daf44b016b31d7c6173479b767215a936301bee24db90aeaa2c7c8440d8ae394e2f9fc0d30e89b12f6cd482e272496ca48dbba94e010d5509cf08fb461d8334be246599bbf3945f3b8e76ccfd6896ca92711da145d1bc7fab8cbb43f6894c44b17d19098934166e50deabfebf722add78422226c79a1b44c934f4086f90532e9edd098ac7c4b29f33f5731d97729fce1a1232a9f0ac660b24706810f72e8a25ea09b30e0cabb4348e02565741724e5dcc56fef6bcf29ada458df597623523027403603449f8a2463330f0eb8b22005730641cad200146c33ebd7ea1bb5254360675bbc2edc01ae977ee141d14027f41d49abdcb993bcf15efb847a368d660924a70fd4777397a21b8823a22e11da7940aad657c969d55eb0dad6c55b93f588adbc450e779178874f7c61b92597222e4f14a14179bb0510554bcd86ab399568a90aeebb61cd99d0e6627417c8343570d20fee2e5718df460cea774d5987b74e1e8111b5e944f2a3f583be97a090d269345453f49a909ebd123450a9cf16487248d8efaa520433c7a56746cb8fa72594c6c4f444115255b3aa9d41f8ea974c714634884aaf829ba4038c8ed2f3d724b7251fe7b8e610034d7efa421fe0d63acff2a31185c79e064e7e85d79944372976901fda69aa44cca76f5ed0534b14b17952c67525ed9df9ba4b200adc8192e95ce2b3cc083533f81eb3da5d17711fa3cec85c44fdee5375dedb4ba2faf7543ac8ca83bab9e93b106821742664a417f51eb754979ec5ce70a50c6b9c8b80172b24932620656fea87ca331cb5841f43c1b568fadca708df32b4047fe6c1bd972cac8b6cacdf4d493839ae9c8e79fc23dfe63eef93872ee3f421967a2d372fc708ea3a6750fb24f80a6bf5c07a678757aa15ff48adaec1d287270c3ec0fa73a32ba0e6f643376d8fc3b2114b3db3a0d7dc0bf25fc7bd4b41b99e54f6c12cf7b35979a5c4abe038b9bee2d35d469227982e73f074dfb8e85a89d5ff1d72660962c3a6ca252acc6272087fdd57ac3e7328832c16bc7516724f36aba7a0a6a0db872a8e978b7f3d4d87e07f763c22961c85de8a556c8cfb670fe9569c021e2682d3a12b93a147c074aad070e234e1b4ac40cd96a5bb76edfd4cbb8afef8fa466d3612b6e07de0e2ae640da2da25ab273d0d38eb9401e54144e1dbe9d61f3407d1529c50c7090489326c211898200f4edb9aa50f72b92678afcb82108bee3f51cd1726c4b74d8fc7e82d6af65e037eb4945e7501049d9c5c5f12d36e93d6c1f491972e053822d36fd4c3c1989b904f10ffe38140ae3d9c9037bc7e91fbc34fe92e772fc3a1f79504a164486ccf4b2d7aeafcb9ae6f3b2f71fbcc6858a89a99e600e724a02b7ff480839ce03294f15a2d15533036e3c4b21b8ae107c6cd8274d429272eb80cd74f0c9d557ede286caa41a589bb3f1a6e6418b296c0253adc2b143fc728078cbe7a3b0526ae6610ced6aefdbef44f3d7e1030cb58f72d7655d52c88c72705a44acfd1dfb4e680d852ec6aa8657ace280614c47e0f8d6f9f7a6e94857722387a5f12c10c24e5bd2eccb3be7fd49e82d851094f3c5205718bcac443384456b22b4d88701763e7b40cded1ab3377ffa8be9f99c329d8abf61883043f08855b4cccf09e3509aead46dc7feaaeaf3937de1a6ff4c0540dec90df1c577477672ee83b0070c717c4e1b81550b8fcb57e7a39ab5e3c9812b4f42bc731091929f7217e72330a7cc76f30cbbe3f1ba950f9e6ea168d96a44257b98bf8bb16ec74772250376e9863e88f7c4719becf96da2afdb7c5745086f5fe9b7989e65c4057e72917164944118e4861ec74d3e220ce18f7e51e67479db420d9ab96b1072882e71ee537cef171c76250a81ebc5992d258fc19459ec2ef984809556e141b23cb244adc1da9bbeb174dca4bfa7213779450cd7eba5cdfb41342be9f630b4596cef3ef822df93a0db9a11d753ccd87c8ee329001c9ec8cf97e5fa9e7a76de3442f50320aa1896faebdfe452f1eba0aa3e5dabcff52688a219539db49c3adce059d4726fd9f31c26d0f27f6b8408da0d8c21317cd13b02554d0a9800f9b6737aa2c272cda4fff2968a0850f0fbef99bf6ee9d8c4e9f86a160cc48d5ff93a9ad829a66245f8fb39c34a3ca636105b53a853ec275164d56a09bb06e6f427a45437dbd0727000840f75cc0419be8caa345e8b369b69eda9aea2ba7d952c91d4a697a0fb2ded57ecd93ba6708eb36c6633749f8cdcfe84be538f8a85f92eeebe28a003c652d6d50e3b522b954213d50e0e7e5f3ac55cd38a9338d40874cc10fbd4ec8cd772f2fbc05797866bee79fe1b8773d440e5b5624f625c280ff34c594a8d8d52a20151bc342c89dbcbba446310ae7ab9cb8bf46b4cd547ac6ce40e5ea4d316718672ece16b5f348cee2eaa953f43e8836bc8c45d6f39b66d7b6beef073fc51062f50ffc4dab9e595312848cbf90c559b0b5c10e8173aedf1f1e05c4d608216edbe72c18136406a135c7bdafdd7e6e62421aa99ba97b7b014c6914ea3832662808d570bebe0860682c75abb3459eb5aa8491d0d28fdc8a4d56ba2c9f8e35236de41261792f8ed3904b2e7d97731c0d02107c1d6b2010918e96aa7d2d479694ff23f17f294940fbf21f04f1665cfa6f7e3ab64b0413525afbebf486ee8ce5d0ce3d319ca86c96efe869b01a1bacaf6d302cd6fc2bc04503da14cbad308b8caac9bf913dc095fcee4e00c2bb4ff6fc38afcb078f474666cc220479351e9fe949f153a729401f7b9b23f11806037d99ddfe2f4cbc83593649e932a1c7ceee584cd7a7072b5e7cbe90ea5866638cc1aa85ae7cd451e37e751ff500e5893629e2726578e727e2cd441677e5aa00338675994a9c64881b9da4e8a31d68ecad95ca8233f33727a508549c2d687a38c50ff9f639d2057acac8d8e95a2f1a6b767ec41c2c766293a1e3b0d02773ab22892a8a0924209b412d1594536b3a769f888f95954309e6e355a82084990a26670c815dd4b429f314f0fcadfc3b3dee35a1a0d1165de8109dcb47dfd9c75ca3b3b75fdaaba746790ee1bc8ce01d9276ca70f936cb5b3bb09432cfb25b0f3480b229e0a16df23c1a5b2778e6d8cde968c61a7bc2634f5da72fb4d04e9ffcff6c33776d8c288488e297adad8601fb916953c2f42c88f128a727fb67a3a3a2d38329548b8258e87a9373c4fc8f06b87058e7b55697721db2a7292a743563232eea2e65f3c44c015913f2564a6599a5f44e59fc0668b58857572d5679e387c65414eb123a305c04d737d0446007f3922d34c9b67023bae475c72f690b1e640d4a0a84d0814c2fe16e255327740ef2899fcd17f4370e638413072fbb1900f6e4b04bf135d7b1ee4bd032641d05537e13b1b2a3976401204af85725c835e65344e74505185725b125b432e253bcebde21727bc1b534bab8e3dab4a3d2d9183d8a4a6500ed2609753c2778e19abf21c4e77f016a0618ce4d483320a839ee89520e6c782229ba4da0fdd00122385f55e94d27e3a5e5430e69fe5e3293169435f0bda8fe4c445e11e2b3273b24cd15a12dd6706daccd0093133c3067241d2152771056c01ff87507e3da9742723236a434ad91e584afc0279e876752110411dd9ea2276a10217a2f901fcb6ffffb9f2108d9e0cb38d6fde7a4251a672f8bcd326d44d965d83d2e3b4bb4620f5a59dd0bd4004811f6b084356ae8c98729c90f0a49420cb815fa86b16e7183a216218dad980c5caebc31ee83d29283f72b0e50ed9fe952a3e1f68140a59669907dd8e78bf859a9e7e04a6a087c9485172a6428c67038b63a7f979cd65117e2775500f4d2909a4586030d5fac087bc0272ccedd50c5d74ebd267abd0cf84a1bc72d3ef023b310d846d74c88220545d84723e598cd550b20a9e26d02353d35fcf2762ccaa7c081a7d17d5fc7262a7a29e71cdd5454541110b7724346da3c198509aa88b03db1d3031c51aa02127c462690b505770058cd8b89d54a9e4a113873c121c6fc15ef5a1735029bfe125fb736072c078abd712b6700a16f66aba2cbb67ee711281cf35821180cc35a21d7d3f737292abbd93dd85bdad41dd5743307c56a2ed77d2fbf58a5dc2bfef72159a11b47267cc7147ec079080ba9bf0291ce96e706b1628e54cef87b2b944b672c2c3e172418ab2b150f852950136596e2a767576f2a3c82b5fb3f7daa6029f70c6a1df7203067cb836847c102a76dcff3d30f9c93ed55c4126004e6eb06d8240852e5c1a36323d2efde90c4488f6edbfe0c15f9f0eb865bc8c466b4684fe3add7c8b396fac99b53897bd57584902dc46e0f3065e569563775dba55727ca8134f4c69b872495e25e62d5d7995f6c9f7ae305498c62f1183946b9fb7410eea985810be807299b56d914c30c2b25f37fa81950bdff9a240f600966fda62337e9d2312ad9c4f41ee4b0274c0c6137343332af71062be72383637549e5bd4a2556fe30bd78972e170177df585d6871dcc9c5fe98c92037fa48bf900950ac9348bf6c3065ba8727bdd50ba06439e2a35b5dbff0a33b978aae0518269fdfac094928fa478010365ef7ce49d629195faa64eb64ea82686a4050e959d1ed60818644f2ad90cf21e72a7821cc5c9f6283c6a7ea77519a9cbb9f694ce623cca55e7d31fa87bbd1c13724fa656881deabdbd8f0ce8bdd4786d048a71249600256c7d1c08b943a4ea8d72e7831982e6de480d7e847c577d1ca94caf583c27ddeb862d9ad16265e85f824c53f64883b5a189c7c3a07f35f0d6511e73fd8adc4d661cf614643086f3d67072cf3dc41204724a58d00556792e3f8ca505630ac1007eb77d8279207300d7b9723021634fc61c5154e43b91514d0a284961d0beb175b25278aa0170447d89ea726136a63bab66a8b6886df800d7895db9540d5bb6531a9833e709b0d438843747e977d5e2ca19c833d3a6cc56fff1335c4b67cf6e8ae26b00a3671d93957f0672542ebbcb36b5c316cd76c3218c9b9c3ff4689e8a75396f8d401686c2132ed072fd293102c7eb9abced31e315d2e415c91f2d1e11f8731046dc9c2b5755524672e5c454268ccee055b44ccd59235e7730a992f3cc0c39397c6db1c4e8782b7e720f97c3783b991cb8172479c833e9886b15576fdd78d1b6418882b333d3c9d9729948f212e7be98e710b7659fce1000c5801c02b83e22223a6505b7b4dfd9b672e8cadb23d274610045a00bc828063b76c33d11b3aeb4880c484dda25d2ec876e0d67311ec76e8049b66e566bf90a192793a6f9695e4579b63627b4e5fb94d74edca244fc76e84ea0e9898d6d59690e4105770c8607ac9664eb493fd475c15772253bab8e920ffa817671179799b667ec4716629efa67742b22df92dc65282d6ed7b2743c044b717d0b0fdc0625b3719188c62fa97be0472248d12e039d2a4c729585095c42422c933fad88898b8673aeffadf06ce3c44755463f58fa18149b728512b52d317744a7a2429e63caf864d1820c4fc37f282f0dc99c8128ac6f1f729d529ff902b014ea9c8ef9fcf5f19f71fbcd85a5dc85bd56c8b78c0d065e8838725bba6d90e65ad151c8725742ea5abcc645a66e294b2d0309ee10304999e753d77841274413e8795817bfdf81ffa1d5521bdec89202510835b2d98c77a1130236b5b5e3294cbdd44e4b050916fa8855378430c72abbefe32fe26b960423ea72e294a3cb7b490566299ffef4411c11d83af9a497e39c6f8caafbead4b4e2d572eea9d3228357d3af5538e1459fdf3173bb678b43718d92329006177bb4ddc2727786e853b7b353e6014217cee136cbf9bfaf589aab77dd2a220698f17c929e727a2dfdff13e326229bfa76e018f5b6769018ac18e9b3efe4110750735f5a4d27d442cab514a6e0a4e3a6a6c8ab2f7dadac5a3728bd7582a592af8c2166c10672797f18d969c4e440e2d924a0e8edd649c90940b75da56f4601b2038344fac900ec29264df894dd0358ec9dcb8e33e07027fb0dc0b0ab4aede65ef2fb7168db40e32cb8969b073d8b495e43062f7a84e65f699c57719aff4414825dcec1ee7e7281a158f61ec76e90d0c16083e9b5b2486078b774f6d0b5f1dac20ddd3fcf190dcf35fefc0c9b6f0705fe2dba613256e65809baafb786cee4d15da812b5f4ea0fcfeb48298b50c1a9a40fc8e49583cca6a573ba4610aef7765fec5c85a228ba2c4b7e131016163e81a666a534729c731bb9bbba1d884ba114f7d55b759a05be72b9f9d99bf3d6b98dc702b9ca29370212a60f21807058370902ddbc6a73b9284c4fdf35e8dd177355013e54d2071694a88abd1ae79eb886980a7bb0193e7e4335286b248f2bf247ad1b310e7b05e9f6bfacaf5b92e37e56d613bd450c065c724a6fd7aacaf7561e80ba100c6f40a13096fbb47053cbd1787497df213af868cf720244ca3a73c4d9e7f901b77713fbc9834cc8dee01322c56f3a237ab74d431d72eb25177416c8ae575521432ca983919fa3543b029bf8042fb575406b1c84a0720fded20c1859d014b27f91305a8052cc7343e4766ee027af6a60a24f4b203636bb6f70c440b1af0153636ff2608d1e131e29d45aed04b8547749d628b6e3270ecb75a7acb36b119ad07821e7fb565c0cef7933b619ed04ba46eb4634c24da272dc59617e3e3723f7419457197953117077fa6c99ef334e1d3325f87f55952a72f116ec641a719c572daa2b4f82c6ce6989170cbabc9ff865295d532dd2ac8e719992dfe45972337360b517867354202aab254ee534a5615e9898172c94349172c29142f61d9331efd01c6592f1d38534794ff03dda5fd42bc49a3ae38416de72897116a8c991abe531a3489aafd990c0724950966d69f948a9cee3c59772a872229252bfd60117b4d7d11d670db57ac9a52a16c2543d3c6d4cd341e309dcb37204cc28e4e2f4f2071d9c1a6af74d886c8c797795ad8cd1b355a0336ea4282b72da1f752d0bce2631dbb0b9dacfdfce6bf10b4844c965e7930ac91485e810ac72fedf4e837c5dbc6dc8e61fdc02405ad500c38de0a3b0d99d9b9043addd59a772d4c89ef48fab8bf8e47f0102d0ac8de2e7cfee3724b2095958fdd570107a18729a8d5bd27592dc69292e73905514b2d222431159c27cf0d01d5c38c1064a3b7267a11cdaf12f2c355d9c7bdda11e19978ad52d0722ca44a95f72cb27d5e42a728c1dda49135086f51156571d28fba5e3c5e7096db4df107d1d6773a89a5aa37278bfc1c3740a10a1bf1a6c84df7445b7c65e93b41a1592fd05abeb832abc9472c6f8a478e2c66cf0ed291807f0e83bfe1b2daff541ecbecb8f992689bac6327278b158de25324207e4775ba7a4ae64a871db1c46a887f79fe4b69634292c15728b0f75bbac33de751ee25ce7d4800c0516bce374aa4eec3db89e0e1c8dedd02a414f5540a6ff949694b26b95e483ff17dc3b9b66723d1721675cb72e5a1ed972797006944ee27f3b97e7f4f5674ffaf79645e2aef461a70b6dcc0e34eecf64726b82e4250da2da6e2d686f9ba687bf2c1cb414f5c8b9333d1a4487441c88fa3e0bd0e5cb0e199d0fb9a93db2803610f35d9e27e6a92e9747687db539133430722e89ab11da9c60e8c1dcca221fa27869d0383dfebaa484d9994acf795857fe4e8a50dfb0b4c393bca85d0d792d1d7c8a774d0af89cc69315348fd0a2f3dc0e0223438688e0c3f7d724751173af5912c402ac77ca81faaeab6f441f17a3c77b72f1a46ff95192ebb6bb00e33509b201a827b6834211aba27e08425f72c3fdde724bc268fbe019c404c6611569fbe203c110e98c9f623d6951272dadddfe435772d0574af5a1ae0e1da5db73c4816a28ac6d0c233d99f46053d97e2a4b1c3e76729f7694e7fce923453a4d8bfcba2c60d179c5b8de01ea4ce1f136744ba096b57261066f6db3ca41fb248826bd930210e8a4a1cab656c9f71e82feb4417e044c727066dad28f46c2b8201d7b227aa34d6649381eaa4769f8f0059f5739913ecb5b92841eea47697e1f4c3943d9fad0427f81dc576cf918959e31ec027d1eac4b7274eff819a186e39bde9c1489fb036ffcf6a429cdff0f574ebd2808dc8839e5726e81ca2f8922f5d596dd91b7f219b9f5d4fd147002735bde0935551c934f03726c31b12063d5169a64677307928536f171bcbfc042e9180c62cbb25b45457029a2f50b51b062778b9c67cdaf948f6dbec5385e6c79d81843b3508f9cd12ed172f4d6a1ad90e501b1cdf2e1ac22c3da5004c39b1b1c55762c188fd29df1f06b34a6939ad70bebbb1705f5bf5763311304e781ac8c10fdf558b71f995923c22772655b430fcdf5dacb037d688c8d673e1d22055075368bfb10fd60adc83cc59c0351fa32f451b6ed25eb7a9fa7ffee2b6861b0f409b7b04ed23f7e4d4ee1cba47208b0d1c2f9d7b4cc5f13cea07f29c9d4b528964d9719faa3b3c8ca662a0d787278b586666907e39a55f9924d693d94c118e6dfa5444af30f0a3a2c58dcfe78720871743d16401ace91428cc68f8cce260cadd682a79f3c99748646f3a68c405a88490ca48b19e906bb27b6ea3331dd83215b722d4b6def02cd6b2f673695f81e8dc366784ef6c3e995d93766e41a0c492a9277b362f419331b8d0ef15576547245fb171939820d55b15227db70c3887001243a14444938f3ab5ffc74711533724388cbab0a3af28a78aafb98a5139c023565bc2e97e6a166f9cac551ed22347224f53e491e79d0eac6c08b5854a95758b328fbc07fd45f59a594ec3f32c5700d5e3f6582e5b750d5d5c27f5274923dd0bff76c6ab4a8d6b6c7fabc45298b7949795c42e299d66bfe4d6e42bf59a8d4990e265e2b1e478dcdf9d59337ff261b5e961939f4a90bfc425ed4f6fb4ae388782cdd30754bb68448f41a29c9e8cd5443d85e1b56b51d0c5d3b42835e858d963517e4ed0abe00b7998bf16d6aa1d19258c18bcff69c0fae235849d5d830c45b8be1887172f2f41d229aec33f7e13725724ee64cae0d2b157c1d12bd93ed2721394883d423e4ff317a38c893934afdab7205e9def197c9193de33e67dd2115bb3107d2c75a6050dcc6db08c01305f32c722b70114c12b06a47fbe3a198d4c5ed9769560ba9e3fa0182cc970bb2e21229721d11652150b4697587fe3190a3ca3da3ce6ad66df836f1bc49023992702b7572d6d154de3fb8632b8a93d619719443c040a6d38e135204dbd0fa2182aed34259e31b7134f46147e47ee42ca412026ec31b7c3cac2bb2316c9fbeb65aca3cfe72c9c50249e0fbde05489dee8924acead4902175828bfbd1255af5ed75661e705ee07d775ea1b37304c6c71b002f8e27b421e525c9843c3fa4d3ccfcd94cf84309580d5ed0ad14146440ad14460c68d8c626fcda8e9a81930209a500d8eab2805744dbdf4e803556e502d4c529f7d06f7186f19ff6e5cf11f8443d6439442610725de4ba9f462a4887430eab0564fc25f33659ef1c279f42f2f040021b288f2d5b98c399ad4dada7f4b7efcbe313d8bc83aa45ab95b699114b04480155b7dc80720edd90eff3401facf7d88ccb5958a24946e80937d1c65df8f6769c6daea1bc19ebf9266d8b3c2af0ac00f02c717b50f7075368762cc43ae292cd34299cebfb724e8a6d8c110cb5d595f8e8285fdb898a95013f9549bd31f303151a96bcc76e34e09ecfe16cf067395ee51b9d5f6a1afb09512cbc4249b4bd360fb0d0c789b105dedba8278d19daf1c2c39d595457d115b96b3981d72c328c2411e6a0c329a7105320cc39ed9b5d9a0a7fde2020fb02cae55525043a649a88c513f6bc23d5207276cf17dd58fd379beb260336fda1c19628bdad7df9c6fa56c8fd7ad64e2c297230d1e76a36528c25752b67ab973ea97816951b046c5b8aeb9265b4ceb4f6c31032991ce3d64bc12d6dcf8e7c731b3566dd9e58a1afe91d87dcaa7092909eb70135a0f90a28b45b15c1554256ae2a534bf10f33782d91c2b2cedfed596154e54d02d8779a700bb40a8edb8801920461bf7abccb441187f384d15a36f31ada045e62c940b60d80e7aff16db4993e0f15e43fed21ef5ba88ea52aa5fa70a4325028c33dc6702c0371bd75432573b6d7c7b3c625eee4ddbda7b861f88e2f6fbe1b59849fece06e37c6ab50f8d6ffecce2394c225ce70d345b326302694de9ffe3f2490252ed8dedbd97d1c6e6d868fa1a4f30095fce3f509fd6b17a27758ff53f0640cd548bb42242a525e03b47aa2f8e659376b797ca6bcb5da71c2a54f8e214e22ae0b1d50bd2afc7f0163f150efd8a47a38216325abedcd01ebfbf7784c2ec472e86b3462b52e3240afdb7348a0c82d38ca37bd6ce7e07c9596daf938f64c3e0f22b7a25e59920eda4793017c2243bba6f6445a670e5587dd3680cf07a597a672e81868b226b930d5f16cfaf11ee6114234fae483159b9a5ca4c1498058d2542f74322128afc2688d1316ebd00299d34442a3dab297ab7fd6adbfc5b55f174c10aaddf508630c006a923f17d84cb43707cdba51288a452c40ce99b14ad0349c72fb474396136024685688b74b32176047e35961cf8ff481ce80a2d32e06528c7246f1a0cea8a06a61582af2d1fa451ac173e081decb925345b8a1763a4fd671722d5f31128e030f5b25fbaa4ee36a223338a21e2459831c4375d0b572d49d9b727abd463640c9e2bb08c4fab6d1011515c05691490f225b3728426ee228ceee023c3dc8d17e70175d60b56a927375133cc69c45fa9522c56dc5dae20b5b8fbc4bb79674ad23c07c681a5e110e1b90143dd0e7ed5f275c3dbe02b51cf3ae302c50ddb6bf8a446b328c6bed19a4dce9d1871ab854219fb6ad8fd206f14bf2b38c7279ce3dd9ee007802e8f56421b2062f8bba062dab27f221d982b44464e5357815a72d0e279b3123e98ca4dcab47c70c2fc5af54787c5c41341556f190ded7807215ec53d141b21502353f141f90c414705cd6f073f704264f1cd4eeffcdc5ef72239cda58bca7a5287ea0aa6be38f191a31910b2c034e909c53df6163650cef65aee250138ac318989ff74345042fb38f9b67e74fcb46d7e8d6b3906226e670508384af25d54d2cc40ed72239578cbba05499bf6f583b403375f4ca8fb58e70609da521ff4e9cf9b3d24b78f1144696facfa6723dd82f963a05a282aeb0e62872c8c7d001b966b0b0cf95949c38096d7c7d1b6b9dc31291963a0b234509e9a972c74a2e1cfa6b1c3dd09ea0a61ded1c9c3286110a5a569d7b2e636c0b5bbb4b41cce62b93aa67034e59443d570de8a5cc733aa5474a210b464c45156488a32972b96275bb7bc50abb1163827eae19b4ae16a3ab433446d05e20f6b21fe08dd372acdf74880adfe8e8745f4b46da16eb0964d81bbf55c5827d6ba9486b453c9d7293cf5dfdd61d0259912f72133e5099f9ad7cb95adae007c9432a6d328905f1726569823dcee5b9c2042f79370d08a3e120c020c2d8f4c03dc5b290c1a7f9cc722b8c379d798e6e8dda693b44ff74e4f4ffc533d530c4deffb3f4b5736a8b3b4a1cd1b469b45570a04aa97ecc44745c7a0f46ed8e8869ad9e4384804c4b6f306e8482b99076a5332c674c310ad4238c9f22afb95f741dfd0f98be7be0b8675472cdf411baf013d0a01990c61d2f350991740cfc4037312eb39ff112e8f423d07217e86267b3978b8bbb25660366089110a37e898410ceebc57fa0aa620e0c4972bf1ab5351f4c228cdfc210c94754b424f192807117ba435029a64ff6b910fc72e6e8eae1df9eaef7da77a4fb41dc9f1c7ccd7b27275e9b353844b6c73712041cc092883a02f7beebc45d7b635854265d8b002e7723f0f12e96cee77fedc4632f49c4fa3c7c1ed8c0a7df8fbf07720627e8a0f99fbe425b3bb0a961c89d722372f385a4027fe24286e4bfae31dbf91510c3138d036d291f5c40a861d1d1ee47320c6a208122c91e2d85e32da77597202131cb3c0c218c6ea7acfa2780d9947e5e758060eb4e6be3f496ad0b5fdf8d657a21caabeeb84743036fa8e6fe4e7a1f502d8618f64aa47327cc8b88bb598157a61a4791f6941e8c76a081a7a895165a727a32e70726731620d52d1e91fad0b27c541f7a434e4cffa783d4b78e063aca7285df8891b465232f396e7c55b74e5d650e2fef6bbc86a4eec2390dfeb95bf272b6a965fb4d49cc4c1ec0ca40429aa2917c2a02b926bb59eeb221311434c5a1484c05ce5f306d15118ef7c982885ecfa385a2a13c71e7d578f22c4675d5e79772931ef771096ef23e02860f8206ea52fed6fe26965a3db14339eb6d94e233d27254d7113630b676faf80b5af84fdd6ba45b14699d43aa8092e6539e6924a3aa727fc00158ee73b8a040aeae2cf8ebb7def934db8b48f88873d327baca6b53df49f0a1499f6706cbda08848ffb9d2639e802c5252cd4dd49bdbf80798ee802ab2626e5629eb2fd364604358b8d38f0983a04a0cf5011ef037e24e70c7dfd55217232e08daafbd7f9c7a06af9369f2c106a008ec86d71203be5059ec0d9373966699ec748678b9b768dc4eaa757a8f7f2f31fbbc828ddbd4044d6ff348347aa0942d1417400166fae45553872357b9b58e921eb268710597433a02280a5623dca7235dd49b9fe6ea0cd869918f66d4df93b3a94dbaac00abbef42d0d3a377fe047256ceafdd8ec67a77b6df79b70a934583c8f2d87c54f350931da18c29be38797298774d22f8c6d101546d00a70a9beb98e90dc0b19ac722ea3eae535f7c65731cbaccf7f11662421b49312c9858ed2ffcaff00ea2a4ceef20e88e6316c5d41851226d575f7a3cdc92c612d54df27007403bb3fe685e0d70afe2a09504033f06709b15c0bbf968065ad65351060223f10cca7384ba3da2896d012aa8ae799d166f4f1f0800d2b2445ef1a8a71cbc41575d39c22b8c635c706e7911498dccf6e6723383a8e610b6d4b5009ec4e7e59dce87816b7a15e98df6110977f32a81f633727369ea60521bd1d69fbc9a70dcbcc6a2b919b540407ec8fd48afa635f3e6c01409760f6d4cf5af8266b3c4c12c359bb2fd55fbe61229b24c6b498577410b93054e11c4c5f2a99ff482ec5d8d1164e9a832c709339272720f05e687bc00d3bf725381dbd43d89ad84856fef2426f6d87790713b90184a01f2be37107c6e94d830839d93ffa2aad6ad1b4c687eca21999652e44494a4f6c3757a55ed2b3f5d6e183d35d0f9833dfb22a7b9662236d6be698a1ee4656fa10d372e61210855a64d356e4bac48620fb14f1ccc08eee1dd65d00d2240ab4106bd9b49b73f340df61c7235738bb97d254cd4f149bad3c3aa5cff78abc40f6b8fbabf4eba329f929c2472c15e7cbbecb62ebbc86df636094966cfba48091cef923bfbc84e81b741a57f5294abb26bb1136a79e837ce963f86bbda24ffbe3879da804da9cff71a519cd6729e12b2b38c3f569b13a4ef052828df21d8ed3139c28d501e43b03bea6d5b227268721f8e598fbbcfe39428ea037dcc295eb4a63b74aeb28538488856742dd03ffc2280ddee80d1e57c0a605e36f3ca4866b3afd68be94584f668deb087a4b20de3769dcf9f2c0ef438d01b1e5451f5f239476bafcf56eb64534be204a0766b61180e1935e004b30803e92e76ac358d8c76fb3be28ea67fb39d1fef34886f0e7286e6564e276c4be58e796a9907dc57a6ab38cafcca951e0672b9b0388b7f45729dd6f1c687a24865bdd08fcef080f00f122278cae88d30b3391a28c6c3bf24720e2862008f87580c3f50aa9ebdb95501f5baeda74e7f1cdf6ef766fe94efa26d71296f3b912f54c82272868c8b28c99e3f23257908f90286fee581b6d82ca8143f1a7f608cd6874016155a68d4747a8071acfb4aeeae866755d60d8d065236722e931589a25c8680104886d0f3b6caaa732c0d12dd6e1c0aeb30cf2ce86f4e72ac836415b8df074cd33d472e6276826f645321c34aa6396772a550d7863b3c72d0785d0f2f7dc22d70d3973265886831896523a00ff4ca845adb73352ae01c2e155e5a1909f8c31e63f4bb10a3d48efe7671eac9807eb86e2f8cd1ba26bf90184594bcaf222bcba75e7dc4b9277d8d18de9131b9c9c6b926e7ca82bf5fc8a44337766f6aee9446a7479d42e6757896e0f9d31acea681044402aae95e71e3243174d1d0c5747a8fdff4c8a3419b0247d0fc5cf512389d9224ebd50dec30c9936f82d9fef66423120044e79ca6445d0cc7189fcbe0706dbc004809a86154ec8772eaede7f4777905744319a9a4b1adcc95b0486c998ab81d5797b9c3fddf1d5501f5a7c23432c7bd37f5da5ad63f91506db8a1b58fb9f9ed8294461bb8d23d3a185de435e21d3076a7aff13630f93dc188a78de6979a5bac32be31975898e1335f5bbc8a802da5a03f5e9a946e00fd5f556df6a48871202abd66152e21c557c9729d701573c178495fb09f76ba8f898f84dd2ea88dbd63d298a4395e749db7bc726665e6a2800f9223cf7f3ee6aa0e0cc800f0ffe6ebb4ecad0f98be04db242a6ec23ecaa6a1c24dbca7766aa700f6eaf3f2e49a5176c3bee0df8b0025074a946e62e776f3174fdb1e925da2c629ba422c5348fb83c5b69050dadbe9bc5181e4203bc685e5f84db52e234582e889642177fec2b830a909f96b0ece6a251f757872c6cb3789cd47cba07d93fa70e33ac976df55726c1acd98e52f92cfed21e33e721bfdd81d4458cce9fad25e56557c763889d16b74fb0bdb1f918431c453d09c55eea3fffef8d00cb57ad6de4da48d55acff9449f2249de3dacf0e1e9ebd6fd272a3f9ad17506adf58366ca76416a0f5f59cb98fa5d6559594b3795401971b7e72f3d7b46aba19e31a7c3da455f1d918a4b1d4ab79e0e2f5d74c8220b0f6d8b071439238495c58d79b237321a5bf9cc67f0c6b3e368d63b039897a7d9f9d001359dc32dfe314892b7051aedd0cd3982d0874674a4b297d8379b96c55bf292b8072328865177fce715890c27c7ad4bd0089eda711ef2e0ff9716cb8f50dc5502972ee52d67f5e481396f3c13bd95b206279706beee72de0e2f3c5034a7e10174f0d65852a45a8dc42219544a8b7886970469f20635081fc5fd403da275cca4ccc5afd03cd053283ed99c56b659faabd2b529158be4c34aaf205ace79e2c808de30ce3bae0e73be538defd1337b8fe492761e6389c118536a9f56b1ecaae0a8dcf122ac93304faccea11a776b94c9c72c324931d8c24024a162c535bf9dba051ab725416301276557c302d8c1e157dcd04e16db9e3ec7a9ada40c9fe1d307b3b477241991b57a6580642ea1f831d7e39226bea57e6757e2323d977b552fd6ed8597231b6ac6adb70509b0d42ec3cebbf11dd2594b28c143a7939647af901c3f00772a6b165fb6f40e722a9c924aa04aadd449aafb513dbb5b63141ce6041f18f8f72387d9e445edc72b7b929c8ded6430760006f291697bf1dd278737b8ecc03100936ede73ca9a5920cc4a692928293936d3181b985024dd01a90027365546f6e64923ffa5ab470f1980f874780712ada800199286d6c779f3ff0fa50d7afcefd7202f1b0e13dbccd15ae5a29b5b64f37a00b7a48af9778173badaa9a231c6a8172e85c79197d67dc72bede6958a5ff6a0683bc18fe013bbae2c91cad53da55ed721fdff9b5e591f3ef8a192aac440ff4a3f18d10a164c647fd86fecba88c66b9727821206b37d833ff599597d1cfb3239995a7b6f15ce7beafbeaa76935a4d4e39fa114de14c62f49654c73f03e004de6732ee53c0387581f0c8691e159687ee2c6e7000d5572e7dfbd39555fda1b36c7e4126cbf6f622f648f2b21d81dfae687282188445f75aa35037022067b02c15e4373116d2ee9b1c01ecc5ae4967e41d17d0386d5ff7a03aaa2cfbb571a0bf3eaafb59f547a22e5b87fad504c152d272584a5e2a51f28102cb05dbfc75cb2c5701e1854b26ec39e49174d1b87aa3f2fe647d897f7c34a69d04926361e601210c5a127fc72a16ddf0225737c7aab0add0429754cc750b29bb3f3dd1f99813cd590dbfb12501b1bf9f8e3c78b884f19e5b72952daf32c8be259c475687a2d55287f18dd844d3cd895b864f07aad5d06c5072d5c584c1e8f32949ebe8582fa19e16e2e58215f5a6c225c7cd6c14c779d8d6723177731bcf439b59c5d0a67559dea8ffa02600f8b0f2f3824f436a22252f186f84cf8e2550624b2f1d322701a69f18fbb4b081b08afe090841711a4245cfa572256f6e586ece22ed30a67792a848b349158d8fc7ebc07c56c302cb6f76c65f23bd8f488ac0f74e575fbca3a21c6e715316a11a87b9e449c432146b44b3ec652d5b09709abaee725eb7971a64b73edea605960ef0ee0ee8870990745c019d91147079e302740364147e5c8cdcf1aa85431d209cd77787c6d2d91c1e998c8bbd721f74a24ba278db4cebdb6877ea010bcb30be2e8d85ef1030d2ebab5957f177727955bbcc46be2cd33b7ccb46a21e6a2668f977332e653c5d81c88db7e6b95e725264b59825d4a4130b0f4d5012cbc30df24745b2af089f955ce2259fd7566026b6e5ae63ce3d53128da7d015143fcdb20f51e0011610d5c0f7650a136f389d60e5aaaa459cb59218d205d0128cc0c16e08fe7f48f383dfbfa5a857fd3bf23a72d9ec2c13375799f81b455d15cdb66c0068eeb30eef2d1d7d97f11ba5210f7e72f0640d5f27900f3d86a6c0afe207553bfbc480d9e84e04edbf1f8c9fed7025314577f000399d6df0ff4f92cd918711778a1c1f93f44543ffc1319fb4bb5b0f30f26c246bf0bff5f51d5bc8a37055afe320f89ad579cfb473f1ded348640fd67214850f7dc039fd6be9ac7ad462fbfb2544086c273821f0c774a6de682ec330724264ab41711729bad7f4794d78b8693d2ef59a1d96336af3d498e68358866613498f59debf88fa36ea470c88967a6bccc291957162e4883e0fe173449a5ba13cc67afb04c0f26bdc71e239f7d6f127bbfa6369ee1bb46fd9d3cf81da5b060272e9bed9b77d964715b8106a02b02979f30b9509a7cc9bc615242c97c711dea73000b727ad7f74ee453224d01ad2e3b41818a6eec957d8de3fce42c69b0e720e72d5dc16579bca120f63ead8e420902b5dea49dd399a767e2a6984debce3160f7260ca9bf1592343f22b10ee2a69268791339421ec63b610681ed976628f98aa72427160a41ca08d8fc75272a6e11eac086dadde9ec5c4a4ce602562b7b1cecd61b454da8327ebb31f71025fa9d00669baa4fabc5766badd9622f7b7ee21c88d722fa26effde9bbc4f087e15b9d298a6e00a029237547d9d4fb403b8b682ce3872d509dce235aa4ada4f16feaa3b7f81b66461f361a7291a9ca0b752a364266d723862fd87c0161b215c6966f4ec1698db7f71910d6f61c80ab475823f265eb2725bb0f2d6c4b1b65716eab23b44450549a72422a5e1119f2392ac55d2b9379372d48fa5ec91c15bf7db2ec3f4795cd967e9da1cbc40836cb7ab5995b9a4ec01727f644173791ae1832db66510ee1271e19f48d945ab9b5ea78322faf8c31a5372328020512087a4508b5ea46ba7558eb0d3ed12fef4ccfcdfefd8bacef6d7a272ad3eaf296d6144a9403ab8e084d87de704b04f999fea2bc051679e1b406d73728b87db6bac300c1968163a8f037dcbae4ba1f4d5ce277ada1c7dde75f863f11760888b20db37e774748c3b0db91dabb8244743abc80c59f41a93360444e1fc72fb799a538a298e7404726a75d6b390068a0ac3f7986d7a54145303acb19dc57239fcb664eee4f8100dbdd02ef3a15900213f5c2365e6183eedb94d5a633ed9728456abaa7a548190874d5fdd4756dd313145afabaa8872ce38daca50bd88067272bb7b0f997a641530d09b23452f5176a342f3284b4377316324291db17b4b7240f7336fc63249b7ef09e1d0f4bf9878857847c8821efdf594c8d2cc8b8c9c72d94184cfe24e6a91efa7a6adcc6494d0a5083502c1dcc57483d1966ef0846f49f6c54dea6252f1728333405b8ff4e0414285e1ec5d7b6ef5470b4ce7e7ef2312df53c033ddf8a6a5767c30d7fa865c7688b203445398a4e0eeced76b51198172f263f1ee104ad505517e7cc0c37505c254032b7ba83bbd7cebb6b9eb9ab25372885c2fd6e346d257b3953b0c314e3fe455a0783f97bffd18eb55e948343f431022e4178ae4d6a1b289780d50bea933c011f7aa36cf8aa1b0b355fee5ec258a72fef9c5ac300e18ad50384be443f25936c35b1208b0baabb87afea98227088c172a6c8b41bb5d0de247610a2e8da89b7f3659034a1486b64e38daac3beff26b72846e4c5f70ad19bceb65a543df8b46a647a13ec67ef71672cc216924d224913864c5941a554cb8c277ab38d45f014520fe79253cb97014e36de85a517beea20da3994851f904a17556b84fda88813b6bd3d6c50ae3deec69d3ed711a29d17e1dd38d9e12f7b6e2f0da3f1223dc5abe5b72e797f493aadab08fd244df121b4d65cc1e52ef88f3380d8d15deea66ba719419a02fe010cffc3e7d51a4bdc4c14f1967429dd0bc4e07bf6c94ef5762fc783d7b4d3f3eb73e5bcd57cf5d92657315725cfd9c48222164c8b57bcaeab7dd0a10bc0818e48e6abf3283844ba13f6aca72c73cedcbabe099923c7799680a073fd9b71c1840d576ab4c7cc2badd6327f23b5d651be195a37e4da1a1e215ce7d4af9c0354b2cc1692a756b615d71a448327278c47900952459dd606a0f88425d2e7d5b61ab1506f136f6b194f7d1d4e3c07218ff7e74f8a4a7a84bb1ddcdcd66fc084c8437f94c967cb953429f3627b79e1e164089d5ded8308300d0cfeb751ff17e3156897d39e2f9df59aed3c417b55526c42b5d94ea6bf02e4c29afa393ab9cae3df012d5be87794b3d5e7a0fd5603d4d05ebb9d865118d560ce0eb76950c7ae87dbe9fb3c5823c6c80a93ed524c8da72b6927660629d2b7945f55ef62e46e230148511f55e2518a3034bc8dbc0ab491079b3a09a533688347216d0b9391aa1e03cd3a90222739a36b04c6356299adc6c16d2971e7cead60ce2d1b3040bbadaa4a0f18e08102544ca8db8e4629a2d1b72d2ba0bcb505a69d91ed763f454c56b8eb448202e9a3a21c787731c84005ee0024128a7f0cfdcad852eb531ecedfa9cf34bca75ef614d034f7c489fed44e12e724e1cc305bc9b7265b58f717797e5b03521f3013584a78f0106f5a3af3937160cc36e9fe94afd77908258331b0c51b578cb4eac9444facb4e51bd18d2ce97de5763e5a7f3a3dd5503d36c7537e484bea6242e86941ffd6ad52127fc7afd88d4726356183382da27172132ba01574d80a8ac7b1cc79963255b0407d00c612c7e727fb154101f00067b630370f3d5486b29e469c3b82dce3c3cb430a9bce7d0f372c7c8c512e14a58cf14cf9ef347b5e6faf5ea6da8b33ec02a9813d9455c3ad2727349d19ffd0d6937cb6228a2624d7c134fc522460248981d1c0636b2fcece51c752b075f5a1a8b318b52da65423c1edf7b1f37ba5285ced045b7cefd8c6ca839578f2e7cb2ba3014dd3700474e625b4f89158e97c2d3efdf13d98031d9217672f55c612d75d51ccc6ffdb5759a65816a05aae6b48005996799f4568cfc1a7c72b9c61124c9ef759561308ab16b2721aaf6f120096801205818a038c209766f2d94d054fc7328cb5f756ccfeae446657062843a944526138ed47d8787f13d137263ade9f53974f4ff12f0f19a72758d66d58428fad7a7ae499df0d398191bb77292a47294138264cfb0656ce4b013b24aab3c793d4425861618b2a347e204b324518fccb56a3acf628895d53f4111064ac68d366f3af385ccf03e55c5c8f0481aea69fb5c51ee86af0750b52fb4978c2e1109f52c50e2f41f4a92e357dbaf1e72d61f73e95fbefdd49a7477131f2edc0916a61fd407c23e1d660376e1495fa772564a5bcad66c44eca4aa9c23244a69545f8683d56d8ca305b93cc9f8256b0f5bd69a172e087af2ef66ca8398474f96ad6524b81c4266ee294f9c310e5a457c72571779df9608ca2d1f2a3dacda960b4c98188f914cf420cff469cb726d71256ac334615b862fab6c9603f7b3691dc0fa98ec7bf7f74b000a659aca0448556c72460532b72824936e5f1b9d01a24eafd6b28b2ec15f46cb9e1953bdd92b71e247156f1d04b88af6f9bd88530e7f43a118c6e1e347be7e9a7595879906bf6faa20d8d149fd9dd5a82294ecf4d3f75d90ca3cdded619f1442bbcd753b705ef39d2b0ad010cedfdb0bd7ae969e5b6925fc50d9176422bf76b0391f2eb626d54aa27250b74d7371a975b62212c6f2a17215076585d8e312ab4983be3c67dc9be9b9722808ca76b5cf4ed42f343c0628d7fb88d0523d68c4c81ffb78abe1c53b139472c52979a983f4d1f8dc4969683fbc7f66d9c69ffb17e8806585a9e543edffa32a5ed1e4b346a465dde0379cbb9323df4a64f749e9c260ca850f3fb424e8bfe22178a797eb7575882988586078d181b37fee1ab3438fc7849be27b1045fe44cd72907685c4a6ffe8ece1e2dedc31b1424e3236b3bc1e4051c89396538064eb4e696a0370bd67c2f73ede995e919d2cd904e0527537e5ac683dc5b697c70723c672aa8c102f0872c10eb23cf3051daf50452427a32e828eab29fd9a3560ab8529128b09f8ee4802ad69380e187238f9467cd68a744f59c9c5f95acf544cd3e96646c43dd83cd4f3d7399834b5481f2297535019f91343f0f395cb05ad09a311637254e275b34fdd8ed52a19773a48ce6a67e45a7e9ddc37bed60c28973e7379c63bdcd705c7eeeb58174fdd26088642c171ba0c27251ad0ca3054232898227cd27206f1e3a74652c0c85566201be9630704524b2868895da27693506b9b15c0550bb4889de5fdd2684ebb5d7d6f0eab8e14b49fd46371fe49bc3516ecbbf4a21e72dfdb9acea9921b11ed0c1b7c7219af132b7eecd291df78e6cacd9141fb234f72876a96b0cb94e0e2b2204474f1d719a30852662365dde0b5cadd3bbfd52610721cee96a76be1415529c7c7761d695dc52114a3c95579df1d0ad21c59f07a114bd83014721cba4464ae55f0a56d12234f1b979c5d5d1555d67ac07d40c4681d72942ffb2821a28af177301c9302cdd92433305e02a5fe9a19d776cd9dc4b8cd72eb9161442ea3bef696df6499cd06aeff982549f69c6adf984b7694f8eac30972e929d9b1cc4ccc196020ac203ed7a4ff27a7973ef8f8ab88dc9eb898638c56598a67143401031e3e9a4ba4105b27a43f55c1ac5d07dd2c8be6033a15fb277a65ba0113253ff8a8535e1b72e21fafde43815bf76bbe7196871693b1443d1efe7246b89c78a0d227d398ec79bb3ad77b8a187eb0f1a501a5997520b5635c3ada38378a414d48c848d5d604d435ac331e3ed4c2a01d08935601883c5eb5b83b8272bc84111259de84f3710a3ce674451eff686110c67b16fe5a6ed2a7391f73f3720ee12e37acdfa628154328de0858515a7a808c54e235058ebb57cd417c490d72338231910fc194079846e6d9adba1aed281855b6b299a5f88da662db0d9435725dfe93407e115fe5a048d179b1704485b839e6aa0b189a312422d89b3a94f02a0c4d734cd3f7151f3919ba4f4e6442a3b37ac829cf186fa59a5a6309655c3e164846b9ddae53007857f5ddc34c32d9351164ab08dd2bd883cc9cc88d6bf32f721d54f3e78f67d9448cf9005ed5fcd09ffd2ccb2c4aff523c8c5b9510f7936a72c76b1f9223c1729edf839eeb563b0d42dfb82ac4e9d42f46cd99d4b13eb38672adecc306be10942a6482c8249783f2bd96905bd2d2dcfdafbb066cf97d6a017256f0aaeb102617898af9dc29fdb794554a494f7f7d5efea208abdd7aef910d720f01d841c5f7d2f1e6b169a0d75f77c7b0b2cc2fdfccf3e30833dc6d43d4ee307a91bc2bf28248943565e81dbefda82098938afd38d9ac0f553f08ad2f221a72b20ec33ca67c7698c1860a9ed3771d4e164bdc6609c20f76238997464d456704831feea29dcc4880453ba718da96893fe39f7ce514276d2cf7d785fbafb0df72df95ed4bbeabd67c3e3610b6439e02342494ba875759a06a2b0f2bdb6b013972727353cc7fa4eb3dc2af8271e60585fcee32ac59e72d1257d59e945a12878b722602c291fa15c77747fe8f7777244f520dba56e0b01efbf1020e3127025f47727d460162904bdf9cb9af743f3ce62bd6e748ed995062f00b0f6ba65b2384b0720d0620970967f1a0bfc4684f9d119d455e9bd1e5f16d1de57a32c2c9d5460634501c4ac9d0b2f2976966b0f1b7ee9c755c7188d5e5e6779891854e290b37f3728d7680af4f92aaef8ab6aecab7de0b71efe4401251c7c9f3d41545caa5d97f70eeae269b9263e90dbffc9908c24d0821dc12ef9821dc0c6c8a9ec95967ac277238f67ad061fb677358fa0791e3e58cc3ae181009e5da54be3cedb9ebb965a6054fb3813cff486596f2f7a1049834a438017876fce81bb5d99409a2b33c873672ef230b1c241ee399a1929c6356743895983691b1d02df6b586a3882f654fd322d9d40a53147036078b04eda3d448ed3c4aee1af0202e2cbe10db25a3f7b59d7275388f5f99914febd3f8d5799724bef4727339a44672ab6f363372913fffd972e302651594ead782871c30e69d918545243f4399145777d2533414fdae1de12fd8553f2c599f2edfe2a4096ede36f49c45a99b27daf53c775e8516f3c7bb100c25995e7537383f12232c7d7735133558d19a5e6b478e662ab886b51cc0c00572b5d8f55812a203a73199d39a6838064c4c98e6c7f370fffd9968347546b368690784335dbfef0cdbd96163f1293440d688de552b73bdfbf7ad3abc2a8eefe872b25639de263aaa40cd78c3a42e1cf4bee52a498e7f4c82e363ebe7976fdccd72bc348335bdf27edbde8a5a11dc706dd90f68df8bcf1f0ae731edb97ad11889727baf60a9b7f048ed4b2c51562cc82b82c4f78a08fa8e2425818fd5d8dc297361a3595a0585e51f1a9ae78a5b7d0d82addd0937265d49e52755f56c6865395772611a189b4bd91ba7803cbdf074ede2170a6b9970271a18bcb29fe8695a95dd725c02c341f287a2cb5729a497ac3f5cc2fa0e2c5bae0a560d1cf19b9774f9fd6c3bb50292bb303a847fe3acc047078c029c83cd7d5683b8fbdbeae99237fee225c11e59adba666cf3b90f38ffed2c77e8676757fd98f7151163e45648eb182f207062c8d0b73fa5d0ec40d92879d6cec683c44443e7843ea0de6043c1ab2ff472f4a25a90b21ff8284defff482be6f37679fd723e18fa8fd5564579d7b1f029727064d6dc09a3d00ee30a404099ce1b34886ec76e50229e8291a7790c6b46fa5b9c09ed6a10b2637cbecb8ec82a07a82f73f1c154b97a14b1422c1d6ebfd20d711096eff24e5edb0553afdde83ed59b232df9269dce4bb17361008f7b731bb45f431de075f141596bfe4a08fc8f707a8b7e4fccac6f60489eb88008723d81d77261b7d2dd6cf4b26b1be471cc55f774c479efa629ffa580502964c61a89b99840ba36483cfc5f2af9cb1dc736f3989fdae223f45ab00fecff19a9c7c59a593372535edc9f0306e2ea85d37cfd662f63653cca658bfd677102b05dd5ea39a1f040ebf3717a4f74394a25cae57ca2e013d897ee107c80bebfcb80ced8add0b35523e6f98ad3a9df98b377a2412efad9f7c0aa8636765d7fa813c027fc590c0149723bde3ce8ec88cbd29177d7a38c23eaffde4781f3bd84adf5ec896b443220f67247fbc82daba2b5bc2b1edbc0d10d9c8de832b2165c93f12676923567fdcc4e72c9719f010d179aa959de4fe055e3ba50f1b79477e18c54de1b7fe3cb731ef3723d7439070a5bf96b58ec5979734a24bc2d95afef09c8bd791e0cd098a0aa5909e055ba65edaedf38126011ab9be3f97ce2e3df5bfdbe42f5a2fe5cca9a306a72c9d3e5fb295cd733fe581d8b842955fc594a381bbd785a6a3f1868d5886cc6722a0fb3451adeadd4aeb3240b110c38de84096625345eb0ff13536af5845c507274cb6004e2be37fa00bb073dab5626e0dca4ca72fa315fe85f8338b9911dea7003456f3b88b5bd92a227748aa235e81cc19ed598aea1ee1e15d550940d866172201e32639fae1673e84d552d758a248d20432a3b55cb8a4ce1efa4e8afc266292bf4685c19084c397c93fae4454d14ee2bfd44aa1cd35f119258a2b9e936ff7214ce7e7892ec6a52205a6b1a0d56a162cf981742ed87e4a6a27ce63dd3720c15cf8a987fd1b186cf231d98763bf5fc43004fd8d8785ead3b67aa4ad04a70c772d6289a551eb463089c2acdfea4c77fc7353e75cf07e69c53f85213c0fb4ae57270af2a9f70dd1105685eafc5ebcb8d8737d454cd4ea11c2045f6d22be85cc84d45e8de6dfde7cf4baea6db8f309ce8575facbad7ec3ab5c8cc95643101b3cd678d16a54e857cb7e27fe7256ba0755dd804d6aa6b97b686a0112ae62ac0633a1b62743e6c5667956f17e98ebdebf3e2e63f838431b01fe52878fdc82993edc43eea150de6427fa7cb4ad6b1c779ff03324e8a49690651cd581523dd7b4ceb936be4b00553af4837d667fee1b4cf73e1e56db5dacbf7524d68ea04d4d5ba530b408f16ea2e700c36746cf9b39d9673abf17df88cb0c6c99da4c6cb67eabcf3c357f816fd8bae9359f99b695b16be120b67815325715ca904e4f5a026e2e30f9227c35c1db52232adb37eb9d3856c77351d4e2545ba555b4935ccd548d7ad72c6640f47ae969356fad04f1742f0f4cfa62514013ff47bf133d885fe86872e8dbb52a28fbf048c00514e43aa1121f46850a4cb7fd23a88aabd175d5508dab43fea72fbc33da00cbc8e4713aef5055cc5389f8208206da9056be8808411916eb7d9723512e619238fcd4123931660dcf4ede867ba2d700dd095cb16b245e49d361d30e2ef2f993327c0fc98ffa4d5ceaff919ad743858a9b62c3537af4af8770dda722ee4ff67f8b733b22152ce7531dc898e213950c498ccc15c37474a77276a2b72e8f4a2ae69a0cf90e68fa50116e7539b45fcadf4a998f81831073a7fb8a31b2b8359692273db5e5e0b4eae8e5a33cbee65ed115102f82c6aa938d696bde0e5720c5db6944f7b474415e712e5d2000678874dc6ef14e24b887f9142e4a692df074f9eb6e9b78e78112ba3f9d0bb6ecbdae1b67a1b0a1cb54401e9cd2b2e6969726e40e1ea15a3f335617d0d3aba2756a419a7bb46b4efce5effac7d87e07ccf72887c8d62d9be98c0a736b8e92a69544ff41c0d3ae4d679d47398a763d79590528233c35631165862bb4c7626a4b61564b3516169559d9f94a4b9e5c373cca3320a3ebf9ef548e4ae101ffd155f193e5e8d5b5338447f4296b43864c75998eb72033bd2420af205aeba9fce548af6e968e3c093e11a14cc4fac88d997fbfc6d7299829b9b84a2336c44426e36ccbfc6a063cfce9229080bdadaead3a635073768d979976aa4a0c0413b8b936f9981ecec83bc537df037ee3f6adec697ca82c35a51a323fdde754522f8313a0d24d5c2b900eeffedbceb5edc6f81b47ee968f472a47a1c485cb6530289f0287deda19695f41d2875970ec9c5dac279099b424865cee46071fa38d7821f66354c87f90e73f0912a8b5777ad26ebb71e3377759472746c146b67262df3901be8dd35efe1b26bcaa0557d74a2153ff102bc7f0ba272db86df73704ec3856bb3991420088ab12e709c7b4ea7d9255cc05ac78ccb57724c0447f9df935867c8d81c5717da376a904723b43bd1274fb364019232416672d1ad082cc855aff84956cfc087ad2d6a278e9c396e17bb5dd32e9e4850764c01043f9d4b7f40abdfd2219d12d73e4982c84b6d3b87dc1a63a6f1822b893c2e72f37f832065816545c6b7b4aad57a41cd12c58985844f0cc971cf088233692c316cb3fd3dc55fde643d0686ca056387091aa8abcacfaba4570c08da407079b2720a143eeec3604a99373f0ad8707be24c3a7ce99e10be093bae5c54043e6448086950a012909794c042cdf8358c1ae15f3c57390debdc0798a9767a4b0df4251a8d61956e38fb43c73642565dd4068f94af216b4c17e7aaff6388efe58af224728e333cbdd138d5aa62664f8b9bfdcc2260e267472322000cde2205fa07d49b72e1c24fa92ea5469a2a10fddd0b7f7882cf95dd626cbf424b18e0b465d5988e2a5675c53c4e04f60c8e521c98b4fd0386a1d1444ab9906ee0ed68a86fb9cc4835b59e06c934c1431d9f5044b25d8b74b1352ef50139ce50be3dda465ce424c97289947882ab10c885abd3dbfe2db9bfe276fb297c52c07c739b1d914235ccd76b0bb06e85fa39bc8a2946a36aa5ebbe52db7b1c5f39d3a0016f75d329babf8300c89d64b55871b773c587dcc390774515d64e3cf659cab8737f3e684dcc8a4416a2d54878447007799aded77839739ff0b57f0daf387981c709d078ae8a7a7363163f01394053b3732436d3c3f0e8267d89994874293ca72f38514d1e8c4461720fd372ed9e45b62a71136ae690c3a60a0352b6ce53c521068b301b4cc19b9a612ef8452178a2dc86932cd7546feb8b8c3be12c24a4485308aa4375e50976c0104c1986c6da0e1ea364709311b5d954cc2cf0214fbf327ea56e82179625217072762b0992f07f0fc9d60d097845f5799a1d86a3f8ea8c30ba202f7ec2f636ab7267421f2a54995d0ae012c7b4f4d2da5079fa972e2309ac46743421dd28b23c6f6c5288ab05c186012a275e04d75c231f563a5dbc9b469c0e84793409c3cfd3727cbe7817bcba77b9280cf7e8ea738373cbb6b2fc169c8df8b2e45c0cdb8f453b245fbe9fd4048714ca95bc04da844294134a1fc3ffeb378a36b6281e9e7f6411406068f1f560bf26454d519c474104b60bb2d55c99087108cf457baeef5a5c38024734f97a7e5d0fb0cae7c5384ee126966a412e2f6b21a8da1897f655c32a72eda4b164dffed7f0b667b6d7fcb2246aeed7b46c740dabd4a6c71a0eac9cfd72416ae2e190b592e386b32632ec9ece046230a6f174ef844fe1bc2ba02c240f72cf726aff6802f70a2a3086986db08ff25b8105732164eff9a0cafba857c10f72d2981dcf7d052d3b4e269e2410508fbdba4a6bc056d9a2260e12f7a74e8e4f72b4377f37fb8b10ef8d63aa7576f25c052d2d99152d883b4b7a89c44bbefd4f721549b60f862222f53005f5ed08be602f59078c3643a38b4721d385b68d961959915628523cc2fd79fb3a03328e2d83e64c66694afab05bb4d7935227a98e03722aa8b8b04ded1252f8c9fdf4329d2130a216034f7061375813c47878a3d52b72beaae052fd39f15a5307a18a92775b60c85280744fc93326dc9b8bfc0a4c101ef1d17d173869963b9ecf5014c07308f9fdbd15e18d34402401693002012ac37249e03de4745f9e420b6fafa8bc67f221ac5fdf1fe2e57261cfdafcf02c6c113d921ab833d636d7f50891582a07c5ef90144b67902fa7f2e40d627165a3875e2a4b7fd381ea5dcf356fa42a70ef94d3189f081eb8c501ebc3afdf5ece748e0d721e78b6e70c3eb861d0dad7c0c5587658377c94dc558ba91aab56865ddebe834d002b68aa9e48367ae2aff6954f625e42c692ff9e54bba3400b321d91f7c5d772163dd747176c41c94e9ffed5ef4c2c3e33011d93280e92c8a4f588238e72735a6229031770ab8b6591cf3311d5ac54db00fe674f8f50a2bbd74e333d73786972db02722ff95025cdb2547e6bde061d153805a7ba70b0fe0efd2d1b6e27589101bace80ca22ee585924489ddca4bd2d3c99cbbb3e3eec07bf5f91f6270e239754f94e66a1449ea51588bc50c17fb877d5174e7e2eb2d0380f14efe815b77cc6721c28c55886e46fc7d2702a5246e44c048200d43392a4af8d244bd92b7e2ee3720f3606b048cb2811dba4b0db180c85b087821a0e4b9235b1ca9d6d2aeb308c72af1e84ba1c88d2c5c268785de59829e4e1888a1563b336d29c55a4f14af1820d705d9127331cf27252fceefda4e65bb9d608135df4786db7b7b6ba1666f0a8721e14916036e150ad50123c5d9db69fe3be1cefde11e121cdbadf0e0dfc2062724d72a4fc59aac14365bda857fa495a66235e7f685a55e80aa43743080a5765726dbd266ec06c4ee3e521353d9d65c7e2359f3ef3cb07a51ccd153a7a41decf6a96e5b4b0ff2089ae76942cdd6dddee9138f3b8f76087dfc2a1fc4fe6911d66727d3c2a5898ae14e6c3b0cc0ae70452981915f03716863f3a7640bf10916d392ec3082c7b9859aa49fa46f1cdb73acef339050835ccd32277368017219935f6729eb26ace2e79e34b51ebed1627fd594ccf43e8cb2910abe241bbe305efd7fc720099a88503a0bd081351c6d36e43196eafccfe265e937796d39cd3f18041457200b6639ff52ea09822d411d7ec8d1b0cec70b471769a402a41a90f236f2dbd723f5dbbcf5f7d9f37ea88b8350acfe8595d8dd4823750f7506817aa5779553072880b9872e96f1b1be386f536905057596f626ace6de5e42454a385fd3046650142e31927321c5893d020a7926ac0160e8315905dd460efbd246d6737cc8f41728911ad45b63ead29a8c4d229fb02dfc67ab04885751dfb06f7e7816098b086724b21784f0461646c41e0d35e978a1c3afc1c6aee7fad6653627e47a997134272ba46673da329f0a20bf19e904f89de8e80662d79a73467a9daf6020edb488a727b1ab391a0713a3d64ef4a41a9c889372ccfc179b9dc83364d4a360138ce3c282194748993a07f735d6d5e51f36a33bc7e3f542a03aa62d02782cce92992ce5953729527240c6891bf8542b6e0f34393dfa36650781742ff600fb5447d199411073183116edc5411d60c8ca5824a93c98f12f491dc96cfc0fb5269f4725708724e62abb4867b3a4e15bae1877a66424abe1eb0aa999b167a2507eed89a0e45480f5e8162bdf1bd1ef4c9d7f892976678990adee3f000499346ec02fbb97b6b07cec9e38405a6a7ae1aaec5862dfbb397094aa3c67ee4fd9f301df46e2cc61c72781aee2de8ddfeba3034c5b90599bbb18c0f4f67b75e1b21d63137928491d63645d9682eaf388dfcb99802323e92754d41c9ecf0d695fe13fef54705b34d0f4ac26c49ad5bb11b4a859d908cf038829394f1e7bc44051c97478be8a56361d072ce2543a9dfca288454da3bce9bb09d7e0ac1e546dd50a668a2fce4b6cd5ab73357e59144b32a84bbedf61fcfa78a817c0d459af430d4e482f82e2f194ee69e259404e3fc48cc8ab356f105869f9c16de6986c674462d24a0d5e911c126e6e4723b467fecb841d0cae567ea9cd85e1fcd2c3fba34e5e82203cbe35a53a4d87972cfeb42767245a7f0d0c937a959b4c20d388f516193d3ded646241728c4b8cf72c557f804f5b44c27fa3d88552a6f61241ea490187ab2eceeaa610e24353a6b72bc1b790161a4831e5932bacadc197aa78f50871f53a43c146b205b02bd765c72a13b0848d6c40b473429e9a76bd4931135967d5b0cdbf0f150b8c7af06ab2e61fb646882b07a453869a83f733a28337aa8671b99e5d02f5aa515af3a9b39527200a83b4505ac3a0c1c254d0a543dee275628aaced8200602ca4a9a23d78b8a04251058f12b9b7aaf9b95fbbe921f4e6726c6337c86038193f97db2a6c79e3f725c71a7cae5f3e97016abcb8b20f283b13f0deef704c45ebc56f8a39f25ded872070cc467a005a494b186b7eb830b091fe0532b8801bb0a05e5bb9cc9682d2d7284e7080cbc02b6d0fb914c274b3f6651ef459558af28ba2a8f4b6de98919b77220a6e5ea4b30bcf4a088bf3b27e7e3f721fb35dc40cf913efff1b892cf7b6c243920cbbf861624df5419b4442a839eb471642521b91ca01afe52272e390b6f63196513f566b39757fee670a7d683998d874f9ad047000652658de448f79a7d59888260eff835bba1e28b9f8accbfcd45c5e77731aab1c0e486156eba5761d567bfb92beb882134bef6df6af7f3ae3c08e372144b32b98d9f0e3ba7418454f672ef3f149c58084737832c331068bc92eac987ccfcde181db82f9d0205befb1b72078ad4987b790cdc7a776f83749275b8459bdb1cd010b6ec33df0d2594a782312b8720d23f59ddd41e2675962637111a717d3840be1426ddab1f410f7c37f145fa9785ae4f8072c786fb33252ecbc365e78d75b71123fbf44864d9a0782f74720ae7483025a1f28eec77dd86118dd3ffc6b39979eca42f5837a9e7d32d8ea60b81a78795a0179222da4818ee7e1c60a05368ba10d937a80ccef522aa2f74a92b90886766c9e018d5cb574922cf791ff3bb9704256b38132cd9d68cd1643cb772866b4af3ac9b5088c2914047226b1c098137f4bad8a18441751c2ef2cf902d601a2947a6fae1e7571dd8c2de11575c342c2b036967326a8eda0c0973b63d515f12be4d8386d5e993cca073058628cb438b6e945e88909a11e304efddcced360164c66f039a3f4a1e50ccd60876694b3fecc3c3d773202b8d415c0fe5fe749902fbc0a3fb39f1bd5cebe27e9c05543149ca72af4cb791d7108e2a400708de2272a1cfc25938c0588835b536c0e36f391cde9e800baf9b9288f4969f3a705a830382d20d701ccf14c87c40a1f82e0a8dadaadfe9affb629393081158592789ff729a8f440adbdfd1479467cc7f66dc43ff46837c57bd99b1405987ec7f52d99166426de46010fe345df14897ff12963b6a872da7970e6068fd25232d041d8328370da3a19cd85f1d3d77f6809846318926a4984db4ce6a2c5690cc5b8adbd28c72695c9146160ce84070ee9351c4f92f12c8b01fba3bd5bcbd8e56856cf9ec7e19377c10197310c9bfd1a9da771b86dd94570cf17f96cc02144ea1b95de9a6771b3dbd3b94cde104401c2b5a41c32393b4fbe21ad916626ad1620dc46b2b6bc60dac6f842486fea20d2f9bbf8541ee3d0b59c15a2cc8e99df47104960e292a0672e78c1c670dcfe7424632c199ec9d9882edb6ab84a14bfdbf2f063534014f1672e665ce9211ec0dd14563fe4a92ae0929e170e05c85687323ae6efaf02cbddf72c1648bb51554f19f65964074f54a6fb02e9656abdeaf7fded5e7715ca69e5c728400fb2acdfe5e8b49b355c9560ee90f3e616cb1cc97d84497287761a58c757204fa627f6e4c6bdb75e14d94b43f454c26c300f87796d9e0b33a4ce66c87317269bd7bdbb5d273b47bf7ed9522a7047e039affccce46b828a71d52a07f5830589b48675ebe5b06c24b87344c3dd58cfa9184c4012b4436c6e363d0b1aba5891acd6cf91ee14144b291802b9eaf76a3c936fecd004de2c38389a028247db3c772cd518c2c699f21a6ce87f6bf425f8ffde0c18d279c4b5c3e6b5a171d741a80724737afa9389a2a68de5a74becba471b8cb4f5cea6bdcbd6fcddcb28dc4ac3f7282d3e7b54fe4c24ea9457e9ba6f1eee2df228d414ece8b024910ee35230c0632fd8d6297dbb0161c7060a960e9020bb6db5cb84648deb729e1adc668269d2072b489c74c38eab1a99581c81ecf920432dfcf4ffc453f9eb1f024b03633eb3672066a7d51f6add16d58cc096517f91df2a1a24e0b6a9d2d9e556ff2898f93307275a59b6d692ab7b1a2d85eafbe099dd5ec3dedfa69880b5dfeef157079770d32fd01c6d808d0572b0deec1aa9aeb7503c20014d0d3c7940f22b3d3bd03b104728bedd32261dade7c4d5a35879233d1cb79aa729cf33f24deaac652736354547244bfb3504f9986ecb809811e4687e75d184abc27401ba60ed0206249c90a0772d61b8ab847a3e00a408ca56dddd3004c7ccfdfa58a307107ffc551c6cacc49724324d087729076e2dd8953e95adefa96fa4f669628c132897ffb0422666c8b008fd9606cfe2c7be96c2c17fb9a2cb4bb338c6c488cbe0a660d91bb6458a56f72af8d229fd246bf7a766b46f62c93c246aff8eec9a7c290d6f38a8fb3fb9c6f362a9d07cc5e8b3f9632235b8dda70a42d15ef97817197e33c3a5d434767e49a63d97778e77cb12d3c8fc6653933799a864ef41991b83f6f6cca299b3ba0e82a5f3870673afec780559ae675c37e906d8f22c47e715e97625e8738bfff511e32722c8d108ecbac2fd5033780d2ddf450cf2418f33905e10c03ccaa432a0c1f9a728f04ee204ee1d802c76dbf0e64c016572db36b2d77935702b8fbc2a5989dc5723d3e576f432a641ea733c5dfb0f52266cf318de2f52f45a79d23278119041c722e5d2ca0c0f17c915bbe7bebd691a7202fa5cdd5aa1a9b5ae82cbea72513ba72d50669f3f2a4830edab9768aaf7302e5885999de7153656cbbcbe6463e518a72e3d69174f15478ea6d80b01a3bf636fb48df8e06edda9cbce05ebad0464fec70dae90d75226f4558959ac43bd9725232238a9129eac481efabdada32d7e5b77280debaa6ac03444fedf830bc27f103d8a4a4133d381999d341d5acdad4e5ec0be922f2b7562d1dc3524db02a689ed0ce2c15aa701a1337144eff70304db82420005477b0b1fc6041f4ee534e75a786446aeeca2ff8ea00efb3c7a0c879756f72b351af7fe24516893a2f2d467e3f1da44002fce340050786e48a984a306aa17017569d7280b99f1936a24e6df79e352328a213bd2aa11993b769b282b4ae3161aab92de2a807a0ea8b1b0da7c218dd25d8c155ccb3f5b240db0b881f63487b1a372e5b24e11a536b8f3b04fb7906e9955ac22557a23db81880e67f018ce2cd7216b9d0733d2ff01d9c16c4567bba5affaf8024660469450ffbb58977a01d0a72c191f4b69fe615794c482b68c2968bcedf68c17b67dd8ef7d754582d85fd05723b8894a21ec6ae223ae9419335a27e0c9bc0728a5157dda08b7df996dcf7cc474117d52c2fb4d6b94187a892765bac87cc20f096aaf1dd88a17ed5b9c6030a729819e89c6263fb89c4b929384a0a2c244263e846a421be859ef38caf03867172d14a7ddbf1314ae0448119ac00f3a534719ed82ea85fd393494c1a9a55348b72a6b5226baa1e654cd2120801b65d4e7bab12932c95658faedb30880bbcde437292557a543933fd820b3776e451e382aa158970dfc35c79046984296411f21372fea508a745516f02c0ebaf31263003739dc656eb7dbc21970264e0b64b49e53ca19a85885125be2969f39d484631936f616d36a002e1054145676e5a53237a724c2b074e87ebebceaeb4f864e595d9ea4feb119e9f92f15d69fe27fd05d38b72e567552ccbccb1334cc17afc8fcb7289acd5b76135019df002c5788757acab728ddad716c299becc3c0c2fc14bb44706211675382b22f59cf79f5fab2b90c71efa6ae6a429bc496dbbd952d3c36f1e52751d87c445d9d3e9fa20eab094c78203281d25c88210c116aacc70d0bccffe89c31010b7b52033694788b5d4e2a68272a6ff8688d9b7ebc157701e867e37d58e5e035bd9a9807b7cb07ffe13a4dd8a18ac4b4ddb831995a25219e0148fcac14178c1cc146c17040e74a19a836c22d472b65a64459ab20747e6bb6623083f0ca3bdfadb3cca8e1597af321474c0526d6cbd1e7f3a3824516fed1de18dcd0f8dfe939a29402e8f8b42bebc218fa58a3172aa73e229dc20e73878e1aabe47f0e0f07caa00b22eb83a834b53c505f7ef2b72b539ab440a587ecc95cc7d8d56cd003843614ddb41abb54bc9608bcf11e09726c09f77fadaa3741b0ce214af0bd094cbe4c3df524fd96edb70702793decebf341a7f26a2ecf9520874d77c7270afdf0279180091679271347b031a54c8953d1f60eb4cd594cbd3729001fb0a81ad16a5c4702277543b2c6e4f9b32ff5123fb09de9b1eeda1f79dcfd2a838b0568c95605fb06cd435290a25861b1c6d458be34cd319dd508172e3f83212f02e6e8fcf61eaa66a09a3239fc13402802b110648725e9b7e63bcc88d4bc0e6f70af28ec3cc21b540f3efb6437388f4b59162b2a1728be7ef927523756b5a7556ba2e5d0b0d83ada110cacb2d6fa3e2792c5da37072f7715b83b8099cfe54174743a1798ef03d8816387ccecbc96edeb96f52b324723b7a73147e743228b02400cb069a2b89b9aaeeaf7d7c1ffb96717b2f599ccb729b8dfffd1fd3386c4179e3a90011874109b31106ae45587e35839777776b0c7266ee7c85665addbae21e848b484dce734721b124fe94c01785d5bbc619cf6672e945ac5303d555836e1ab59110df7eac4f5b74e3d8035ed6068902b4ac76eb72f9deef5c201937e202c3ca4dcc5f619a6e97d7e4cd736dbfa6b02b237c365e09bd79ba01f5abd046c52ed5a5d135582957b2d7d10a58935e9f02e128aff30c03580ea239682323e897fd320455b8c77e342014201617e4aed94504d94e62ff7286014c0d27acff137cbb7b88d2d1734c3b4a3786320f84b9dd93a1d6e13c3072465a478e4a9c3bcb5fc52cb214149600da9ad6148ad188892273735ac4a8266c2152ff8236478af0922a6e18968c7a192bfb640ae2c4eca704b751aa3bc9f13a5697b760a140530418b9f04deca1ff88800fa4c83b1d8e250df949a2d22c74183fffd54fe68e2b5b713c8f1752fe5184a46c191692ba77b6960b0be0099d5a720abe923a231962fe7b61889ca3e5ef0740046e37c6103b57eb4e24ea1de2dc72cd16c8a91f77b53875f812b12c22d2e1ca1d91b6a3322970637ea4d0c75ac3118de95069af8bea9e381be466d57a25cb2d2790b4e3d6d32c039a216e85468672bd1c10b8445ca8f938e6eb27519375712cb4e5ae322fd92cc8c3e10a8c652472ace731d733497ca3ab5fd1a281f5ad295008371eca20366b508b769495fec972fa4e4acb99191435b942abdf535554dbf746f8b766ed87a1e579997f66654d052a74ff117bf0364ee5aa1d2880fd0e1a2c8c17efefba215366f6d92e1c1cd172b63536b4aa513388855a0fce1ffde451e9d995db71746f3b393da3daf8a2d072f35a6b5e2592da6d404ea8bc8d1e7cbea52d044556269cb31677037d39144172dc568852d8a49a5abe91ab51bedaf02f60b8b980b3320f941534d42cbaafd86d15a2991151d71be634213e3dd257c1316a10e58c5c59c14f860d2a6d9cf22541d7578eff226ff338411e7b6d9a33da2e1d436a5ac51527cc7746815f172ada4e0c39923dc244c5a5164b4a4eae71f2d498643312dd9c86de22feaca591856872608dc10a43a5d055fc8e63e04f7291016227455c2a8ddb23d9fbeaf0d19c5c727d79eb16c2d4d4d650f2867749a5361e79a24c16c16a24a56725badc03a53872152e39e3788fbcdd8545ed7b9a1f8d5ddf4dc7b8fc611d1961da58a06706cf729e72301107a031ced62ebf78bfba23921361ad3f0418f1f7768256b488fe2c7272f5c6621447fe3f1fdfb60339df88009983311310b954125c7496a61c1e1b48fc99a7b6b9e00889810510efdf79d20473b468b2426ab1f063abd995f55916729acbbafc20ec5e091f8d3d7dfcf63be11220d5a604e898aa0967ea0ccb37bb72386b9cceb3105f79196269b47094da5295b2a675e936e01a9990da94bbd1f172c5b9492afc4c3dacec51ceceba6bb66ab2ba2c215397dfe99005ba1977715372194d53af3d133b4d9e5949306542ee7bbb3972de7e7f79859233b73726ce0972efbe103406814b74927c9561a07b96aca8ed158561062549295b8dc02a03ff1ab9a8e44c81edfe36978ee90216061dc618cb5beae39ddff2ccfbcc7f1a0af672f37b59fc1dad3d71270ceeda5fe83e35ecc67fb728f8569947d771efa229915ee2bee5406fddff79248bd184a888b8a9c49f36e89b0b4923ac62a106dab7b7725bf139c39ee2cb599f8fe74c3402301cd364d41d263590b38aa0f764d6974f673a65db665db87ff85bd3b5eef3f4aa10b3e23b3bca3f0e70994ae5e171108f72cd46adf71a5e794afa4324dc35e0237dabf0dccaec14d6d0efc7078c11965a2fc971c661f318cce32dc46ec3f5dacc394edc18d79f3d9ba8ad267b8d0410d37253512de03ab2c0aff26f2e9026a7bd634f0399ec56f38358b9ce696227a6f4362516a1b3a40e00807c8f7b0c2b48fa2e829b754f5774e1f0458f50f1e90c0b0b16af26d86b4e41ad877eb13311e54d9f3d4de527883da82739f88e1e79ce1f47458811df6bec0ceffddffc9ad30c6394e3e51eb5d8b33e72deb0d571eabb616fee54c3b8b0f6eb96bf9055cc0714ff375b66ad487cd846ac0c6d462b4d8012728710f5b3b00f6a7e4a503f5c661659e9f32beffa8052b4fb317d96702c6854722e6a3e742577e9c2594b3952873392eb549095cc5e9d81f0ce833f3112cde03125f656033b9fe36b5359792b9bc6efc6ad25f0007de4a6072407bfeeb1dea922635a9365b263bc18c532a432438e33e710932338d48766502d37e969422cb9723ac147f2af4bdbfb2ca9de000fdcd4c478b756a96669ea0c6e0869a28dfd6666f4671e16ca7127e346e235405c7f3392c6ebe428fbbac1dd55d562ebfad31b722fbdbe15790e415cf9ddef515b3e05bfdacd121b07159458a115b3429b597572388d90369916651da590fa231b26c1db1cb7456dc2a99fc6d1c139fabb4dd7722b708f4e1413d14e036774755265d167b4b7806c0618390b5c26d101ccc08a729147597c9c8ef58b2beed9b01039871133dbdaf1cf9166372033a1ca35ff3a3d950f43d4bb9fe3a354246f91a51d86b890fa29ea8074ff3bcce5f0d481fd4a723c46348e3948a5f5650d74ca66dca2e71b32caa73c2b53ad9d50b73054b1f97201aea877d11ce91f57a675f256373082fa1f5aa26bba155be9dbc2587b1b13231ce9716aaa2904dca28742834cae342a34783a045940185292cd005e2bf6a6721c2e0c1194dcd0c305f89f834c07f6fe30b1460fe81d654111ebaf9446cf0160903013f06ac239ea6ed0d0e15ac0e7a6b8c81345a28bed216f39aaade382e272ec72d0635fab25e1431a933d77f3cf52419da0572ad5d8dcc2efbb3a1a2e6c72800d834d11630f0778bbee7e591b4479433fb9f820f569b0b66e4f895d7dc64cd9113dc07cd7309b98acfed9a9e66778f041c5debfdaf14134e40b904bace0095b54ee0186934696f0936c1b20d1808d961e17aaeae4d9792e3e640a3660b701533306ce7cb6e24d77710186430138d2fb6c721bccb4d2f5643744d4b4465b72cf8ac53ca73113ca251d60375ec405361daf801399e1750b3ab0845256f5d87272b81614eb4401aa64837a607be4e2717e9dce8b1b674a91e79948d2c4e9601d6f4ff87030eab79d65ed710d7f81df7ac45770e7a1e9d77da283896a3ba9a372a518a1a0bbdbf34424713b7554f2959d29344b2b6e70d476ffff3205f4cf4d727da609fd3506140cc66d695733863d75a2b1e387f1bc3fde3d9781f2562aea5d2649499a7c8233f11b102a64cf9d28b8167893cac581bf1ab8a02dd0435a36726131fe50a97a44d57d3ee4c3934b2a8aef0ffdbfe9548d748b62773428bcec7237508a83dcd9a1b7bcb2ee512db1228d8ef54c60c0281c5814321c645256815b48fdbe1675ffd5bbef426f14dac6490aa14379bbfa58446086ad3a68e03a4472fa2153ca5c88a332cb4505546bad5a1f4b3c561f438b5f6b35c214bf9535d26eb4edf08f45388f9f42fb50f9b95f089c55c33dae8e682eec4650187ad896d6728edafa9c86ad9bfdd8314534250d8492cae341b2d4a32a5b8c053892dc510a1368ae2ed985fe0a532652cbc0192545cae6140839b1f7ff33898e025847b4ea17f6c372d292fecaed14a3b5d9db48d051e81d8b469535f14bc6d6cff2415b607222fcf22f190f236cba3d188fb0ecace2c4c9e551d66a817126eddcfded7e97269f176a7e91edaae4b904fd6238937a3b7792c6864df74cf12c59038be0a1c76d7cdbc818c4ae9ecdd05e0351b65865c401367eecf8b9804677a6a3536ff43f684aa829592851371cbccd1ed19f7617ef3aab89739e4b83a3e16aa2f8605e2a19f33e1aa64b8b33a7a989efb31c6d171c1a2bf734671dd06fa80e6bbb2a14dc64dc5607a506b79094ef48932da3ff53eb7d536b26ba88d097118483f504278a722f5f2c3812c2b28f19756ce02ed56965270f9b55c58bb003b5c6caa5e414b1723bcd0f5616269b1a8e8722ecb331f180b8dbe38b386f2aee92bc4c2568381572b8546702f0cfe7d54c92c4fa6765a3186ea3f951ea5e51808874185b576d7122230774f45b12ac0a7660d782805bcec1b8c8a1ee8858cd65ec61babcce627a14b03aa958ddb29af752510ef6146e6e393d4d6bb8f8cafe104d39f4de5e3816729a137d81fd4185fbd05b63d5bed116512817dc1cf8d8fad07378a5c6733dbc727b648ff222080d60d42ffede56ebd93d54420e2523bfdbb764c17f6edd308c72be2d51e61fc4b2c60f78352f59f4f0d060ecf8d21b5ef38e2182046371f3bc72c9b57417f935575090aa94863153266ed2069e8c2aa8374ca9f4a5922c4ff87260b9421a1afc7e0001e71db2cb028c5745274172a15cd6d0cb0062ed9396f2720659c0c640fce49f0ca4a05e32063664b727f4d8b71580ed55ad879b07b00572bfe970e0fc33b957a193b8e11f9bb522230ba8bb40d43f65b862d25774d7e40984ffe6e9ddcae2c2d861434a45f8e045d1fb3cbd6444aaed7c0cf2f3b5acae72d0a2f2c0da1d5750e49586e2aa71a97329c91cc1a17e39e430cea005e794f507c9ca18b5ad1fa47305bd513e7d9b9b30f85e8453c6c53029abe6ee259f85ed726bcc207f5abba68754575e74d92a679bc64a73b688b33acda9ae398466356d291af6d5656dedab13a17fffb2891a8f874a7485c00c3527dff20c4aabb77e0472d9a63f6189f6a667002917f36d01927ebfe9cd5744eaf9cb188aa1a1d9d925726f8e4cd803f41056e7b559bf7c472a7db4af34e5582145c2dbc13f2b25a1556b3a335bde2a4fa2388a56c1f984f83364bebda835847546603d9dd87d8c8d86679a1d5045dec2e6d4d8b933592b5cd397a78621b431fe8105f4fafd4519d16872fff549351bfb4854a5f91cc84dd860eed226158395c85c0d96ecf631586b7e7228329a64ff3dedb32aa9c73ca10fe5d029de2491fa22938b899f74e3901ce8729970ee9e2d63faabd876935caaace6fb954cc72fd6a05715d04c8265a417a820e3c51a8f69756f9c3b446f4ffc2159d11ef962720dc1d97c95ba38620ac224724006218bbfc18c4f2398541d0932c47cef7a1debc465c29d690a9aa55139403d8907f15f413b04616b753be6e71b5eca0cbf9b71e2049a679e7ed5488e13e072b20851c7e9121e3253c71eec9f3c6a37ac5d573939f2f511052288b8045ad5723442e4aa2e3dd9b3544ef18e6ba1f4a5d780b475a0a737abf7c55f44ec601f72e05519c0798a1d3fc11d27f4a55070471ee0b8381eb6eb4fce087bd2c02d1f34f8f24e01ff93d25545a0a66a85a0d1559b32ba174eaef1955a3f29b0c265d772f03a55685f8085d77161ed0bbf8ea09183f97732588124aea2d0342a417261724cb2f584b2d1e1d6180a3fb4d982207db4f29d4dcb16045b90463d3684df11722adad4edd29811e730935515a8a93a6a4c1f2c996b30cd021e16b5476cbf6d074c9807089d14ce1e2467d495745fc4c716c663902f6515603d69810768efe872c21a1993ff443969d6abf469bcd782e0f591ce011bcc7793aab8651be36d5e0999347d829419bd580c38a7457397340f254ea71836d20d04b23a8e8ba809d3167f4c9993cc55820019236be775540f34a730692d88f81ef2104a48df9747fd722fe16b2826c64f29b757865030444186aea303333b8280010b58f7cd5fad527238c6e1db058d26d327f60ad171c25a6861df8b7eb886e0c53f7c7c0c83eb0956ae15d3edb03c964015cc9b0fb2c045675e32ef4afc4ec9386ecccbc7c84ac5725f2dd8b5daafe09d62be8ab455fa778c91230767f99eab7453d327a0287f71720c0b04c063b37b3abecb530c39169bf9e403851e8d11524d5319fb3f5e3420725df03dcdd9f859d61f987bf436c12e93868b18fc8facdffea815dc49ebb27b4617ef3a281a7f1471ef4ac1f1d38eb4b7a0fd337532e60945cb580d22cb109b720ac9b95dc4126f119a1e8d1c3317ef9fbd4e460875998452110ed076704579724018424fc94ce9a9cc7ca11af1eacabbcd0c4b2f69457fe7b78cbbd70316a5443c63c18188d0990438f3bda762464cc560e3269fbbbfa054558c3c885d6e7272ada05a52ad008834b80b33716ea2eb375be70cb195e948e59f2b0c1435532d723bd4771226d91ed52034760f6bf8e0cad693324e543d6d125a9a1d88f9cef25c27fd42e9de59537a36e06abf3ce78101fbc0ce969450f327f666d246cb08ab5f0c83dabdae522174205dafc252b638eee2f506f099e3ce69fb26a9648822b772c3304f05967f980415b615366d80a54f53a363b815478e3c7418dbc5483446725d89cc7230a1675643c5d5c50cf62417a698268198b1dcd7a0701f7587e53e449ca6021fe9e9e031efd81c0b523d03274507f780384cc02ab9aa14e1576a9572e7d15440db7cf07b183d39786547f7eeda4a592aa16a73d7a0559737e985f310ea44610b2eebb943942e01803b10cb43702c371920179d393db2cc1e83e169729fdd0cd7a632196ba1cf68969a2b7fd413ce90623bed6b4206da90d67564d4727a8069ee8189a5b8e7afccb33d5dfd48396697aa40d0e550eb32d8f335899445283ebabf6f42d11bfe7176ad68e0fe58c88f08a0a28c655dd272af6bda1dde7243d7dd1b15d7e50a5a1a2a41be2581da28680adb27b094cd03d16df0fb275e021a076482af50c710c15ff93ab0c53ac69e4a71a3dd486eb9065cbf4b142e12729ab807a33f70999702cdc440f125a6a7151e414831ea24910707d6911a6c5729f540c9414d61658d812cd857f9e047f7916ebf2c7c0a05b6814f3c82cdfc2b184ba60845c93c31f1d346503745b084ca1f5151ea485fb67ea55c9b3194090872e5dcbf5667fbf7aff05f6032b60954dd07f3e5e094c28188e690e7333ee7d37279adc3a977cef66b4295fcad139b699cbcc937b7a3e7d7550993af7ee0aa7119d4d9c5d81e88f9eef789248bea42c0d73c370a0137edf6d05bfe6a873db6ec22e641a6caf1ba7ffe6cad9dc9c1466fdd4a0d94497680262adfcced88d61ef3666d1578fc85ebe8ba1e714d0032b2036e92b718050ae6a5aea08e495b7f9e61727a81d48f553d7fe6b9bfb8fe81d2c7826e23b23c1cadf3a72a0286eef50d4726e6a9a03d8e0eb4a46d465671374216c70983712426c6b447e1597017c69f0235e3ead2ab30e39567e3617d73b92f4a8bc46eb195a45159076eab204e09aa7972c682a72b67b033737c57a2634d8247be16d01adda6ca85a59ab03756f5c4486913522e47d6f67c2d1cd058c9404b1dc6322e1b6e3b190809f307ef53f18f5972468a6f671257344e10279f0655ef792722fbc213906c866b2b25fca2108fa572d2fa01d5786fcb15704bacc9d385936365430b3e54b4d87f78814092c2d0db725f36a8d1bc772a2b485c6f0430d9380b6620262bc3365726ef9115739339034de3d337510f74f0ebff3de5c9cb99f5247016a81348b31d0e70f9e975fb350d72b3e40566d305f8bffa626ca60dc8f5d60cf84664dcf1268b230b465bbae0a5723d8f3403d685afb7affab348984672b3e61a3a0517352d5c76a276f3be0f8a72287794424c17a1e63f703257785c777cb8b37448ea37736487d4b18ba4a47f656fa9b285630a8941e16771de56fe423ae3a395e87f0c6dd3cf01f3db96a77552f8168acd52d3a7289f1e6aa1ac7644b710edfad80d7dabec1c9ddb66e9cf9f2b32164b343eaaf5dc40d9098f9dee79e52fd7f9f37b8e8af1ad8083e291dce972c9c03cf3b0c31785c191446c05a6478874ff654ee1836d1df5f091aeb0f7ef4a8338eda99734d07fb054199cebf0267ec0f38b4395c8be2f5a01e821ba15ec6188d597dee246cd55d7cfa40e44997bf46775ba2cfb02293b31b6b5846a151d72a75f033ed286d8ec52e85e6e46cb05310c719cc52a830a376086eac95c018272846884c26a9ecf6256b10c6f3e28d752b710e7c44dc614ff3aec8c95e6be537280f4595fe0c6ebb51e96eabb1a479826cae2b39478ccaf6adbee1c897e255272966ec28def7531d17df63dee36154dcd41a39dde8a83c6b8705a87c7e24d64724c0e998c9cd81740097277dcff58c4d3b630b52cb97bb83f231e5a1416264472dacd55cf6515f3c198d144f806b7215a30ca754e04960adb032d12d5c66b3643f70d092a03c627ddcafb8d0a4f9410bf8918fc0ca495a3d4ab06c5d258e1517293edc760f4388e2fc509e7a07dc446f1130487a808536e9ae81eec132335f37254a3342f63172f4c1f0364e23507c1539ed0940db3cd7567569dc5a0dec1cf4668ac3f46edda25ee4a171f33d54b75e199ff1c5a163c4d966afb9080840595722c5d1462df4b89d1574cd019ad84a678b3e8cdbc090a38db46ef133dff657b72ef3d45298756635845a607661714e7a13872c6f9e3490e4bc0fef47d96d2d372eccc3abf1359b34877ba3b9dfad10dee9c7923e327d0f464f8f3f1cf92bef45ceb6ed4e80226bdf2713958cb11f5ba6ac29371fb0fba72ac1b303231ab7c0272924764c6d73e355c6493337bc1a1f70a9127e9dcb1366bc88480fa2e15fe7a72fc3262696037b282f09d9db6f75efb95eed8d5c9a2b24651d3152db0ccdef7726d9ab98400f1a6966af4c6b4f275f575ab0d7cf1900742082dc2c73b71128f278ba72446f0a253059e9192d5485d4f35856c179c911f931f5ed6621221f54a01b4ba8735532f8920492582b6e32174517c6239dac751e485b3b00125591ce2199624bf52b33f0d55c331b2ca2956908e249dcd374836ead3418c17b99f4a5a31dfad5b84911c653934f64fb0c2d44496b8d33c5bcdd43c9e65fa4b146a770a728e35ada4c81fe9abd0642f1911d09f1c35290bc6e99ec8c5a9ab4db662cf5d5f477a5812d8234fc45ed09b9b915d29f3c46b8d7d545836e009e2f33e0755973485f187e6c754e8a22db0549ded298e8c032ab8de38b920bf1947d921d62b794879f1d14fe9109fd45955fd2737e239ee10da56291136f6c604c8f648f418067237eac751e530a485fbfc43213591b5bdc5edb5219e326df74b269185da19a9494f3b2fc0846315ceb75b71e065286334e34b1e60dfb934b1486a23e75138c172d11b05dcd5747318ed432de5cedf316a0dabc16dbb8bd54975d3b00d2e914b0017e0bcba33c26a24eeebacf3dbde398ca1d92ee7b16f27bcc00c2c2adc1420729595140c48d7c68b92adf9e2aea8feca9416f83bc853abf6e849f354412379627d8166c3844bf60cc69cd71caeb85d2715708f386f5ad1fa0814d0734f7edb3b95ec8cbaf2173e7c4105a7a80af72bad55515de8518945e9b149e5306fffe572b26142b2985e55f487f018e2e6a2a0adb738dd3a372bae00ecd8c30036a8b00f6579f8fc72c7f8c2890e77a02b0484680af530ad5698051092cd8edc27aa9b723e367b37032c10f504f4e20778a6ef4edaae7348c68826dfe7b7eed957e1da58dcece523d2605b1752a22f2c665d33bd8c6f30b52b40a48e297cfaec3f1fc172a16b0b7e1ec334784171c945899cd28e42beb620e7be6ccac7817d29fd1c5f2ad485f8b4a44fe00948430c6604fffe52ffca8355ea4d4e32b0395ae843eaaa7205e0070d0ecaf6715cd4e4546ba0f85ca446f6c7ba958dd12d153f8f17d248724ae8d569f3c7c5d510e892519644f89d8fcd96c035268359cf54812c10de5872bef589c95edeed53dbe78a6ccd8542ecb154c6a38f392eaa62c60c6f19bf7272898be9d5a05628df5310b342ee9f1e5b247b73554b593856f74b2cbf257c4f0a45371dc03d4f41147db13fe91fa7ae56982b4b959199cd58065e276f598175239a72655ab52b4461a043da4033ebb8cd778a8538e54c8f856106cb05f25c7f5c8ce12d73aee7db524d16ae61c49c33520e42a22956150fbdc9c312ca40ce5e061ecd55540c8a227568d6eb51905e193bc6b20695adba9f9d3dfba84b52a5dd6d6c68148bac9d3a144e1277b0c546e30873394f51f8e4293da521a77465b87a0593787ddd71ccf9663d4463fae0dc8b58c6be2a9533cac53fae9712c68e9b5172b17a1eeb86beb19a4cca73e409e899662aa233f92aaa42006d6e0acb52953b3dcc20d77f46536e9742cf4c1881a69921c44a57f39d5b4e66fd9001545c6df50487391d183d9b77eefc715f421294e97962c6af99e542f43fb79d62fd15adc4562101ae74edffdf3cc4e905de989685d8140d8c2f19df75026105bfd3bf12da72ad0d6e5eb11b7fe49513bc26dd061a5032fb6951f91324d37867f0b70c70287242cceac68160fc1b073b94ef32f9f05e6ccaaa3873a0de6b79f1511be258021b320b7b399d2ebd6b1002433f3a48efcf1203db34f8068e35dc3233ef2df26972067896f3fe37de09e561ecbba5304c7aaf9dedb8c7195111fa10575f13add548d8b883b64ffdebc91969f8c85c03a90b99a6b11efa092eee83ff3a812c893f7255e22a0982aafacf4dded262092dada60c601dbafc91c4f406ee187edefa3072217f267ee97a5bc067a9bebb9ee760884daf314d8d5e15b8d3f3f3372bc4e260c5eebc5a36f572a73f54e283f0851e7836a505d8c0452595eed7fdec990ac864a62cb3ea97183d9d457ee78c7f747d1024609ff9190e7b38f582e5b39cbf75721223e3e1de8d44d8273c7e1f82911b823d19fc76ae8ca8b8dce28f6c20d48c72e72429ef36a7487680da95122944679fd14d3c6d28c81518795bbdc811f1ca6116dbcec24b26c708ae07d82b8f7284773f2334946f15bc23c95728110229553b2abe58924224ed0ddda47563a8b45ac805b8fed5584b7372bbfd3b5e6070f66cb48714f3b42da31cb0114831e4d194b869a540a65060622ea39e48b4b2b5397281dc7fed91f42d1c39c1ce86b43725748ca2eeed7171339245b201ed12c65c177ce4e9084d8ee6f412246fe5d058d2d3ae638db9117084b5cad196863eb9735c57231f9be1011183013c39e2d2d02bb6cf9aa4a765186a6804b6a893eec6bf724438eddc7c6196d4a139ebd6988a1bab0e41de685b1302480a9e0b964715df6d49e94b9b7eb3cc1711d780d13bb16311c6f67ec5421ec6b608dbd6f37d13dd2ac8fe5859c6b705d084534cca31cf08b2d0c786d1631b83197b23ecc6aa5300726994b2680004b531b600aeb208ce53546dc606907bc5e340195b6f8284341a720058cf3a644cb9c030c3be90b8b10c779edcf1ec0ae00e15245bf964d41ce772ce56e966fcdcd8cb6c7d040b1245af5d084d1892d7466d43d02fc2ed14bcb672ae14db8f2377ab216f24b519b9957e49a9ac022543a3c3630b1835a6650b51723ad4faf8c62cbe87b75246156696342cc7f6654750e226b2a38fb83287f50072030bdc6dff5bd7623c93aac277da9257d4a0e574d91e492c05b49ecaab3b6f66b12f911b81e4392b372a54ad567b11661d584598f0a407da3f68487f5a369a728b43a0650dafdcf58efe31db2e35d603d61d4b7c776c3821c9f3efb7ef6e3e720b267d3863e7a862dffd01b1c9320f4cf32759e22fa73b5f21361c63663bc3725a26679bf2deef3a9a56b90ebd844eefbccfc47f889944c1b91df982137b8172652ad984c9105787e6287423cf4237a11b5c5a65e8533e1611a80505f2a14872058be83d28d3bb1ad4eec67ba537e601da47435319d201e4e6e2706f8bbc3772a7ec76f570c2970761dd3676e22d0da8aaadfbe120b6efcb8f1e7d49c17d5b72f768b0996cab0cd136186645bed53d75a5238c90869a575cdab37b2ab1a0d77259ac6934b5a8f7dae100675bd24ed24d779aeb98daf1daadb34f10bb5ec22a66e432713c9b367ecd91298cbbbca4e27f03e332d93f721e0878efa9505b7a2660b64370d37bb7d0fdc444580608fa64baae9781ae018b0569ad3a238a55966b72b6acff803b69c15fba08ce425864a9d844dcb562999956eaa059e4cb98d36272ddb340c405c6206628bafe8c34a67c161f4c8d46459c610b08ba1bebc264ee672a9e65b3dc566899727d183804fe02224009a9b1708e364c8ef66767c7acf8049fdc6d20ba24c219e69b4958a2e0706128977fb1aad9a5ddee88f8d7cf3e890118263d92e669a44043b30734f5768050d40ac09cbe8d95cd9436619f5ef4185218564709cf92cf78f7f8a6f2b292c0ed08bee1c1f1f8037d222c76de1b8b5e721db60053801dd1e9d5808c84d82073d64588ad082ff2b20bd32f05e4e0404203836377b8d3b80cb57be27898839d4673a0b65c7b8ac8ffd16c1cda358c9b0a08d94f9a0dd1d8fe5cb9af5a1468f38f10518b21026e50a6cea7fafc7699754572e8df1990ede53f0c6f7af08e99240874bf1533bd3f597588843da30e3f37094ce562cba42e0edf05860089c09860a8e8ffd54ca587faa41f01c163d65bf92139a529752a350e16015c5a728bd814d42d9379e48d52e09294f6369336cbb32f721e1ae920e096171f25bbfa1f568dcaf9199a21c5fc1609c536f5080dbafb877250e4794fa19da950c9790e101b3ae69b92044024622f2e2d0f0b84efcc122b3760f3b778228c66ea7b2befc5184b9943c140473ed40ae3eda7d04711af25131363b8b559f9f6351d03591788532b6a42fa4e64677bc88573a033f59c4a636f7227a7332661869e77b7c6a79ed311f3d9f3f83ee1eef2a9de4c5724fc6633da32ff9673eba7ba25b4660814b100ec88a2db4884595b95a8f23ee5c8da2ae4be723e2bbe43d0bf691d2b460d9ef9e8163802278bb6b033b561d1f55c45b137fa1975cab9f8edee4e7ad1f8e517808e12a49ffb1374ebf75c980eaf5f42ea14a372fdbf62915deb5fab9a6b6d8f70f09ba9533799c8eb4ff41ad4d8e6c61a82307268d6212517e1689f1e5d49407d948d1aa71b3e55ac633d0eee0292f6646ccc2e56d4805ea1615b1c17a61307d611004b9340d3e17c86ef315fe7b804563ed172d33d7d1b3bd0dad38ff4648e3c7a5714992711069fcf4b09d360dcba14b93d72824fa9ce05f1cc284bb628c7cab64db8967728aea388d7d5b0438fcc0d87a57211cfc60b85c77bdf4cb3e9cd7c7a4ca1693058421c034d76c188e9fe10f83f47e82894f1446984873bb1522bccbdb1ed2111585b7b22d658ed18e272bf340d72fb9465591682bcaa71b4c0618f92b09041ff7609f4c3e6d0725c9bacad6e59721106539724d02fc9fbe325fd0361d9ccb0140c95589fdb29a5dc1cf21cde10718f5ddc6b32d73d97afbc66cebae652b5438a19239de89780da5d0f6946c3c372a590afa6fb1f0cd82904f2868cbee5b5ac6f2b2b6ef09de8cd9ca9f63e50ae0d0c6b1a21a1077da6816b78115e4de82ec86d63837f371e4ba533dd28db84a8727a49cacc0ac103cb98769c9739292bd651e000e818f079bc04484dd124f41d5470fcd8fd4f54e5d2f7047948bedb7df14a3b210fde93e29ed05d19c472467005ae561615d4f9b0503ad3023bb4c128c513a68ce6aa0a30cc5cbc1d8f956b594250e5141a1d73300bec80a43b595bdb2bcf7ca7bbd166cb045804c64b6124c972f358f5ec38c4cfd11e12ae6b44132bfb2854fd50ff2af59b38c17bd8ebfa667217d4e98bf89181370cce75300c290767bb3bbee37df8137b8f1156fba685ce720d611f24a8b018e848094936f5b15dd81825fded2d7d8b11abc508a26edcf872293d3a3652eed9a4c5322329efefad0f9bf41cc71f01c72010cf67af8a092c72db918c2cbf17f14dd59568d3d85d8435e73bb041084c607eed84489dec95d5631f552248b6f30e69ba2ee47909a8c6eab4754aa8bf650494831768c9ba837a66e500b92820a95e3e914ef649ae1f5eee896b28836c88643c9acd319a6280d672c6a2566909f4d1fa5783ea392ebac30dae34f86cf48a2289934fd953651619724520bdc7491a7002f7d06271484834d997c207885994c7b2f94db3676da69b7285966ee77b554ee85c7d69739f82d373ab18e3c796cd125d25f91efb897e455265cd23cce7d57a19474b9bf616100149b1abde999abc73ad51d67d62ec4ec8723788a0a8bbcc9ce2eeeb19e88ddccff540c7d76fddefee396760ffa6cbb08d5ee3247f80f8720cf9045bba660611483824429c6ca144061a0fc0cbcdff39d0723c8371691ccb6018ce659a10bd9ec650f3cde65a4dc38230e5e6e97f600ad772885b5f1fef7d8a88d03a4c09391895b7444153829c04853e55b31bbf43258b5f68557078c1a1ac6dcc29d3376f1a9cf454942ccac690cf8121b2ace6fbf4c472458e6869a9d6a4620ec6592cb14fcbe73f22e65b0afce4fedbd5c281337d9072cfa211e469ca50d40bd60f05d1681af61d8e07d3fb1c4839e6fdab310bcad6036c90d4d0bf1be5e822d3c429b57c73831efa69c62e733c9d925673e656879459a1fd278b93d8f2637634e7e000af8d1ef64c213ea376ebeed2c858d409a61e72ad90e49d6160b44244da2d0fbdb9578c5f6bc9bd891c7a8d2a56fa3d12d0903c0d839bc42f2d1a7e14b9c2b71a844f0ed3e2839109c0f7589902c390c2214a6a4fce3a2dc61975e769750d8059d394183824370b610db25cd2a5fd4c4bc295722fcd3dbb767d3bfbe6486e319768483d6bd23fd859c98837fc6106a512aee1559ff1166432fa859243cb2953675a24913c2fcad93e7a67020a5b9a07f992f0727587f3c1b36f14b1a1b217f481df250d85b1e9ff21bbcbfb628e450a6c3d946bc5317f906d52528820ba0d99ddf068a9405916a10633d76211e994b49a1a9172751075059336e77dc758a2d675e0d139d2f08829c8a31b842b3ba556cb6dd9304f998b749cf57e12f17fc64f69ebf28af68c39e4b7b1348cd658420b5e3b44724a0de7dd702517dd758f3c31326dc3e35edefee59502cde1d4ed0e0c9ab473721e1a25daf980c92c2d02f2e96af0506fbbfd898f26ad0469774080c16f009872a042a1b39045eb3f587f12ff6b158a44f4f66c2f0c80d27299406f4b77368172d119f7df082363cd9f298072757fea7f7217d60c9ba37e126c71e0c38fe6c472ec6303282d50d97b2c9cf4d50641a44181e86c3c4b5927bdce7480d8d300ab728d2aaa6baf70237550ca6bab1b3868197e805716d6d723873ed8ea2ff6e40172f22dd49abb90608812c45b6d8dc93ccb978ea75f4d039677873a5dc4218c111510be183972a4de1cb7aee152c556ff048f5b7c32efc33ca5dd48232b6afb4024b7a08f8a8f09d7144ede6dcc9a3debcacdeeba7f87294543c604ad2ffff59072840d1f63939b372666e8f3bbc7f5a684cea19ef7e5ee8fea8c9913a9d594126ef7aec9130271ecd1b37421f8f17c7918303130ffaff51551ed873ca255690d728942ed8e41cdcb7eced6667473fc2b570abf38f17f0cd6ffce9555de644feb7280dfbc530fe14c946c43c1f6e7b561e172f662dd62559df31b25addeae5908029f783e0db5c79acb59e4f9e6a602e7e58c666f0494710672fec76531963fb806a53a34c46bd9c4162f6944914865fccd1b1d13179bde6fc9de05cc020ebb42728cdfce4584dad35c901723d2cde49c9538ffa15feba89cb52e4d663f1efa4672c297434a90907d5df23d3ef93a2c6e4247976c635f96db6175e3023c7f024f72c5f206983d225bdb93cf99541afae81e18c476e4d5afb9b23deab3e1aaed3172fc0afbfaadabfa7ca8cab08820d9af6ff41a77796ca5d80c5b6dbb8ceef77f72923e0fc1857dfa62ccbe25de5d0bb124734e9a512abb7a70f138cd54ccc1e57256e5b7a86d37474029b885a8b786d790861d8563342f43a223613c33aed8cd72e1637cdaac83156b7040fb8ab6b1d9bca6a8afd407d73e9005dff4a6dc34b8104d556d9e86d885cb3cefd5e3d80e4888109246d5574ef1fc39e0133821ee1d72d2fd54492a7c644855d8730aafcd6dadecfdac64b5f6cde40003cdcab89b6772885230911605a81fb8821e77fc356439a694b65cac3ea1225d7802fd299cd36081673e27990d8b3df99fc19872d3e9b737003b6765ff7111018fac8ff28b420a247875505db29295c42bfcea59c32da72da540aaf0d224834083d097b7219772186f1543d94d6d87f5bd4297a9f95adcf9124309ad7d9887aa4437b552d217720d96f1f9456e5b1c32cdbc433f1992b2f16b008ca78e998c61d1f858600ecc7200572e824f7e933b2bc9decd7de34e9919aefc4f7991f71d8309afeaa3256b7280cbeec3d715c78e9587c8ada8537759e420fb3722797970a680fb9d00118a5b5f21cb730ea6bea3a0d88dc95f187a46ec15ff09dfbdbcc4c72322a6b10a23477a9b8cbaf685767bd9f24d27584d3a0b7f6bb153700142643460e2d61471a4651faa37cf1496ad2a5be1f8d9b01ebcf52b4967ed591d24d0024294ec235546725bb442d1f081ae7437c95f27a8efc376f8d35e3d4b9c45587a8714e772b3bd0f7bb3022320c61ab3751ed199bf84035a2bf00211d4d9c62437ec413ab4e9d0726964e8b3d8f2e912406febb55bc0e1776940eab17ad858da985f2ba94492ee4d41855be9a0319c9d5fd202cfa5d8306b6999a870f0bdb4e2694e3d562bb3225d3a6033b476b894f5ed8c762c8f376625846492395a8464eb4ef3f64ea0a30d729a4f129a538835fe6133f152a33d59b9062d6d94c1ceccc80f334f74b373327206ab6359da32effa92239f8de476045b40f54725484d6b133f60043a4b505172943ae341534552ba8febc8a95df1256d85640b8a0836ff92f32f9b3c825c1972143a7ee51111d87741a3b596cfe87f10c0e1bbf7f9abc641ad506fbffca64472f8bcd4de8f72a58f15073c36561d05abdde2b943e344d675afea188b7a3a007207670e78314cb93c27d88da3b55d0c69291fbaa8802c0672fc64d037edf6b462d0748da98462b26bf866aafb71aaff6881d90794c1ea333539cf7a0ab9e0d772a2b8c216e596920eec9269a93109b24e104a6455ffceec0bc1e47449e5554708f5445acce1f6d56eff99c2d830cb170bf79d012ecc65c8c3381bc6034be8e872d065f686067a3d154af9f22b0e34d27105e47bf2a2e8ed073b64505176107c727aeb1abd2272858acc47bb5535d559b14b91d84592ac13797c8340c22052fc198688061364b571e2a753ff520f1ce0ffa9262411be4a22a9eace4a55b50bbb1a246f51d3ca5ab52ece4bbe2003a34e20ca9a2dc7cf1e728932ba62aa9b4a0372254365ada967c9c82cb819117b545eb0090bf5bee3dec41515674796464ce472c1b0e5b04186cc3ca01715e567aaff5c72848af0aa441bae2a0eb160315d8e72e4b3f949e64048e001b4bda2f2b5e6bbe44b54e8059329cab14037e9d10f79721c1a1b363dbae06cc8311a68fc2d82e16892541815e80a0f864a150dde82cd7221f074f342f0c2bc556c1457e9271e13263f7b1e8de2998e4561c44e90c66360a62b7f7576d51d950a61f7fe240d446de165eb8add4ad6f858122ebf2b145a722325ba092234ff1ac3bd8ed3a99511a6fd0190f7653614e67c650a9c9d32320be2504aed2bd27d6a478e8143497879f8b982e4e9ec40ca193b320e8a13167b23288e52105f776a1f8ddae9fc44cd033c6ec57d3a88705081bdf59b08af63f57285b4ec7a451a7e9a8e16d38bd0e3bdb6e606c4fe08749b224b566c12328eeb72a137c10d4a83069991d7098f2b40dca66b5f5d244c9c7faf2a51fa9d3609ae72786db23ac629b1c7bdada96208029d6f2471725da23f84599cc2f6397009f131c3dfe3d9abe11251fc4367123a8ad6c2061fd02522d9be58845b5426a38f600803b9fd8c5d1570cca891199d1a810178e11994b95d182ce5b538d6f376e61672511453caeec266786f95914ae7b7fcc6f258898e42444b80ce2b3f960fbe37720540ea9f14fb17743c3fdba9aa00409a6d24344ae82885f7fb05e5218556c76e1c39345c5fe8af2e3b8b17ea0599bcad23d1489d7f202a343e50780dae6e7a1c6553574491c99d96c7ce0fe1bf28af881893ade044071bfac1ec6e9c338c1a1aacb6e089500ee541f31d984ad0df8b388c6f31b935043e715b0454b63d3fb472eb9fff083f749d866cd5163e8b5c895cabc0d33da2cdbf720dd78616fabbd072f4ba53b9e3e64e43efc592558af7998871569a220eb90a356dac155a6559ed20458d2ae9815861c52780859b7e984f9c3d0dbfe6f2f2f7a3c9d1ea78d268047292d97842521927aec0ba49e69cf54573d51cd9f9ff59883685fea4c40459336ab950225fd7caabeb4e442be288122de33d50846d5fb57b697e4a35563f6b3c20c9617688802687e508da6e143fef8763f8c82ef33a1106ab92915d609e6b2701aa9ce393fde84742befc0d18f91b25e2c67bb3634e850da103f54d7feb9872009ddd250501e384159dd9cb71e945ab30b5e45b9b8511fb60310be84c69b11972adcd32d2179809be3fde58fdf1799097b483e348455c1aa0ddc68a1f18dc2926e5f94d318adfbde181200423f5d33fa9315dbc002a6437903a07f5ee77e2de51e18502a46db9f5b15d0880cb8ff5919beddf6c4820237001f944d6ffa72c9b72ce0f50186cd91560e61979548def38396f1fc3d3e83d69dccba4e9f97fe71072245b309d2b2d1f12dc35b1c317c61f14f8fca27f5b23f142a77d847dbbd9ed3b7e16e3061358fbf8924aad62088cdaca924e541c22be7f8b315dcca33fe89b720d96bfd4a65df599c1e82436265663db6613e6a39804179515471e5f145909573f904c747c423e0c116ff1a0d1a4b75bddcca9282d245d22095babe004dffe6f5bb054c972ba2a861a6470298c21d8b08a571aa7e2f0fafabe89dd29499f1b72b55f7e1b7fbc33cd1bc8b84c567ed668c314c9a7c0811a6633a2fff999f4587206f542ec5bf8f2e47e2413e6887f2c6d6310699112ff51beec9fcd8a7098a772f627b1e06b480f83cfed52e05315b43925da8684085d409f179dfaf130593872b6a52bb195921720f71f8141a276b36aee3bcab8eb7926601a8857e74d1bf272052671f67fb5bc713d6d1ac2cf3d9148f8db7b266464bd53529e72d049caff4692acef9c832582392d486c5648c5b03f162e8d37dc76e6a0716c33cf83143372d1ae7c0a4d1f5c2b6236eddecd05411f9066e89132bb11bfe22f0948fbe32a72cb87d82a51164d19daa18c7f648eb83c97f5d5975b1cdf7d16de9233b6080c72695379157f23d7a55b489fcad23a1c1518d2e6357aa672be4877c13fb23b900b53327474be6d2a677f8d14a4baac6c47eecd9c7373cffcc1323547a1a7993a72ce105debb0ba9761ff8e68329965df274363547cc5a98d1971b38896ae4b797269ffa5998eff53c35cbdad337dd298d2c869709f58507a4ff5c53c4b4b10fd6a7db491a99caaa8fd248cfb980b7861dddd6ad5bff492e69b2c64c91cb555ce725bfdac0b1df812a83ee24f8abda2043bc29e767cb49031b1a0fe8ecaf2559d72775a3356403f9222ae864bb16d310e293a3ab56af5a86eb306ff6b459de62b72bd75eed546663e71634602cbeb43933620de330f5fdddcf7d2a54df15acd8972e40bde8e53c5ba3fcc54bd70c5735d9ee479dc80da366d38580db1fb3e1aa072e240bf3475664ab4fc31404ff7d27937a59ac49a62902853cc4c60131a386c062ee6a5de325e2d5a1fc48a15bddc8ace1bf533060a9a944729b3582b382e2c725488a5605cce2767ddf39237c813866f4ab0209cbe4f13982df3dfa67d551272360f1df0e227c30c19fd0232d685b1d3dfe2ebcb3331d173a18ef301b83c104eb44d4ff1d39ee5a4ad580652b700fe246015a1929f1c8f3a6284d9f905c84c72e0762eb8c671ebd50b9159c6f16453773f11eced58006c58c1c6d4375c185b1973725e4cd7a8804df1481af960f513188a7a744ddf363bc1c6d24c65746c3572325ba5492d1955524cd2f75b3baa5557e10cc10839f0e680179ca5ff3edcc9721eec830b348681f7d79b375f7c5c103edbd1b29941d7c2f969581cad9fe58072deb0c649d2177a0954e7c677f4c9df73b8ddefb02e95313d5a0dbaeea12dd8227f9b8462643d0df3a4b8782bf35ee6f3ad56292d245c6f39b16c0128636485006797a96f47802ece06700efed158c444696e2fe781ede23b24f412c5c66bdb05c9e0f2157cbcc691946935fc220a09f8812e040c8b9199f0744c8631c0078972479e2e64f3810b6f5d23d949a068f847133fdc6c0a67c7ffe7cc8beedd53fd43aad5e82869e4a421790e6be2f107946b65746696c4ba4f2b8961b0cea1ae2f6264052cc0e13311646709a5db9a88e6b44fcc87bd2da2fa2f9de83789ac511c7235c88f6d68c5b4cd7d03e7edbfae879031a05418cabb40de5415da99ca145964753c4e8b8f52c8dec61feb02f7bb9663f36d7eba8dfe4b685789c369db786b726fa859ac1023780c0d8ae2527402d92a9b2bd3d5de8d7ac7ba4af548d3c7497206054e84c8231976b102c9ee9513c8534c346fffeb04b3a22265b124d6482f56dea63f165301816c717971dc810ef5007a25ec41df034a6fdf1e597ef240ca13be37c807ac2b5d48d32caafdc3701b8a9df18fae2e518cf51db233c27dea377228156ca38ef261d6594b7a74d69909eddccd2b4dbae8a05d5c4b9050863e82195d85b9bdb3236fe86db10227f842e35522f5ea22bca2269dcb4cca9932ad1f72085c1bf92fd90cc6f9272099e45adaf8694986f29ed217a17ca031f78a49d2725911d8c2a7c62d2448ef22ccd8368b53cb96e7febfaf08cef94ef06d8176f57258b19bdb2ddac5d47bc37fde5ff95519d8128a605834cea8035f7f0c01642572a0c46051c6180ebca12687bdbf24985049c13d9dcbb461e795a0acd9f635855cf86c86a5a86eb0e5706311c3507938b829ca2e52b6836294eb43771479129e728240adc08bd08053d2186a6f68c1eab70e2f8070cd7758d8be916402ca62df7255ce09423e7e44c2f1a66773b9fb749edf9fea960e355edc1e0f18bfe22ef172bf7a8c7d2c9f61ca4ae490d096b7167a7e8094f64f6be9995e618f31e4bf6f72314b9e452244e8559589f9d4ce42f18fad41b90345115c3117812553a7a3c94a4c732ef225cecca5d9c6bb421df6058789c8cee9354a6d3354dcbd6e67cc912a68500ce20c9d296e62637aa9cc9aa2fa7185c1aebb35ca9abcdf968d2b2ac45fa016990cc15f7c94a0f1a5c488a1d08ad78ebfbf6528266e0e5ceb62cba29b72e34e4ae6b7a9b566c6d2a374606a8e890e7fab0a5d994f3a796c85bdf8d64b4b89a21511a6d7e607fd1aee007ed819c710335949e590b75e9d36c48aa273877245233a445a4d8a109338290abd3c8d2fe2411d268518023376320a29c618277216fa28a67da45db99e3d381cfa208f7c703997541aae19e5f7bbd4283187287219fc522e3c125047cd5db09b0a7b062699cd2c144ca6d430736f2e142cdceb223e9d154fe730da99e145a0f7bd808071c4e1d6fc14547b4670242115d169d472ccaa3973ce0ab886c27a5155755a6edf07aa8709a974ebf47b78c87a6768e31e8333e668c7affb5d0cad0dab2f9542612e5cae2c72c55c0d1f10102c7c666f2c379fd5ec1b909cf522bb47bad8de37dbfffd69101fe4b9a3750da2b9ec1527722068ebc7283787b1ed64ab398d80491531c31c57026637059f31d89b59d3b5721e7fef34dc82093d903c64b40d20ce2951e0b84bee5f21b4526f1eed63539a0be62d5f1faed587d6d7f6f160ca84f98a945d3052ac58e9b7a136d17ae323733b017a65d1d1bff08a5444d263a7241a2c0de299cadec3a895df7ed3c48f980c6e183554bdb0b42694339d7503e08e146301a5572fd5e4de5802d9e46a9654887281809aaf3b57875dce2c0fa0b8950d6f28a569c67d85d192c94bf8b7239ec172d547dff8658d3e4f237f906397c5419df40f2a3067c9a67fd93365a8b20dc3720a2a38646a5fba7452b22f6e29f8d7a8116eb48fa58d658794387f6515167821d68b1bb0602c01a1361db6f56987ef798262e7539e0f1bffe8adc5c10d26e672173a3280c2cbfa03869d2497679df47a3d930524a33787ce4b60be94cf657672ff19a2acdf42b1fdd5eaeb6dbf7de7587f7cdc45ed8bd3079151f80c073e5e72f75cfd64fa2b2af4ce86a3e74f91b1f161fddc640d80f01cc994c979adbac072111a52735999ac47cb5ff79cc286faac74af2d26dc185f1f0cd2b60a97ef6572008dc7a8fa82416c6e986f1f670a7fb51dc5341b7cd6ab29065320528c4b3572fbb00649ec63a7e5c1749d1765e00974de35191b7000d50032d08fd3534efb1646c9a6c0e491086e654e954e75b4cfccac7dcb8cf48803463e349c8592520a4547d4a5d56097395527fca6cdea13a14bfebfd1f1f269c3272ee7fb319273a868471cbf78180f4cec601ae91e3b0a260fbceef48256fdf337bbc234cda2c53572f1bba84a8b407e53397e51891961a32388d6380e36080ebdbeed05c4fb4a8c4b4afeea157646f4c00974d672f5e2b99838eee829421314f46576c2ebe3fed272621672e5a0b47ad08ed27c87659083686045b7f48e28bb2576c80c0b51895a72e529f30d6de464680ddcbf263b622fa16722ac5dcd8c747d70d82e9734c8637237e7fdcabfa2d81150327064d3a036f156f7cbff3ae446317a711f397023e972c72330acc6ea3120fb06d167e7ee9f00e8e06e75e3dbd30e550086dbff9aaf72bd2d4b8a0f7a0e88542f7597d178481573f2135f77efcbf12da58dc141a3f47245bb26b13615c13bd6e8ac3a76452e1c4e7be676daa3c44bf6d5f2fc242b2930e3605ccbd762c4ec1e7facc11fd5356ab436adbde61e31b77689fde11a936f2213dc53d498819c00fe83fc5ad3ab42adf8735ff26d7d8eae6728b19f5ea4237202015568f790801e29cbb28aad8106f51bdaf9422da47c6eba6fd82ea26f207229ee1fbc03ce639b1342adb91fec9555ddedf1dde1eef070226be286115975174c0ff058db722232b0099133346406a4e2ce9cb311c65461a8924588e94bf97049b8e6d36cc7a568704028275101bfee309dc3d78b0e4cf310bcf7a115df3b4449df616abfac742bc109fe76efecc9e19a7293951b3d798642cb53a827b50b7240c66bd71fdb488df0b3d678a0a3b6b08392b2b5b7a01367bd9cdc8b32c50746c2e45d75e5fadd3ec75bd727f1c3b58b53118b6a7b7907334e5e1a2b24d2b572253781b6b934264a5c4925c60143cf6b272d4de4282dba6f0d1581b2bc948a72f4cef4224f62ea32e67dcc17130dfb848076d7528739d5251af776e73a6e8623755a8591f0e187278a27c10427f400c6bbeebd8a9d1cbd132b15fbca953d9001d68999cd8b74cbd7d911fd8dc8cdf83d0cdfe5b7b1ed89cc435c73eeab38a272d90f7de4534ffcb507382b15b1861b2801ac14c12795d06cc148f3f15763c8724d2b3eff3ac4b192a9d4e4b0f700d38f791fe0fbe242c10197cb5bc32615f543d13f48dacb8ae1ed3891f5697039f820d521ac2578060373d18d3cb3768a9a724ec8666fdcf611497a9095375596af21e9d057c1c74266c961a2f0703b8a3d638edfde971e718057108fa5397e5d439ef33425418f5a86d2aa4d2ac874f19472917f041ec53e9c80de19aec9014cafcace6f3a7910233871ad912cd84f59da3b277ff3624ed9a54df8042a033565c43ed37eb48e01d7233211cdbc2343c598721d686d03b1532e5be1aa704833681cc003f8853008271c58f79aaa368e1cc51d6b8d5fcf6d265c0bc12a7c8736db5223356908eda710a6afda9f62b1242a5272be7890a9de2a3d5e859a945c60248667a07038e9f8b5a53c3dff468d582108725565665d395203b92ace207784c53934b0f9f278bff771ca6d420787fd037b7229b43d9aecafa2770f104c77a6c3899693c376c82d704f8d31925389f20c3304ff76de54225c2d6c4826249a617e8cd12275bdbbc38c0ed97c1f5512b34dca092d74c52c6ebd128874e2bde4604620a0106b87932bef30e5f70c5baff8229d37d77a173aaa056324faea24bc1e8c4d95f7d7acc94891f9453f21b8813d788b720ee60c335d61875b4e478482796e8daee6b91d6e9e2faf2c788fe6a8f76b5f72a14a390877ba0239e3f60965c9559ed95ff0668095f0b96fa12972b98194ee7211263a766cd0b3883b2436111cc1b01b200361a4be660e92804ef4a6b25e04723fd3a7c5a502e548d7f57cb76787870b7f5c02d66efee5182da3c8005ac3202621c744f74c8522c618f4ebc2216c1d0915ab06c44dd420455cc89e517d37df50b88bc3da61042c8dc8a30e89713fcdfa5dc30b8755dd5fffeab7c83f3dd3d5728a53d9a2586789570d1eec14dd6e5e72f76fbd33deef27ba97763277d8de00726d13ea28ad64a0500b0edda6e19f16d831692d8bad2bbd6077489a15e309ec53cf9251bdafabf991ac5ce7059116a78855015e4413da1e7d7667a017d9ba1c72ee6a60d91aa6d239b2dc1086aefa344b3755fc6b018a20ba1b56d144c2566c721f3fdd2686b55921ca7589543cb1ccbc83141d5aede3bd973cf83521ac72c32eb9e25c78567a0b0c3a04487d120af648d1a9c16b8017ecad66c7121f185eec7235c2896c50ef6d84dbf20a6dbd5e1be65685b0829ec24447ee9b0f91dd649825083602c1f9b38671230ac83eca9d5e4b339e982e90500cd4ba23a6435e2cb97222c1a4c82b26751c06362a29a16bb43c19b11d6bde8d23ca40edf65238d56472ceef319470f9fbc550a8e3267b01c4fae1b1a5f9546f447ff57ea24d6932b37220bef66c1c2c0e0d19f4df997e9a825b20c14c735b33c3b08eb00def1b26337271782bdbc4acef327d65ddfc9aef288aad517d4c5b244a7dfe2100f89b4d5c727486ddd829ffab487349bb8bc47b6b097dd2193e762feed26d1287b17934877253e2e495854326310ebd6f98d1264d6eae88935e2966aa9e9d24867d35b8aa38911b5f6fcfecb49c3a3b1d0256aa4f64d834a318c87e1f6c2e37696b6d4fa072b81a64c35824cbc5ba983e4850ab3adadef97b3dc8d843d58da31c666e57cd72fd65619b97d5881d817360a3995de611760e9df30b9a7f6baf7422cd0dffc0725bfeee514b67369f0c6ff75a6a179999053c5c9a23fe27be70be40cd2fb970723bb95eb67d15ab6d041d69068947ac3e644ef5ce11a3dd22777387b068a49312ebeb101c80b019703b9ffc02dbaa965c6c15d2a264524bfa35662e99b26fea45186577dd9d0a2351445b790ae300fd9db5cba1f1fb2bbce470fa1b1a7e9dd872f89468e00fb30793f19c49cce568efde2112fa1d83dc5916af373abedd1c93297b34ec5f735b485ed4888e09319a73eef86a687540d324465f9ea3815e9b3b720dbc9a0ba072a75c447e1623236a8b9823bb89e2c82d0ea6b6809384329ae07271cf5b6d4be58acb3857db4f4cfa663f6f736d43962cbb7230eb0a983b87480d00267c508540429f1dbac8bb6f0e5c1a06ab338c0c8a6e8200520ea647b28c45b57764611b57e2143aad3c2effa213963b7f7fb385a9ff005a578fe36c8b374f16718bdff64c56cd67c092be7f5748f94eb2170ef9ab4495d545785b5bb77e52722048b888ff3823b2a38bf9b3522875fc16483cf1e7877e827e094047c09172ff9bcdc161c3b4fc35d7e67cf9531d0fed9bc50f0914ff600283194715eb6b4c5f1ecea9bfcc61b7344832150e6cfc1c9c095424e23de92f1ba7e1cc03b3f672a06d3d07bd4e184f52206237400efe86b6b635ed40c4cf80ae03b520dcff1272d938e8f0c4b3658b9275ac47aa5d25e71f3839f92ddbf110b88a3eb54980cf72bf2b4902b1f4365fcbf735d920a76d3d7abce37699d62495c405c8b7fe23cf5e0977c47d462dc460d91834b4a0f9233229939c6f6bf18a98fcc535f6d283415e386d07fb73387bbfc0bee763a732c28aad821bd28e886ee1faa6301a578cce01ac1c84484f16a8f30fb59b7b820c7de23b33a3f47886851dad145bac2d808272bfb435a357815cdde16c12c4f9bbfd080bf9e712dd54bdbf0b76ddf133196372d196221f2d68840f09044d2b3dd8c450e0545f9c80a9a75a197e8afd0ba3c363e5eda7709ceb943441d7c871a1a61f2e140abb91f049513996457aa2cb132c6da6520ed22581a0490043a43953c9aed29eeff567447fe391caa83832850d004b820b087cb16d3d86136a8d3912c1d38a647a44e943cf208867919506e08e48722ecb399d4cf4a423ec7a287b267e6290257cd07967616e43505db585ae4c95724106c1ee2c240fc516050ec116bc3751ae9ed4cce442d04acbf9617f196c3f39882e204b076a13d8a96b3486134c41c5f8c96a7ed9522581f408d7c45fa6a2189ca8fca7b19849ad735464f772cabd59e27cd1edbb7579def96833f0c97a11720d55702e7a4ed987d8bbeed164c4ab56d95054457205708d8d52c82f120f517275383a99b5ce7504f0e3ff3b01baece26870c8451f8a63e9f125dd3b2f9dd766505583a464e4c689ee30f0c98df9fbb8691566df686d2fa665ce2ccd58f29559ec075584d0555d67a3e2d47019f084a062884adc1e75a05e8ad1bc17708f0072f34931991c1ec16b5a18a3913138e9da5729c3c639f7dfe3fc953d3a90596872cc9e674d539bba01689956f2eebc5c7ccd3ef97ab74e2e3e8a377d39d7d0465a9bd64fa7c218cd5fa1172c2065854ab7451333235d4c2625fdec842cd7af1762ddaba09802698476483725a35aa2f49cc35390254deda29e4e22865492a19272a465e84e74f8205f125d2ce40380479891f12ae9ae2c6e15190e63a300c10c43254fbea081633e501643d32a3808c3e28507ba0721dc3ac80ee27192f0bc54721029d9d0fac2387f66f2bb699084c661f6dbbfd1c3aebf7031f9b6d6152aad03c38f6ff8503ecb99a165d0d810e989ae8bb807ed270623c705bf4bed5242f872fcd90bce7a521760a76d6fdf3e1ed5bb3bf886a50f870376d69531ddc8db18", + "0x7204a4754498e06db5a13c5f371f1f04ff6d2470f24aa9bd886540e5dce77f701dc67b8108505c5bf675014ca41c819ef786c1de2a8099f6ba4c79bdb87da6055fdbabfce532894fef0c2db87a07ca982d1743be29a773b3bff5e6e59c2e298f72463dd5d53f5e059b0765cc9abd2b26a843952879df2bcb8fe88a2d09d5c612728079d9acfc46433269113e3858a4f22d7a92de1846678681669d38b1a5e2cb7266af98a66999923431cd5d53e797ff0fba6a0054c1496c3afb5564bcfd19de727bbc74ee6425cce0c1bbf296d913f6aabc7dbf6947fb984d01b8421ca684d87244a1d3b5d788838df7bf2d24afcc411db8ad3c2bc6b4ff3d964655a5d5e55e72c62dfe4bb029af1502597969500b93c0134f8cac9f66594aea7347e21e4eec4166541a03ccf0be5c7e24d33e3a57bfd0dbbefc8ce28714d78a369bb87f3d1447f26f9cfaeec65cb142cbc158484deb1b82e28545813459ffc10e6cbbf855dc72544c4df4205eec1b934b87518318c79e3abf9e706b80fb73b19081f344d7e272b1289104d30c3dadacd25ea8e28cbc6d1da0353f346e674b8feb4f1980d19b722e5b0c197590050d5c20bb2e3d5369763d3e7352486e0fa57f6c4dabf56f7a350dbf01e73b24c032c0469c6729c9fe210e2419ad65e4f6848017e18f5ba65d72f3733aceeadb4148267cbadfe7b21f12fcf95ae3584227128c74bbdb14040b720426e7e3d1ea6e7d23a4bb7bc973d46c867c53464e3b500333b03a4fda717857ad21acf7ecdbccb5c62f016db95b5bc9249650b696f69bc53ed6a41a20b00872d8fc88e52885b9b8856ab5f0868b21d36b6498801b70ca22f836ecd5713a5572e3f85ba611ef0d69d3ee322e4d82e9565d16b9944d80e8357b288a5ca9681f502900ea5181b7950b8b8f606688a7e32793d2695c49e6bd3cf7947465c0d8b172f6f7ab8c403af8356794055e8d3fdb41df400e8bfd0ec36886d6920df17fca5b89687c28a43d46e47c20c41f0e626fc71c848f3fac6fd8f6f6fcf4c328efae6a6d21212edc8b79170213d6eb89014e8cec02f869b1b735ea8054a872181009722405f9dafb4d7db5626803c1dbf3716957ac20bece27991f9110186290915c725516f6747d6687f4c748989f9bab899ee8e8c0e320574de9ce621252d7a98a6029042617dbda870fd147db91573f8b50e1d4465301e7d0d1e711dedec7a098491fdca3a66067d6fceb31ad36dbb2fd92c997f744fe7af340eef510ebf0dc72722fdb1354b9da81ef977a52843d1af8599776eb9bd6529b3153cfe8f727fbbc72c4b20539a45ae92f1101902c468e586254808560af368d2505bec1b22d9a4c5039b20ab25b5c8e17a4188d0073fa57b30c20da250b7d97c60a89b85f0aef6c308939a1192fee65a538e775bf8cd82fba17c144f6080bbf5bbb910dbbb8c4935d5fac68645ed58c7b226c3c275b6bc6f8a8f8f80282b13562dea35683d295a2393629379bb984c18b1166e42eeb264666b530bbfdd3449dd9758237cc517999568b57121751350ab7019a5feb8e959b967018250829783bce3d13452ea698377215048f10f786e606da085074a81121672faf05d8d706993e1bf12d0f6df5ae7234d690f93495bf1aa0c6b9c620358ca50848f157b13f016f297100c07f599e72b6485a7905d5b6077818be8711444b32c9873dffb587d5937bee071892ce9e72e9dd7536d4d9e5abd349ad6c4735964e7e68a8c6005f77078b7d21c0b8796872150fef2e9f5af0a62de63be673ce3919f794ec5f71144d25d0e0bb517c8abb723d72cb93f9aa2b7aa112b13218eb8f524b8db1bea060c730efe60029ac7494727d9b8ff27833f5b9b7c5a85e3a359736884cd6081f1461114d4a0a535da1810376c6cf106035d7e198c1428e42526d1adfc5e907fd1885d4dd63a23ee45d2213417e5d1e61635361945e8b81e124939a1028d500e15c2a4b33f056e4aa31da277b51d8573e44d147fff0003ab828de6613d54e47d63b03c87d2bb43749015961d4d15edf362a352810fb7e0ee848e6232097d557d1f70634d7e39ba61b06c872b860b33d8b718cdd28ccb8c8ca4c35100060e1fa94d4f48921f390ecb2f8c14a33c33c27bc7b75b78a3df72112be1390c2e494e282b6c4cc1bd12737012d3222d346c4ab3873ceb4900c611003ff2b55923f08b4ff72ec46a3bc192b6d777210a008db3649e9a9487ff8016c6d3e257bb759224f25d88a300e5e70509de54666ac5003e1afc51c9caf62dd1c78c9b26460263ed73a2f675a09c6427348d79a285246b1be213c2983814db5116a94419f2f91149ed9fc39f29ea2afb15486257201a68180eac98f4c38ecbae2d3b789d75ff049415bde9317125fec204f62bc72f22a92b2060e5a312181a33d55be8a9540021fba92d309fae96d248c2f4d15724788ab1b022591bdbac963149f0435f21dc5ef7eea783de58f3e1d7fe882b17276ccdae0ddc7565e79547515ad87b354c13f16b2534d3b2835489f76ee57a84d07dfef7423f608039889cec153de18d62b3bbb80d59cf73f669910af3d79077282c4e0e0ac792b3a51fd7d6b459f376bab1ecd63cfb9963c40a4dd416d37a503b226691f701b9c211cffbaeb23ac880e28b8c46eb0b40d34f01bd811868715723ac015fe0c90ba9665ff231040713c20afbce75b4e09e6812b0b102958f72f7215f07a19522e5465f5ba15babb6234281e8fc81c8dbb287201c19a560d5e2872acb1c440d4597edefc84713235f2985c699d7c82bde0bdbd21f475f72a694972191588900b853e16ebc8bc6ee04e4000c789b73792ae9f4963a96c4980c5a2531019bbbd951aa7dbae207d88a298be95c613d3024e4059d5cdc43b29bb66840ad854b6ccae894802f7c0a6b0e2ea3b9e6c37ffbefeabc3cdd749948689d5de45ff13aa24722979c3e2ac2c525efea7591431b21fa16158a142619116ba87b339cc0e4ea71612d2d6153cc1e2159ba31a3735d023e3b972ccba8eaab4077c1f1ea39dda1d3f22674f2f30554b9e3ba0ef8a5ec74c83db5cc3feccb6c1ede0c8169941ef30ba1bcbe5e515413c00e88d6b51966766b2ee3c64c1e43c061cc020246e5757adc61515534dbe30e90047b46a9da535bb40bf25c1a10b98a2c9826e721891f11d63bb0a144e719591ed3144da8b6c8169c96a09ef6d6b873320bf9f39a17b131bda4fe44c26afacb4c8e3010bc25347b331f39f0e1d7953eadff6e031f689760d7c04689315a37f517cfd363f0610ff5a45a1d3362e3d1c99aac8b3726aeea188811faa87ae78bc4465960a2e6cd3dc0d5ef87b7bfec7aef1bde05a6af6b8ef8714e9a15f55e6211472cb4baf423b6f512379d8da2227c311e323c272db7469d018290246f731f5a746683c601e96d3f1a51aa860e29d80b99daecd7286c105854a166624025543561d70a631760312a292dc82562d951ae89ea2b672c4d3b60a5d1e41161b19efe6b759add6b64c966d6d2e95822fe0b248dcafd15367fd7bd53c878a8b731dafb6d3fdd0a9fcb22c21b9ef5badb008c12613ce06726897d1272b9abe6cf0007fba825150dafb6de6854aab55a73a76d1b6fef42660fe96fb97eb87364b6ab7736c59f9f6e587cabc1fab98b3599f75c54f2294764ff82215efa63c0a69f8fe98681eed63e66074e028a0dfd5c86de20c2da94ef772b58dad140e17250d00a1e036001cd37226ae59adc4db8a4c476f0d684ecf02288ccdf2125e75800179ca4111743fade94e0819f8fa9e10c2a22195122c675e5c0f57c7912f8425747f59cae4be826e53428102f63208402c0fe2543c626ebd729da7be6de9f001e0e3020dd25253b9b894d1b3a7bd4b2831f2cb39229980b13a8d45a6d73f5d7460050e440b8425cba6fb550bd9a47f29e7efaa2368a70c9141f63adf227ae1a606072ac29f0cc200323fdf74569433a24d5d45d10bb60fbe72697f491b93b7fbda060f49464e98f6b7fd4a0c23b70cc942ea1ff40e3d9a54727c817e34c3189ec81e4e6c18e0de9cc97868f0edb0cb889f136c6a0f8e4c0e72202d056514dce7386abbc7d61085590fe07083e5a24660edb5445d492be8566860c2437f6660d8c6623b690556161e7f875d5ae2f947e065673492af7f0a2f721d2e19a8d199da272b266c5569e9140d925cc36e443041253af7b8dcfea50b72114601de8d643c62882dde792ddede7e6792966b2cbeafd5c86a6039a6e70872e8e6f4a2235a88017b7c4417b243ffb074a77e35168b7812bb8968cc903fb656758c9b1e74b7eceb56bc93b4deb0850f96b94543852107753ebcb32a8b187d1c24eb310f5fb422c12b750f8337ef911a46d41c6e41e830c0239e14e9aadc0f72246732a6f47079f3d48e3d209050f834fd4a7aa5b656d37ef937d962594d641a14139abb20c3627f5f992a40182dcaf4a25945c737cc634ec3db936ab2e21672a5fc807987742725dae8aaad6db48517b6b2eea8ad4fecdbbd00e5d4ae27c172e357a419bb96ac32d182ccc0006deb2a1ee833ed43e1bf06a2016c1928d72f72355098db30b4b590e5fc191b95a91f3e0db83d7bbe9dc74665cdc85495e63515adc66ebf8784cc56892b4a6c50d9a3a642f155e425dab61f2d57498e262e647207a65ce52b4f07038ee8e7627de8ab0f224e4dab081ae8ea0682675866ef4d729471050bf173fd0244bbe8b378fa528e2883b69d09c23969ea8ca5e91267a645d497c861b30e5c642d7c4dabb778928b68490e4a3d078fadda6553c17388e70bd104d6271459a2481fa12136f64547085aba6602b3e91aa811533c6ee835b168067f0240d1b6c546974f91aa2e45820b50a7c787ae2e362a1db1ca4e6a977e11eb5f71b3c24d220482377cec86848ad027199da7e6245ef69b6c233c83b82e701e2d8d91625fcb8cd80f970bef79c981593bb440886e310557412ecbf4a6046aa154e98384629de25e8b5d4418875c6e8a370ace778d263249813abc12ec0d7203e19845d3d3425fdb2a3f97c7881b83ede703719bbf1f0b36197429bb582040892c2553c140da68002bcb599e079567bf6875ca315e972ff16c0f9c7cc8aa72b0d8977a86f228175104427f09660ba35891d4e4407c95a37ba4275756a62672425c8307cd2ce249cdd8b8a0631605666a68041a2be2db57d81f3f9ad6f15472a593daa11309c58c25a0307f0afd4f7d0c13b756cb77446cd95c42c138c3b6724a58c4835d4fb55e2f0f9d1da59687f1da73c39139b50be37c36ada7fbb9b3722321da60cfbecb79847096825e97d3232bb91bcccd17e9ef30e613e583fe3472803faf4a75f4cc8bf7b5a5001c473120c557e3aaab176fb7041badfc774624720995f7eb955e84eaecc39048e37dbc16879719842d901dbc7d6683c7f450a9695b2f9dc41d37d9b4d4b1a4a8b1186f25c22f765187e6b3f1cbc38ee05103987230882ec5a82464f7dc95208ef6ee5be392aa24352ae2cfed5457e805a243395343e46663e8524712bb348238f95bc0723ff49d9b098b6904ce672bef6ba3147240db3adbdd543229261f74cd5846a650a66c55e0ad4bfa3abe6ce2b75cdd1931d0ba4e00e8479b50838a5883a9e322f3271536a1109b0ba219df866f2e0c5172fa5b2d3ef9ddd1daf4fac29cba9514e73948144dd161838d2c30b8d0aecd2872cb306c391cea16f261624f0339eaa1aa9706c77557756c3b257da4ed9cdb6b726b550fe5a38f305d420808976404ca27dddd95ccf233a6c54e9bdb76ffe09e72587a6f136e5ef8e8b519f2ca388ab9d3c52166fa73947833d3a80e1e8bbfe072dfa40f3c45ed7339cd709596899d56cf8e01c8ad37b96e8951979b36d6a8b872d2b9dcaf843607a32fc5c16fa9167cb18901608b13265368d4264ff49153c955511be1310f93c50f3faabc7e86fb096f4f6b6e50e56cc89752368036559ad272f56d9d84017256e025e3f590aed2a150033505ea449f19730973485fec7faf725346e3594abd07b4386a5e4a5339380a71981072ff41681f8afe9bc00704de7233419caad802710a4b781bdad09a27db8825d287af9d2a526cdb207b7a52166eef938e23bc9c3d1012802b18e73bd1d61ebc7e6ce87f88ffaa67500152752472a328160f3e30f548c6f9214d63e7fc2ec19a53cb0f7c37536743d66b6e4f9c72585697b05a0ab77da9841004c098b6c10e57d8e4de66276bbc7f2f7a21042472fca0bb8a3bd0befdf153403b6629832b90d366883468fbc75d8ea72b9f892448c74ac8bd1d8ffa853a77e3182aaf7fc93cc24c4dc76a77d12b49950f79cfb16e83ba4c826e9e7f215170f9d23bd9927ace9dd38f328334f6434d59a23cced972251cae5706d437929fcbf07544a861248589d084ab7c0d62d47b201e767605729bb3734d46f1a33f5ae1afcdbca268433633e4422036aaffca8fa0086c0530085ba5b28774cc823134ce83d7d8d329470f44ec7863a24dd6ee47c50b4771eb72fcdb0809b4ece5002adf7985ab4bf45ced13bbfb05df19ee123ec74cdf6d5f72c19a1eb8fa72eec5fa035dc15f88b87a576a3d22a66b9fbb48027286bde4d872c1e4d3558bff185000f57a4a876ce9a9f04e8b15e109d311f80c3095223bb5720f58faa968deb75f3cedbbd32742bfb6f06878f36cb088cee6503014dbd70453db21173c2f79d4751cdb7d0253543adde152d20a0cdacca47e9c80c2ba8a13728ba8495339419b97177de4dfe27ddc5d220c89019df8e698e1ca56f4acb8dc721bfc3d4166dc0037885ca4bf85bb1c36111c24811750ef44045cb3d82a380472374da760da2e61ab04aecd8521915c9b0109c18277ebea4b36b561ab10cc5e301586af7bd82ae1a471fe64c28950066f86166de67238281a2f10bb87e1ca67603ee10c2f42cace79d5808c1e082bd61755fb657c5de7652adfcdebe06d38530731da6ffccbe702ec595908a3a4e3fa58637791109b456a2f392df5c68188a41f3bb80448301e98ae55e319cb76f7d255c156ee02b37ef9f471f354977f270e72295fd7714b4e7257f446c7dad2709abb40c55d6fe0c865b3eea824705fb63b52ccd2663f22648a1c8a070ff213b9e56ab438594f19bcdb2256ee2f9f9ffe295ff6f9d36873d5f36e59e66f3e3f1ecb1902fdd4620dfc4bf998a88e748c3e790e1cd60cfdbe25cda5123c13b1296f82f9a29a3313437fe9b129d9b753250d385f3b565c85b5f1e46a8cdec2de2849e50a477b228985035fe30d6411161996ae00e0d06dd7a2139dd54d5451d907707d8aedc71b8fa5d39405ac95818edde0273ebd8d8b4e7468c00e74e1458c3b7ccd0d019d9da6557b441d903d76adc85f5d72a7bfe03ef84f0febd7e6e811662d2e8aed2f7f3943c4a9b1063d19b903ab33728294feb153435613ceb083f6a561d3bc8353ee6e5948e89b7e8a632babd41772c881250984c5cdf4529592a9f84d222ab1de62c600e48e5c53f77bc4627ac4722d0aca458c4de30e8ea28e6c574846211057614f501c2dc218a57d8891cb16205a5a8dc8fa045cacfb3b3a546dee1ccef24e0eedaec237dfce6ddcb034c73b72bc55f2b5a3d2959084cc990313fc095966bb48bdfad9c65eda6240d524e9e45b62fd66427b983929d6cef3e9f8647921c34e863a1bf2f400e163e49a65fe79088620e115698b496e623e0d46dde4f45a8af9e432e36107a8925e6948baf25c5fa04bb9110f163a7ba3c6cecce2ed269bb1318554166dbcebf3b4a48d024c113eb3fc7d5ca48aea3580b8da44d188a1d7d5e2043d7d566ed4b7df6e540668ca72a7125d7bcef42c7fa73322ba9e19ffd89340841f8055aa048ebadeb9eac9e32f13341244b42b0e12d88d93313c404f6020b3b1d6b5ed2a89a1d0738e4ea9ff721a078a001dc44fedd67fd652c562dde767f9800571c937f292fe43aa8b4e87724f108c504c2cc018f51dcdbaea3300444628aab60a1847872ed2fc790ac66a72f4b6d73d73239e4029c7d256c261f6aeb1233a105ae8f8df76ba40541e9966723ee1db46c2fec6f910049c4019fc8ea58edbf5b129e4137b94c471fd8859fd729641a0f06c293001e352b94937eed68b9224a97da1ab72a13b48f0b8c90de972fab8b8f5722be35c1a461fd5e4326f3526a99c86802b3c8a63a251009525413f91183514efd541c32f3e63580fdf6b09d83d7aec0d2a1acae76230ec47a8c872244f53455de02e784c05841cc1a86df5faa767115e63292489ab07604d5ff57216431efc65536a28db1e05bdb69d813f34957fb39e909781b8bde70ebd76f872689f8778e8c70481d092702c0a99b3187893d0fec6fa8c28c059d6e9760fd372024b217eb8c533acb2546fe2d1b9b667f570ea6eee699a304386264ebde49c44340654e17ff6716f1c1a2295bb2dc1018e549bcefd8a45df5e155d6dfb740439da79011b9609a8a97add48367913ef933596e020a64bc1f67c909cb620131372b82d5748c848cc904cb6da8d0c4d698887ade4ada931a7f9267e656394f4cd72977b35aafe623da9a27f19085eece273904a45f692879d19c2310240d6afd96ad3d79997ae448588dc3fb773e740c705b2aafa5077dfbedf9d900078810c7027c2b214e97d76d3667a04c5c55cd923c1e8589933a8b95444f049dcdac8b0d54bb11f908172f902625f1fbbce99aef67b0cfea8c50286fab192ad156bf0c6915cc715a4d179fae965f94a7d04452b5f16fd8e32b61fb5edae3fbfa5fdf049b6138798fa35f88e1f9d76e9cfd39fb23a9942a978b1c7dfc5a69e4b0ad2e3ec1a172ab5796e5feb9cccdf319df3dccf9d272c3f7ab6c23337ba8294e6589f983b72e7f52848bba42d19e4315e8fa6c70ab6287d0eb19550b71dba43ce28a5110a16e3b0b165393ccc66a850d65a074d96f87aca954e7244a6700308adefe3da0d72e4b95c660d495059b345958a5b90b58d287065b055d0e2b357062abb7ca335728dc3f402c6bcd0aa5a079509ada3fcc0a9b5ff2136c31f08939e662b36fe9e2a0ebb7e7f1ca365db0ec6a416fe81a950d0557c39b6c3f72df2fe1f48dd757138b212ffc504b7801d4414d5e48376db6d2aa89c0a27ffbc570e6d3eba599c06722f0fd6477fdb342f2cb238baf7eea3b6a6029a0332ce1096e877dc013f47f8725e94dfdaf24464af20df182b74986b3d62af70ba08237b567d0fb79fae57230ec210ec1cb7e256f5908c601284e0c4ff3202fcaf6cdcf5b5d60c21f4df0da9720765373f02b8c0e8fdc0ae2688432356443816a8e9a75028f64c487393673107d1516ac73ff50f5de3bd7a8d4059583b1a03bafae46ad8b6a6fbdc9d06d43872fd4b475ba61d42e59507d8627a12ed3d9a57e2fd5b220b385ba248707c2eab3e04002048a244c9ae072765656256a56c8dab2475796bf7b784eacf123ca2c372ed5a177b600308d3790ce4762397e76a86c07842d068261d48f028e05b6b0e7233d50cf38642f8b8ebe133740ed60975d08ecc9d1e6d1c93a10af064a69e98725394aaaa8147c2b6984d32dfb683b600ce3b51b72d8adbbf3f219713ab514a5a2214612cb9a5fa05e2e13bd27f795595b88d1d144fe9ddfa3324db15bdd964728ea03124000d7b23dfb6b6ba12d5fc375c59bb8f0d86e8b0fb3d7032d2b7a072ceb55fa4d238dce00913da3b19c862dff39ecc80173347f4e97536c62d2c67040e2250002ae61a863aeef3b9624075b61cd84620b09f004a62fefd6a24ba997204a0c9dc4314578eb5eddc076a5a94f4bd9f35ea948f1b64c123abf1b1547a2648bc29e128f0b7fa9c5971a98d7ca2190d0ed6787b3d3819c7b7a999e71960729def0e8f65f36002aa0ec69e92662d008420b6f821679ac43fb49912bdfc1d72706ec09ac0919ef07c1adbf89d20e6420d21f031850fe7b6470ef3af5a95147288f364f9b48e9d5c9d79650d0fabb45576f4414271c2d51bb7aba44acf5477481c3dd5836db486ef7e9d0a4904dfc1ee98975cd1600550b744545e65634be25b6a38a3abfc74795c45eb9a802df8fef1770e18751c516cfec333d01250c18316ee7dde13960ebdadb637344eac3ab18d6619965304af6df9dcc82b7c0e92e9723b42270d197b9b287d59e03940afdff0f263deb450a2013afbf0002308e5c9720a3b35544bddbbcca95a84d3086cd07d92754ba78334878f813c7bb2ef72e3722fbbe9e5736be9066948bebc415a9ff9c38e66336ad097c2a7120cab4b638d7238a9d684775037ed2b3be221bf7b2cb8c7f76ba21860ca0e11c8a5516973c572ca7bf51b2da201257ac810bede1b013a29e82a42ebca24ab1f56f4ce3de59d55aeeda2c778a3a501f86e862e8bdc6d5fef9c60525f1a63796f8c48b0a80020724227fe9d007efb1c55c8e2cc865bdcd932ce00a236e9bba7ee591818123887721bceda94531c7663750b2d3d7319f06e0c42f8c4c9b22942587aef109cbcfa0280b4bfa83e04666bc46e7b581259140fc7618a4b8dfe3e193992395814d8a17257e9d8f04186eca2662ddc46b96a1d64a8ac4650fdd6179adf686847cd420b3f4c5e436bdfa14edb2c8e19c765f816e02445ae8096d4bdcb51f117ccbec09939255345c10665356d499a3eeb2da242099d17a8a954087cbd1c8eb263bf7b5a45fcf1f9f8fd347cc9e21ba6cdc2f8b82d8a12b5a1b83cdfae2a22f31e9cce14181ce3ee7659ae3f947d4275e7142f2aa43abbaf44c73bb02cb801c727327a0e7279811568a6394858d4a638f43eee09c09cb6ce1c5e6473ef7ba724f70a35c4437c35267c181f461e6a0765e4ab8e71cf46777d9f4b5e2c4828488863005af6725144f9ed484b3cf3ea61914634bab51517d8ad9f55e03f15703484eb68227e726a506269581da5744f1b807c5b66aaae7abfaf2de1aed935499ac06b3ea98a6549b718e5a4e64f4c66a21a0cd6a236d06ae99aa2fd6aa617b422f6bdcd85e3720bbc6c66ee0b39f11a2a350b060739fa748a4bc6568f645363c11bcf3c6b3472c59d5c37cf24745110faf08b1008176cd46be0ce5666532b87e8eb45b184407245f0bcc574ad4a528c5010564463b7334786e31a0059ad6fc518262c0c5cc87289f6d1d95f43055d3c0c8ba79e97e88c594b653a37c2bdecffd88652d891043a57f287921aa58989cddcd1b087e35a15bbb468f35802ce379c1f9deb3e63a97225021458821e27a6ef1a2beaea86d638927de1f31c8620a90f17550812cbac58116768a7d5e0a55313e39f3378ff40d03bc8d747dca39242e4ba57376940dd728430833ff212b44a3c45b404d42a57b21189806f4eca8c9c69a3918f86640330840995bc4038abb01e12ba28ba47a1f931abfaa5a4a9c7fe161fb97cfbe24c704a7719bf75a2c99fa61d3b02c7c216b01bf1b3df4d40abf6673a994e1de2716e908a7d6de6e33fec8bfd0bf61c5c4e60b9728cafd5cddb2732c4977d31ea2972568cf9499dced170a1658b150c840c840e1afb133753710de3cb8cfaef087e72fd9151eecc90e32717013ada69cb6c4b9cc74cc51024cd31cf36a03590d89e1ebd3a37bd20546af0f13f9b44beba8e7e857bdc28c1f4877ff347dddd93f81762c59eac576963e0d58c9f0fc23b4d5af6c4acd466ba9c03218bd21d94acd3de7293cc9a4e500e80004c20f577b2ea8e2d84806d2666b0625d63f5ee87f43d96728c079309af6ef32481eed560c6b9cd2138ab3af3da7de63de34d1d0c44547c72d558475270ab41b1eb25524dff965632484d413407e84758ab45ecf4a4b84e7246c5f80dc39ea00033f393e4d174806f4e9a025023b128c39ecf34373f5ba8720354f02402724d6f9d6cac9df5cc67661eccdd9e66fe80ec505e8884b76203721d8314ef0488989d435623ea6ada3a5c7ae319ba6ec48adfb74f8e767739c2725ccbd44592c7e834f2405b93cd3397ce433c7f6cba938d673679479db52cb672b77a91c4d0fc3100dce72f2216c22f3a33283a17cde0439e4633133dda5e622077551b7f175d4db166ded407a6f6e0e0e59ac62fd805185f247b8b0210ba0b72da881f13928443aa5b1dcbd9372e363e1f021fce4b1faec829b195f4842e677294020e8b8bd32f2701929064b1926ecacb476db4c1fdb0d235ec0760a3012f53e45d69ad74a4d08b2d1247d301dbabfe0e96e5ecbc97f73c955969ddcbfc8b7284ac50e5a4e23a5285770c45c8fbd1ef93346982606066e674ec57aa1617951486de0c79c2c08bb2125b2844f0dc61669dfc11c4c190b2abbca865502419f0725d4e6919a415491fae19a7d4c86aa93e0ed5899701c0a8bee7998584dfc80b72bd3d53f6b8d86011a69172dc58eb2cb57f2806fa10e09968f182477dd04b0672623a9e6aa7b998d513b1e3f80b24e0632946e5f39a063b01a63fb99ae78a14433192c05294c28387392c63f1a175bc2236a506efbaeb620d76acb13239cad81846a3267dd56177dc17b2aa2c6615ec6627e06d5144ef83d5f1c236f0763ce30a8bc9cf2c222e2dbaa67cda4ed6e27ceb1440cab6a6deec45c2f73c06ba33a772002709f699be70fc848fe0c4524df710c9e9dc7b17b6785a525474a706e61b2a15e555052daa3c2a518d7ff32aa135faf43574270481ab3d5fc615fe72dd005c3010b0b310bcc1d12f0bc1cba0f1e7805915d8815024df1265575dc0b3310b1133b009cf688fe5e14b65be42b804dfbdb0af2daec673d0cc108ea663cf6f1d724e91e7b85d9adf658bddc04dca66222230a72c127b36d96ce5dc30edff8630119b9979464d66aed0537ea4eed654d9b54de8d339ab4c8bda101badcf6d344e37bed78013f8115bd2ddd714a02aac36f70f955dc2be2c716566fed33cefe2cd72a64ca092c87dfeed2279a31406fbcccbe8bf4c7e0eb6baf675806e0d0e9a487200aaa4c36a5ea439a7ba70aebfe71a8f4d6409514135d64060ba44640dbea372d4d57b7d73ed50275b78d98d29936dbacc0ed3e7dfa594f7b8393260c086d672266ec1dc63a4a476024971b717830a3e3e8f1938563f42d5aa6909e593bd2f727ef089a87b6cd29424d5d88e4e18aa94072fa920ae5076aa79ca5ae0ab177f725e0cebb8131a91df42d9a246e5276776a303e44ed5d94d68ffd90d7892b5ed724069da5a1d93fe7eefc891dd3d2bbc5c970857faffca94427cad04924ff8e672e2e84c9d076346937264e86c4bf4490637a598d20ff21beb9a98664306b8ee729f1ecd2cc10ee42b249d99641463d8992c9b327de1a5cb22304ebe2146519172ffee0496af4993bff7f98b992ee53ba73278a0ad4ea70481fff18b6db9aa0c72a93ba0484a3a4374d42d557d5ac0e7e27b8b15f8b46d19ef03cb1710ccb348253e776d61364840a496899c8c72608258433f7978a176dcadfcb02dd9c9cfcd1b73f716e45dfb755c0dd486cc1a6a5ff478d05098b4e4084b25d484642df9a77293fa916219247d4c24f3008357a48dedad6d37072afdcd9af874d5ad79accd7250ae6311a19c795d661193f23703844e6c28314a2a2e1c0ade59c96ddd16ac721dbf80e6ac0deee2e49afda99780a90603b382c60d0649ab3979ea3d3dfb83525f99d02ac15c938552ae300d213680fa5a722ce74caff8e6bc84bedb1a9f9a7298ce233eec2ad2dc792d3ac92bc9ee6410cb04a5c33802dbf3e3d70f3e8c045c46ec43dbd7ec7ed6d2d30886d2e53c9fae98a8ef24a9f212d996d84dce47831bfd430910c08738f9912b035b6e5222e533d67a4106532c593640a6840acb6572c0db975cb53f1e75c5b1a97af9e8d53cd253e1ef743167b4d1d5ee38285d2d23c14969a21f0f617a8240bcf7c3752d843887c5e3d3f359b42124d45dce5eaa72a71c866dec24017eaa188c26a89dceb5b121796be810a56df66f55ad25b93c72ca56d400909e324aa11d57b5758cce0730a47770bd6bbc7d14de71831f54ce72f5b0818c35477dace5245fc248f4da121f0d5092b1428ee26987a8103799363e027cb4bc40339092b548d7666ccbe32a469ab2fbe2bc9e5f022d2dda0da93f72d0f627b70d6233e260aef00e9384e7253574fc1ff82c48e44e26e182094f0a720d00dc3c42be6ace6a17caa453b80b0b5ac803a92899c62060c7fb9ded1958728afa283abeb2365d0d26d583fdf9a73a55494ca4bff555cadce915ad10d447159556044fe46cb8045dfcd9fd7f52e91908093d05ebbdf8a51ba5189e83b24d72d81d5e5e48947d8de21c859310a961c348b9e98150cbf11b03f20134328e75729ccb626afa5816dcffdbf29db637a0c68ad7d0fc81eaba5e9a4fa0a802ac4a575f976c07a919cfaa1fea12354a5ae2a9cb273de4579fe468faea48c0b6494572642e5d4334d3b32a03df5730ccb771ee063117d648be2b54541332f2184fea607883eb264be75bf95e7cfea2f916761ea7ffefe9785d2fbbe37355cf568e3072b8abeee95b52d5b533a2d1a374de4aefbf464d29772e4bfd68afd21de68feb1b01684987af0fddd7695cd2ee4eb48df0c3838684289493935d5acfa159c33350752770b674e1e4912ec73a0d0020bac8a3a4a4384a0ebe969ac33be0f449e030377fe1d1bd917ae5953cbdd866236c754c2aa370bb0acc418d0d39ed0edff157e1cef7b5d55c3a5364e5e593c08796ef5add7aad88dae196b63c5c69e8bdd272d521065831483ed98bef4e98ba11b125198c4b3bf15d914a8e17fe3e659a880025d6508287abf682cdb3519e5b869337d6da285f3a0b2b1795415d3eaccbd372011cbc6a0a2e5510f43302473bbd9b2c6b52bb8c4d7e96bb9ae46fa39527421221632cc8fd159ee9e1db2590352347f4ceb811fafb13ae4b0398f0f70dbf9f34bdf9307887f4279582b7946830aff473063859ac9e963cbed84417676421010de6e77d7b5241fddd21ca87e93beaeed1e2ad6f9ba17e2b4176afdd60c8746672d967b0eaff91fabb1cc62b18dff754b40131d456c10305d545333946df2d844aed6f93e94dade00e6a0716b9864cd3e14abde3bb6d2de51d64f156d76d5eb41f6ad2830facd54cbb123ce9ed1e75ab23de7b9535f85fcdeb632d609ce5d09d72b7741e504dcf08ca4281341f548bc5f591e1e385e06a76f059cb3c19a167e472870c1775f880e58ec1211604588ab6a0330e564223af237e4942b72d9d1cc85f66fc89e6f1e7236c863ff774fc7fad13b86abd31bf6bfd815e2a1ed36388d972cc4a23dae9bb91cabdbb2ec8544ebdfa807a54bcf31f665b8a826acc08149372f6da5810c990eb0fc3bba2abe88947529812b2f2f0fb391ea54e6e4c5c293c725b74933665c208e9e9661bd8ea14e66dfe1637db310f799b8973a92f6fb213727a9bff0accffc5d2d89a22f7d30a7390caba563100a21476df5ab8cd52835a72ad83205cdca65e3a49980a713c9d6767f7196db7e2283433076d88ad22747972b70846452042d402eb859782618b6f81f31ea71da447032624fdde8e1285ee017b4edaabcd18a71eb2e12e446934272263d487449aa1f558b67bad5c71a63241c8cb64a9879fa0212e44d4de761900ed506ab67394c6d30085529c6f3ec1a1724fd54ec0a9a40340b6c426dc828f923de216f6e680dd8e518cf2e11ce406e4720e2a56a0d1bac6cc2a93300f29ccfb756811f0e7339372112b04e46fccb2787204b7fbec7c0504fdc6488b8b7b55924f05ed6e63bf8ca92327ecbdfd3efe8e7261089ddd684063d777034ba3de7b82826f9cb42823efd17b48d5f32005295a728e4d21598ed504ef083ed305d31f60cea0caeb93135c6108bd4384bbf3afd042313bc212b3bdd193fdde193c4b57ff00a3e52418f5931282112f8bdc97659272eff1377492f3e2fd5e4eda7357b83aa81b908afdcd5fd9e7b69e53da900da8085649838ccc5d480435202d350a15a2240fb82d79700afdb74da1c41a93782b666fa36302c5d1beac16d243bf939758abc9a528bbd01badd9d90dcfa48ab57939c88b71b0e1a737f09aaa6d36ba7399914b6ef8d25a56dbb4b63d56d12de18472c315f978ed9b5612b965e4ee1c88e141868efa86fb673d1f442e4b99e7e20e210b5c5215b40b2546bfb0f6640594865303a3a544c1350a0c86a9753a34db2b1f1e932c00ac587b2e3005001ea53df95ac90d14e2852244f461dfbfee2c49f972e89df9c573dfd855d956a48ccab27e8eb3f2a916018966df534ec2412df9491b73aca0889cabc1ce4b8ea25c28949c0b3b59f77f3fb0014e56fccb6e9cda355296f7935a2b4e9454c471470cfe5adec083402e74121627ff32fbafba898f6672315cd55825cb7d508faf5c8cf2d9f6db650c2d702afd1d2ea9c0f92db7719b70cf26b61b6c0a56d653daf9d0a2ee7a59c0291959ed8f6851ed98b04730964029d2277f95ad79be694f76a7c2d4692929ad1079cad139e3dedd4128060efd44578c513473cc11aaae9f643e34c61ae1f310a9f13d6493715725e37041e43afe7263ea2e96c41db50a41a4db9a164e1f860a18cf155a7f77fa51ae17174da7ad11b2317bd3ea9b2723b009f82bb306363852a4c3475fe4cc3f2885a1a890a0953a26b03e2655b5c1fdd2226efecf4bead99f6c506de550ad6fc627151909e4096cc58b303530eac0197488a4ca5a174fb46cb250cc7f8d667672d0bbd2cd31ad5e3d07d46ba3ffc2ec697ca75f2d978d4cdb382db537424e51e4a60d4ee4da2a601fad62090e5e25a8698b60e4c4ade37d4edc9b714dfc2d7d77d59fbb60da065a679dacbbd9c0ac9590e27f51a836e0c090bab7f69c418e251eabb7c3da2be314229e28329eac8c952d88839f00ca59de05b17cf210a8d20528abce4c0554c8725e6374bd0b1e6d3b6713f89a41aa20e496d027cb259055534289ad7c44055e220f275e3735bd50f091bd49b565be7abe7cfde3fc34d6c2923e73a1c3a15c4a72f4044ecaa6206cbae0d647c5897f5e4fa1f1c6b918f5c198ea3421e54fefa0722c5b492f33f4acabf825bb84da1161d431fa4ccef7ec02c86db9f31a0f1d4b6669b086bd1eb16aea3ab301b34df45700da94f493df6a5ac1f12ddaf9cb9275718ccc9cbb7ddde8bb0ab49ff6f289b5fa0c638b8fb54adad36dc47f58e6b34c72473f911e7958aed99492ebe2c5f3f521df29618c05b941426b155ee1179ff072eac9147a532f95925d15de76a04742a11026d230ff3cdee15b2d34d622b5312ca73b65ae7452bea6152ecb6a5ba3d33e6a40c1583021e67250ac94e93b8d2872ff52c74a4d6b5a117e362e6dda746c6b12a8562c4a9a9fb373ad8f7e0803d5456922986b5fea33df79475344998aa5ce10b7c765b30b7b4c2e19b25cf196985aeaf8b217f7efb87dee1fc6ea51e146c52ef03e65c25b7aac5ceffffcd26b357206e2b52f8e14bf611a3d0a7de9da302f9d6e5b159a49dff4c1e700ede4527c7206b2ae59ae8416437d5496464259e56edd0a6a3427d0df5fd83b363d166cb33294e16ec2237b0a450a959389c44d990c5fde6a92b4083ab0bb8ff999ca7cd172c86a47ad4bb1ff586148729fa35e028179bf961973c2de9120aefec76e1073505c4af839d2d742807b6da67b4eeca129cccce1612dfc9bc45047de04a82568715fcbd1519f368296c2ddeb3f4bacb7d58519b4e80be853f00bca6ae0c3a49b52209e96ee4c02aa15a64583a255a8413f5dfd27e762d2a54189b5645585bff47226ef09a48ebf7c77d454e1b4b20a5044714c50a0028c96e8e839e5531c3a4d1073161ceecc02f176a19666f2ff46f2388472d36db9421dc924fdcae7ae88801154843616f8e63e0b5538c6d190bacf50f2f60d6ee67d74ceadc72c524257ca724813fea3457cb0a8c9fa44eb4a1cf4e0e9ac8f4a45c390e961590a6922ccfd7206fcb77f82a3ee494df42a2dc5cd05369d2a95fe9f05bc5a89444bb31790c12d679010937199b67398a998c5adc6cc37dc4cdd2958b0328a9e73cc1b79937c729c211c45ccfc970c433b0ca8f8b225533cbc8ee67b6af8b5c8d92e4684b5e77238937e2d03679e6b7b4a73d19b49f801cc097fc15e5b3ee1cb7d9b2520057a72e8e6d52ec19e063002f55641262a564cf8b609190ed590c48c954765b83baa724380a861955fb28de26f6e14ffb6fc507de32610397dc5de3952ba10e31f6f31aa9f8909b24aa0fcca49b0795f999402d38b1ffd50ceeddccd6383a52f3cf172fa0b8e4603042e77cb9c6a3bd8e30d387fcfd05e46e06d31abca18f2acaf8b6869d893664a2ce47589fe19bd413900d9131bedb364ee07ab42cfc8a4dc23f8151b4d66d80a7c6ee9b3ac5e449758e315e87ac6aa2bcd48d7a7ea61c0a5f6907298ea34cd83741f2820873d4614074c473a5163b7db4f84bde5a9d81a4b000472e332ea49f50a450d84a18120a1a76b430f1f50bc2714b4838d02e8182106a372ca5d5a387c45e737c5aa3c4005ac9e0911d8add51e77814862324e322d700d46eeefa4ed99b3cff2be369503a61b4be038a0259d97921fadd40afbf798139e079dd880f9e120f26c327b5c8e0ea91fb9e96fc7ad86c50587060864c3b53a386f2f537c44a2fe9731d113afb112d25502da12c244f4a5a537fc39e9e56c1cff20bd4c8c895acc42e843c855c83c47a9b45a9335db961e0a4dc5173ab442561f72675e060667bd9904d63a79e78332086e195707b1333c82cfbeaf4a6867970f72ee39235e503986940267d50436c46a738b485da0e6f5777f974e1271c9b6cb339d94f51123c43fbc1fad24ea4bbe4b5cb852c3580ef32a9c797a3f16d5f11312db501addc68ccc65c6f84fb6662bd89f2828ab145c2e1f6699e32886121dfc537edcf717c7d696568f0f22093680a49f54536cf7c87bbc959e2c8cac4fd60272bce65a4692685e0404118eb24470f4742163ebcbbb9d586c3de2b421546574151cfd25d7e424be81e43b1383bb02ca2a39d2dba341161c9978051d5186135b72096d7e6657303d4033e01bde8bc0db26fbb2fccf6896ce7862a33ac94f6e19119c3178b85927aaef0fab238e7dace76526c8377a2757bf03f05dcfc6eb74a643f208e27e756bb005fc88f3cb2b695d5ff5fdc30999a8357cd09c434b4e210d722efe435a4c908f7c3bde0c5c6a80d5fdaaf9623b9a3e024352770a1995ea867222b2570be2b651a434ddc14019932e16454a27616e06a23392c10506c70188044e237555447de78f0fc5a78ac7755dd540b9b05acea0cdb42ebbb3a7d7209a7257aabb0d82f796cb21b37e34596ea9a0fbc47314c132bf0611fb69bde7c00308c2a1033106749d2b1115a52efc63412da3f261159a58bfc373a856222afcc26fce3d156d5848a455e9da3fd8c740089e3295a46fa77529a3262bdea6fa558c729c09e7c81d4dd480d9f7038eab2bff7a9e0adcd4e9505d8793c665923e0c2157ce32fbb89b1364a602b37d95a35f0e9f7f942f8fe233a18a0f3456f42f5af92354dfc8aa4f7d16cc4e1a3e7e677c85b63d1008cf638f90968060f8dbf8a21a72ecc240edd5c00d8d6ad08d38925fcc38a181c6792c20ddbc809a2dc0b554f172d9d40fe15a75808e2452210475f0bcfb762f6145e3823bf8b505915e39935304261b030bb995662e3586333df1867df17d0be33996d31dcf47ca2c67fac2b65cdba632169469a261ae18c27a9a81d0452e821b9262bbc0376a3458b782066e727cd5bc4fd07db8b169dc19c52b74aaa7f37f5482f679666baedc7cc7fb07a172f805c63bc7f025473fbf63d1c8b5555855bfc0fda6442adf2cc0b4a7eb719872bd9e417a959fecad51d324a3047f995d22de1f0cf2c9c0f212b4dd2b7bbd6e72c0b82fa81660b20c92d5e8392b8e7f7d71e2237a09d9f97c0248bf3c28b9e072c996eda6bcdc8a7f4ae8643934d1c6141868df1cd287e80aa1e585e8a014367236ab8c4d7162fd894458f96e858248000a98ea9fe42e3ccf699aba721aa35553b812230dcf7e404b78671cd26a0940749048b7d906039855279f7a32cc3bc77231ce6c6793f89d71d3d6646d5f30eab475382aa75ef65f8f0f0f73023917b71160fae3564e1c6a261f28b4c31268021925e9313f7a2be2024d7c32a41bfd5e72b8237390d5a24c4dd91bbaf15509c40dd648184a4c85e3a128599f37ae845f72fe18fdf14d5cefbe8c5b2f77db658eb1373624ab9aa3673e19bdc2289926bd5c8e13c30c11318e9fb3c004053ce17ac3fd7f3405ed8b10c6031076c67cd59172a8f3c24cf0867bde69bd26e31ae15d1fe05681322ddc7d96d14161e31a718472264356fa73bad554c9d6dfff6f1887109b427c7707b16be6a35fd03a06370572001a4e6fe75b88d6fa63e15d7fc10895aab97e3b2a236da36fa76144e72da572c6bf331e2390eac9a64d1576131b61f6dc1fec3d4afe96aaacd0fd89ac4bd91649e3e2cc4caf1eceb264f54b2d14652836c0b0c2a3f28958a7c9563912abce72cee44477de40f007505975bcabc870cc94b1961c49ecd84725f8be155eaa0b526258a34997396f11a8564c8e62f4b4036409c6632cd8869f827f993d10085b7227c3f9226a4e10f12c4be2644607ed542c27e610bacb7117afa397301c0c07428ad93cbc78dd34da15382a7e6943ad6b60ccd1d763a901183028d341a50f096d299f5d4b840e084a59d6b2be17865e773fcc2033c2e4272998e0601409940a72daa7aa4b78c4e4f98c561074e6c1bc929a8499201fd5827f3cec34d04df56e72f6df9980743e4fe07758399898e8365f1c453f6dd8aa7c831b7c0cad52c23f6b11b1419c61adf49cc1836088c535dbdd4101b25d4ba1b8397dff2c038cee8f1122486c58304d7dc79343cad266d8a0fcd5b6989ff2a679f58ade4aad4cf75c721f35e6509af5e622cc0a86abf0883b3d23baa5e6e7e798e7cc857c5a54e57d724e36bf8f711219e36fc94cdc8f454e6e292096d9661696edc7bc889e67e32872246656b771d3750e2726781cb4c1d99b1acc2edf40a39dc679ee076f98c1c54b8a67f0783aac2127da5b3dcc30bc359c946b998c8a7ff933719b2a418846ed3fa1e8fb60e6987f855209a3c1b247fd2c936fb2d9ba14c0c060bdee580c765572e1ccdc224f940e7087f4d462f8e1a103f028c80a7789d3ceee78063c43a1747249494e38de8a54bda3c178df663844bb9093c3a4d2e58211df6409ecc76ae4722d8edf1d97d07530d9697d0c2f4790bbbc719bd334a2c616040773a33d8cf24e09e4c138a678bf67df11c2f0ba8a545b410d4ffc509117755d35f73a30135272547813ed4fab7d8ae2269dda92f46024c790f45bde60d1217b8f6cc1744cc27234d5da8b0fcefc3488b229f8445d62a0e09c6ad85485aeafa4f679d48cd5a85ddb90002979b41cfc49f03fa2611fd9031bbafa4ee06121983383cd5784ee0f68db537e5511c6874aa5c80b768b2952af57d4f985cf702068efdebbe442730772ee76dbe8639e331fa7507027b2109876521a2db2fca42e5f742f67b96649d0319e6fcf3f7589498fae13550152cfdb62d18326d93445145416f8ca03f7b3ab6d4047f5432091f1cbdd915b9d3591bd180d01e4fb259e5e1161b21df77287d1234a223c531cdea485dacdda58ad07bea24bf04e607ebafe03fb721ee5efca0e5e183d57ddd5cdcebff4e652cb00a2687e492795d39ae5edb84f3a0189ba1c1972e858416fa32c51a3ee0461bb6a6e8fc45daa12b5d51de981ce93a2ecf081e9728674b385e274e77ced08a6632eff5a9faa3032b186494e2e759a038c1eaf391178199a12f445ffa1bfda077eac310ab73b3413a792432e0c6fe28b45ea60f77271aee00dad6662601f4a77630a893a0b02acc15b042cdc0a4e962bfcfc08dc337ddb126856bf62f1a09feb5b679707e277b1f8a4b37b92f6818f619c6864c60999d935d4820e0ca0f73002b758a30c8fd2498b81b85902c6e7d3ec9b4c28ff1d54cb0f9fe2c7d25cbbfc8c46f715b99aebc41ecdcc66b960da7af2960ab0475b2296b973135376ce8c69486bb39e21513da3163c18079cb87a07607f26021372f035a701cd3fa1279099bb9a5f1a39f539fa82d4fd581919b7d062f3bdfb3072140218644b5e29c67efe5949c945f4fdfaa3451f1f5829d8b1b74ae03d448272754f3fa1a9305fad90d5b2f679e9360c6a36f92f6912c00ef9a759feb9ca037260354cc93a7ece42f9138912197ef93049beadd346d460310c18f9e22cb5c85f1f0ba1d5b0f398f5deb79654cdecca6711573fe54de543d3af00eec731d6b3722a4a325de0eb12176b8b973ad80ff2726983d7b914313bc0cd3457dc0501f87229ccf8a41bab38859558a50734a175aecb074be0d6d0b9f6c6bf9f2479c97001a1063415b3c6bc04b53d2125f419e5b15bc612732b94def50fe8f485467f7a7201c1ba50188569332434c5783445fa7b7e4f52631ede01a55c2bada0eb9a760a5bd15267817bb1c75be12391c9146a77821c1eaebca706f0b9c9cc39718e8132ad5feb600e722616e0bc4fea3393c6ff9dc4ce668c569cb4c3447916c076b5726a80902c45c876bb35f6c5ee2a5907be3694e3f282df0f5e96ebeca1146fbc22c348fd2bb2f847d7a4f3661eeb5003b4d2ee41173ce416bdfe90366356734f5c1a5d23d4b5948f2b20339efe1846813d45dda122b99031a9b6efdf2aef759d681f012c93ca079fae9410a3100dff2a3b51913b99c17bf5d8cd1d27367af9ff120e7ea8a8f1f3bd051bb50a0c01662c26343f1d6e6657d0b56fadf35755bed872449b413b05ac509e05bde80bd8d03e41c6ccc140bb4bb6b700721a682351b57213adb3eb43b1f3724d4b8cee4e1799d60b4de5bc000e50edd8cc2a54ef26090be5346d79ec6b616277c56ab7fa96042366e59de51985cc8a59ae8cabdc352772955dcba5cd5c9b2c5887091726a2ed801f1659c3d2ed06e0ceefec7ee403602ce2a41b5be1808aab5a215baf720efc49136651cdf324ebb8776cf7cb0f0a9f68fbb349b613e8c0325dc4bfb106ca4d7e8e9378d94ee34e0372a21bbdd3dc816f0c3693921d35ae2d722bd79339c25e58233a3e4327d63dce7830e14e490ea7727dc4c0a04372654fa1c08419ceb0130578d86f32d933bb62cd79071222a11d72a7f7fe0b24a76f996f9f744055850275569c3407c539276c6867a4b7d4a76972dab49873e41aab52e2614442fb822b2ccdbc7931fb3f386baa77f057ae7a3972ba81183bda16f7e450675b4f5cfdb8f74c53165d01e345ea086045ff6f7a9b72118233da963d0beb3ef92532291ccb57152e3131b1332cd8e6b222d3c1315e4babc2cd9445665faaf6d4a579ff6c29b0b5c577b9c814e37d4124433e8c42e3723d63cab0658d5f22d5921163ff796777b548f6e39354a058a26b9fbd40fc8c033d9c85acea68de2e16c5257f463c2de2655bfd89229dc428e4880a606921aa72ab362545fc535cb015e8f5fef6aa2e64327bfc606c19e7dbffd3256be7791c72fa7d4e4952818cb34c6c2fd8d1d631adbec4762568718d1970c7d5dd17029072083b0da089e24f10af94c35a761b90600a1bce434725f925ae17322e7914c072ad1a1b886f64e8cb0896dc0b1a71ec03b9f31875958c2bd2e3e041e733e20e059a0e7e356693509a778c472f508ca875ca664d52e0482958f857e0937268e5501e94319416fc311876dff57809dfaa3981013a04c983d940723a88c5d5b6180ef7936d1c1ac41e5f098453658c5d3670e7abcedf039d67946d9162e74b1fff2d0235c208e131c8103f03f5a1840b4e56255e4f257e4b7de4818858eb3983870f4a9b4ed7aa9042ca99388e7f778d986ab0330066dde1f319e8ca82d8c9c47972c774632d4c721251bbc4867202a935636011eac6caf3cc461692c0b1de5be2724ebbf7bc7ab81795910429a08ffd84a09f69ae74a46427ca0b86193d87a47e5e68dc995468ff6066bca5dd2e6043f5644b0d5f8d7cfe362f7f0609a29acf3472ca36e56bcd5e43aac1fbe3c253caeb6bd1556701840f84873efa6f84b2fab250c52ec87251838504b64d4f2d5b8da4749d5687b593f346f6f7cd5063a8e01972affe4668264823a95aaff98827d5469cb0f825c03a4b198520cefdc8a88ca37283044ded6d889e73df148b360fb99ffb77d0f00e9a51138042e44435e508da727924882babf7d596344c82f61cc46968f042d504f10be78bf284ababcf557655ffb7484e0eefbc13e7d02bd0a0c0bdefb596110ad531db4536938a81b9fbfe72544520e4e6c715c2b1591d66e2734ac8ca1431b5049b93ef035db267121f426dbaf8d33728b3bc019af2741a7fe3a3f2f120aca785a70b930690f22acbf0b5436b7316ea6cb42cfd4a4f2811bdd7ce1dfb006c3772948ae5b2c01478edff841f58cdb985f8d385e5f3e278e089d192d227e426808e6d8e7c24e60e3442c43972ee50bd2f35db795d5efb335d9d4ad5a75ca60cef0771b5ea379a9a2196d1ce6b09ee66e766fdb1d1bf2425747e7835ad770b7dc15937a4a2d7165b4d8a93ca0ba6e970c3184b37b59f42b50d2e2dcb67ecd71c2e0efa470801bddf651af47772c159bb97a3f481766a12fa29208bd900945f238dda4ee68815aa7eda4c9a00720a2ca8c11c77426ee45b0ff6fd870153e94292f18a8b445cd6f97530ff6d6372dfcee6597547e5702512bae063f6386f2ebb1799acfbdde8f988d91ffdf2c872a6bac4bb00aa380b1e88bc4cfe485f2874388900d201f6b0cf3f99d02d0cdb27401c5e01bfa89e19516512c321a03f6c88c06db503999557052b09f223aa6537b58b44b8a25688c21efae89f7c49bf6173b77016f8237a3ce235369064771a4da10d92bda331ce5314c8b32ca70e20089035e184a8f44c368ceb56d94d18b039a51edf1b789671b7f24cd08ecc63243b3e8c73a21a450d1a499d644c9d7a056d2e69544c3bccf01ebb8e31df22d325d9497a4c33b4bb34c9b21cae0fc97e8a2eb96e6d1ae35276ecb484eadbf44b4202c633ec67570f29f79a37488795015772560553e9c5058cb50fd4070a4ccfede415022c910409e9247357bc34b4a82e728162d9e18f062b9abc8e631b9075b7f3276e6c21f10eb504cbeba3e8e45e4d728614f26239d5fd6aa10b29a9f52cd8e022f6201d5db46988fdff16219940ba51dd08e571efae5dc5ee2056122696d28c16c85ea67147bd196ef1e0117402b44b9cad6c922a6a9469f0439dc1f613e3f554f966d810ff89f3343a7113c3967a0a4fe5d50d81e2042cbf754d434f2a49b968ef0656cac188a0b1165f0f2d62af72a90d8522e105591e47e67ad82c3ab1f5442ba06cac92d9c08796334cd0ad9203cd7c1a38f781d8cd8a810604b005312ab8ce66a620dae1bb9c25b162e21de655edb78ebd2ce4c165bdde6e110befac6b7fa69c9123e01933031e3a5ef5faf2726b6e59c8937f81cfef44a7ed09388f99f492495e8d24d938025ac3f614215472b50ba102ea1172288c35a76dcc68c8faf0df374c4f268fab2f2e054e19f0734fa48cab870585515ee52a138c68c8df4e0f98e2851dabed0ed9254041318ef764ca33ee7ba51cda63854d450ba0b6745f8f5e66523cc1ecbd84b47a621a590e72c4fe7e9a683acb8b0f884b18f78fe264f4b60935baa97a4859386f6269122772c013817cf6e4bfd2c3c39b4bfb9f4cc04e7a2dbbb8e6bb518fe754e30e9bce7228a2dfdef01822448016c8aec0f01b4fd3a7b78e72bd6166ec2e1d43b95e935a9eeec1cfaca08b8e6b18f8e227b3e5e5eacf315e67fd39ba52f899f482935f72589d757142a1de11f8ca394743e66c15421f93b13e3d061b8e209d85fd5e5267271acaedd8d9ae9b17ce58eaed9664606e8c0bb49ffacfd19a5e208d6278ac72cce8a36c39d3936b008a501152e733b2e81cce4af638b83f0bb97b93b369335f66da5cb3bf6d4c81946ef554a6bcc529a9ec34a8634f6e76a162365e61b214720c0e77d9ec3d2a0c4e8973765a5a65825017ec286728df2b81a9a56fd34e53728b548e554d4397ec4711630a09d53511b573081cbb3cf5584075dc70175ba80e45ed8a70df2ec101c569b136ebbdbe2bcf73accd2cc098b30e4f0d0929466472b3957ad19e09fff940c4811e2ec18b3e2c677141a7be5fc06dbb6c99ffae8e3098089f969431ed043ce4a6bc638fbe71d176e4c6c46a22bb2bac6168f852d172d861668caf08fb806da53b58c33f02291a45f083b01c8e5817b55b48d6c36072869046386ddf28bb31f4b59a2423357e2507e310dcaafccd2b7495dae05ba77297624c4750eaf5effefef72fc10ce389bba6961073520f1e226f3b4404a01372c2f08a9869175200a89954f06923ab576f40100a09e141d1b434bc77aab5e072eb7a19fe52423755259eaa44e0d1a091495da323d0cef89176af24cff3e90f72854365d4f6f2dea34bcf384a287544ca952f546f59ef6dee38a5812b3bbe264b33d54154cc5c7e101e418f5892189ed307b92da6b1b42d365857620105585828757b0d67120a519b7b31ee83ffa71ce1351561a36e76cb4ab729fea6e5e3e07287b03c198e446693eb73c6cb30deb831739a6699a0c78f114f3c7c743d45287252192815e28075e2eab91a07249d5a5b7da689bf2ffc67f6ccbe5733993c683981ae9649c5acea0666b3fff124583b6a93594b07bee8474ae38d92ff5c49b1727ad3ff79ab0795f520eff09920976019b1dc46d471ecafe77b9001dc86dd1672c62e7fb553d72f359a095c5aa08be9985d84089fd083834c467ab4c3820b5e64ac73247f0b20f68db30442ebc578f4145f06049f7e864e77449b909c9c6fa3721869382cb0756d97edd03dbdb503b1a705613b693d8826f20e76b37683085d72fe87aefca9bc1f7e2bd3757d999022d73dd6791222ef2e1885a8d8dd11a9c63e27fb1be4601385ba67429fdfccd3c0e0c85be9e98157aa32088735ecac6abc72ace2be312803f19ebeabece23e0ba014c57101a4eb03774ba2769e05017a7d64ccc1b61da4025cb3afeecca62b1a7ad4ec70c96364a444b8cd65f0b5befd3d72d748c44067ce6535dad690d2a5020400ffe6b6357a3409f532a1089750408070742bdbc92c2a9c936196829bbef1cd8adff014fc2b8fe99bccea4e40c394a0423f5e81f7cc7adebe56a8e8f45a24e3478b00f1fc53e5cc212e309be69ae3e12bafabbc9f52eaf5573efe2261735655e15600b3e8471b46345226d0dd013a6c5ecabc12c5e3c860e7b6f0433e59f92aaa44cf7eb7be224f645bfba27e61efdd72189f2b5277c16b5ad154c447a6a729f80495c11d288381bc347a4d7cfcdb336eb79af457338319763338b8adbd54659c17787ee67e4e44a3f89371909252b672afd86ca1f9a8fafde131617913799d3276e5769bad492983712e83fb5003da72a4f88694b3d540b79b7661e960745e456b6fd5c5ad75031042759a3b94f6d8729a84dda254388e48f8ff9ce570de8c02510b58aff588969f8f53e1e8cabfd7724c1f1787e71dff4323dbebcf8189ceb4d8c966f68f81f8a630d5b3f144dd13112feb3799dac404a5ba5a0dc4e36f420167b9726ab511180001b514952ad544423c606bfa49a176165e5c6958754a4e65793504ce4c29bdc5e6d684b213fa9e72d212e9524a0929261e7f5cf58aa3a3afa4737441534d119a8fcb1dd85c66bf72f5e59b863bc1436df6944eadb25e56bf0ac18ab25e98399e04a4e7b79d9c8172c590f46b829cafffa971a85c75a25f8f366e8d6a83654c587d2e18653e7f852f06cbfed0240a81bdc27d207c4ed2b1649b7040221f8c1fc83c8b0fcfad3e490ba896b4fbea874da3ad19eb992a8dcf6d9f32b620f4ef9699c8b7b7930ef07072a2d28bde5ad41d52fa807b94554d3bca35486b644a3b1aa66bcf5001e3c74209261a14a5367907be7f9d4ea8a59d3a31551d7072d482e9391d3618fa08395b6e72c29b7c746efdaf59f7f1a31455e54e4140c7b525a9662feac994ef4b43a3154503f7d5640027801b64d83741405f30fa3ff4657c48fa9252814fe11ec5035d81992899c8b409c7123b986f5d64f6daa6f5598fb185af544a0e2c25e35ef60be5e020f1d2f8728a8549a2600c8704f5a82e3dafb9f62af564b47a998ffb6e72ebd10acfe22363287f2ecd8fc97a8b89033bcb875d82e3945fc6b5f58eaf9f72546aae6d5b2a20d2169b5dbb999c12bbf88f283fe1108e0d8297cf80de49db0db002e9046e6f7bd73d8a76fd24db97f69b5284d2f3db7573a5b893424aa30272ca3ee6444f88c40f9b49551defb6c91e5a98b0d2aadcf97273cb6a2fac82567254e4b49a93b8e76410d434107021fe097c82b9ff0e0de888abb16d70d420ec14dee92994df6bed915641805ada4a52579e0f30c532d1109f7a12f257779bb1720ab2b169c7db0ee42b6b4735210431e8d6218515501c2c560cf36300fba5e1727235e23e51b9b032be61bb382e0a559d7195393c5b2e79e87fd6fe696944a809cda7f323540aff44138807a8fddb2c62927c7866bcdfa2c190ab20bd9f39de72e692457ce127f10d5246db2a0d3fb6766c04bbf4b4963d009d66a2aa73ff9822392c932852466ff284f1907b25ebdf34bbc77ac0867fd7c3f02db54a9730360c0ef6ff6a7792463e0d47d81d7fb20cffbfc833b9481e8fc68e056b860e0a517291f9b2261677484d4e3307f325d1bd797e010448f54fc9a4046f6f8e8083e459a03ba464cd868ef6d97d66b8045492db42b6d1488c5f87111ee242c66c65e6721f3657a082e697180222026bb9236279b0f5f50d5a881a1d692fa199d4e714726fbc2c10a998e3d8bd580d77049eb46d23c2dd232e8f2d4c8394146632b0a62a6fa0621b2d0104273fdc9d3a8024d8eaf2bc6cfc93f5c0a940434432da17d07247ebff11115c8ea4429397d5ffc50b9fb59d66e15370ad745721e98a0821f872b91d729220258a4970012647e04fc3c47de2a560864104b770bd5e2bfd639340bb03374722e78e03d202ba3e7631b5191e67748f7a09bc212811e674a8c11b1d72692510af70347ebf0552e2fdf964e7d0762d54339874ba8e08474efe2ba972f03339611378a3ba1933bf2a72f51368870e3adcd84ab81dd79cd7072da77c72fb1b76a6f20bb6fc57e4963fab47043ab8badba8cebd6ef330fbaec1c6fc8e72f988cc3f9194157036cdaecd812dbe6ca1481375dbcb9dab0031a00b45855772d211a3c4ac70978f0ca80eee2189d84ce29caf533c1071b042169c148dcccb726bf8727183e48d87b6b1a0aefc3cfe4bbac379d5e9e901a5a862cdae55cffd725d94cbec4bf82f7ab3c58b739d3ea8b5248a221c5298fca9c0f8019dbe5470727daa8fe38297621c49137d47d41f00154c787661f1c981fa958bcc8685437a72cbd3d76841d8bdb2f4d0b412fc181435dca4657c3abfa4e049176debc5826c72b5522c33300376a8f9ad1b353c37ef5215a9feec452f40d1ea26b21fda44e37294d497b3ab48b24ff3fb8210139b0984125411021c3826a7a1ed9550af6b4572f4bf62a4df2d5edd0a68a2782e7ecd9932b91eb8c4024ea762e33aa143cb71727225abd4ab37b01d483673708fcad4e7b8216701a02e6e1db2f81859a87fd372bf4400ef67758a073092fd9c0b27fbd97e7ed84e94e5abf3ded896c634589538cea0722e18009dd3e587bd6d3610d9ebca518848a04bf9631f38f385efafd0177ce49b0aa763ae25133310589be976f7479dee6fae06bf2b6038d956cf422323ea138ba5f6104cf61853f35e35068cbed751487ea12eb96341057c39525fee2b5c196b651d6b269a89cb88ea1004dac86fe90bd796feab18cecf194eea7ea1722a8fa63dcf411e343c93335d7846714342226f41c6b92d3391a4be91522ac92b40a1582164bb2819ac0aeb237a3fffaffed2bea4491efde8d360f8e4d2ada672d83c2fb0e72aeaaf11bc74fc4d7c6de32b8bb1aefc7ede9549d4ff8938b5d8059430cb3c4569decb95922c2da8ce96316ab4a60e7e3b18174834566d6eb2ce72d59b85eb44e2c77c73f9043141ef1766fe031bbcf6e7b6586f87a08272c4021618ca6b81d7eb21a7d0b98a20db0984a302da8d700cb73889dbe75e7261775b0151871b0692c57e4756b65ffda2cc96cb76d6c0502bc243b84b692355f2bbd211472b7274a2e16866b0d83c565ff2040dd41ad4965624f3e6f54e2d92118e1703a0024e614a463eacc0bd7e6a87fa2de993cb4fcdb78917c1d41543b816dd7317bc5b4d6f77c53a84acc35fba2488d152e12e14b1789ff9eb0d1e54642e6d8a6ababaa1660d32aa8ab8fcde8da657de943dfdbdc763b02ea0be19e340c94ef021b321b3594a30ff87b7663e589d30075f1ea874737cefcd643669d92693e51672cd7f783ff1b88271b7ed1a80ea64fa8284d7fd9512247138e8d44faba0a0f620671cb0fc8d43a18e46bfbd0f23ae4a4132891565b2ade0c782b3996db68415729987408a0402dbeecd71342530e54bd2de7cf4b0e7246197030a20c43cc31831966ea69d31bdaffed4c68cb115726565925c6fdd0a939354da5c263ce8d61c727c8750c9da800c66b4b468c918018e1c355ecf8d6732e3b1b212e3b2d4125a2113a8e5634a61ad02da52c690c83c95fc07b2f11e61868c047486ed8b14b9cc725b8499caf9bb13cfbdb47189fbef5af45dbd6a80ce77b138224e1a25d40c70680cf308c5b44f4f3ba965d6f9eb70611846b65554768a861de36c435917dee47226ea2f88ed409fbcc9e44420773404539c1999feef69c13470fca6996666834ee4c82fc23a133e73737d0c47284d80eb69f648730103aa385ef1ca2c72519d7263faabdb137826b9324d4479b38cee6b392a5695614defbf6de1c21a4d8cd94dcc55798893aeaa6ba3a0de952a931a2cffcae1dab287e1444b139476114c4d69a1f8a6b33de7780cc2d204804faf671f23edde9a55a0ff5a245eac92560805121735f6c3c5121c8f19bbf786876e205565736390ef442437ca0869bddae09372bd51731e97d271712b0c74ced671fa08a89313971c543ce674afe586dcbda6723915dea4186c3b36087bcdf835b254fdc3a06553077e42c9276d894aae61eb7269d8cb0d63d769ebd2771a94613aba3aed9c55a2399c7f0c8eebefe24953b3116d48491b4afedadec3b2d4915f84e553a2c8bd5e0e871c96cf8d172b145f70728275cf2deab6d54a55cc4202676414b8d802924b2ee7acee25b95eacf5eeba72c46d6c9026bf7f41b8c0baf5fa3dcda085bf816105c90c5ce683ed56cb07b672a365494b8e307f3338152f5a62c37cb75df7646d2a5b10c70014a1f034a768724cb09fa7857b34de9c61ee953828b51014b9d8b5a4a5654ff6cae6f13cc82f3cbd53003cafe534533ba276161571f09dac45385e1dee36740e7b52185df92772c10481bab47bd7df8359a68f0c37ecea4166c2f9dc0a2fdea8f5138837c157237a2f57817f818942adebd63a294b3d3921d538a61a2445349ab48219373150728d7bc1fb9da6fad10e3108e98b6e727a20ff0e656fbbea7b4cec2f9987f5fc72ba53f1f28596fd408c240c33752aee6697238bd64aaf141577d7eaffeebe607214dd85fc02f587b7e8feba4c0e4b8fa72e4e5f91fa43630322c7983d6572fa5cc9e80738bb79bd2a2d5033bc5426c80ea46ce5dc052456df6ac7403eac580572deb60331c2ca9c9afbcd7a40fc3c1c5f79c9a153aa1a4cfa89e767c57ae4da724482715fa25df7fa43078ebb1a32b263b1881af48b77616ed3e0d0cf83afc3728b9186eeeb55fa023a82031e03a5f329bdd2520e49fba7ef1f7870121bed827288c453ded215a96280f8c869d55588248a9d09c6890d3b22bb7ee0e46499e67224e927ba4c2af65843b75a70b65132603a457039d427a85b0a82408db22a2d722e28d1cc9a1b6929316eadbdfc060244aba7402520287dda21f5ed777fe8fa726504df10e9a2c48a3edc9de31a8c343a24039bea9f0fe0be31cf3a3d153c2e72a260eba454c0076e3f1f7d40259278e0d2d3f3cf54c38aaf848b5ff1b15ee525fd6b43f8bf525741d5b3f86c80d99def949ccae834b7aa9f7c06ab06c0e8c505466ad717d67430d1183957344d52f713f43989d03c7bee9e437239c269664d14a6ae3cb1082759c383f4a9f839af61912ed129917f689494acd67a5ed944cc3c7c13f66368864840f99fca626f48636a046cf1eab1dde8efb6cfca3316c68e72d3965b254c20c643e2aa2e0064cd1d3abe44638d2b4cf6a5374b61cbd8479a7253994ddd8d42855ae1ab19a7607f521596a0bbe98370a74b81ad501dde7d5f721f7ea0641b1ee21a8b27764f7ff6c9854e46996d3edb5883ef7ec4bf2c289137ccfc10a5c1d950f186e8077a68c4b0701aee39a2489fa4840cc3aacf2556c372f6c717220e002f7e3909e96c710a2f43643fd681bb201a6d38fe64a4df069d7297750d78d75e4cb35bac575ae1028d47425a3a3907c5cc3532d07bca997fc072ac5a2201aa3d5df53d43d3ed2daad5d14d84fe978d919f74ae99823d0b791435df29a4d9875014c971d89ec6d3eba13d4efdb5c11b0eb4a637db3d1668fa2472cb45d378ab2ea6971f6189129e888d63cea7f25a4e7c9f410beb426ccb191372cd39a8060fffddec0fd770589d96a35c7615a2318b0bd9e5024d83e50029b00ee6ad152989672d0f20d337c43dedfdf0dd1c70cc123f2dce908ab5a5aad81f32750dd0bf7f306729cdda89a80d09dc588addc73e98240bb28cb53c675dfee7729445b1925f42f23026dcdfb91597b47a6a0729f9e150d5ceb0974c2e1ea71d0756323138253b23052b3707e9f10cdae994783334050841dd6044d4d6c4a018728568adb537c659c56c00517a7af4e24637acc000d176dfa3a59b328fee313572dd2d70e700536ecfb437654b35fe18c3f909ee6608144c8de0e99f8d5a58dc7213385453234f3843d969e7fccc12562baccd1a0165504820e5fd2e4ad47f233941e3af645461db7c92deaf3ea4fc6e00086bb53f7f84f9fa1fca8e2ba359a2724d11c527224db5246a3ef899d0aaf19bbdcf4dc11cfc7f017761f4ed6521bf729146d572b268539b36a8481c0832044126fd595e18e1c8343cf434e5c7a0ed726a2e3ca99907b0242e46403bab48cd1528ea3377484f4b326e3ca1fd3c0b2a72c2769562f9a803fd5aa902441057969c2eb136cad87adc3d5bc3e3f8f5ba4741c607d0cf99d20ac318dfa7e9ef317f71a08ead3aedc8a6ac11656818f248925dfcceabd6818d822526dc477a1b61d2fbaedb282358b7ed42a95b538aa1d99c697f5c71777e0a8b36ac9566ab61f97782c812a24203eb54275694c2a382acf27250f4fcf4aa7d0c203d0dc525c401b210355c6910fb754d67e758b4db8c30bd581d4e97f2fae1fccda1c6c70b3348c73a91f23e38015308692a775499a89acc72f0268be3c97d697d3c63aec5d716569bd7498a47e8ad322d0323ebb3a5ac1949f88718179c63aa75738bc51c0cf93034b6f08f087ad18a5ec635768143e273727d08a6c220fbc5e48e441ae80baa245927c6538a8558f88d04e6ebba615fcc72e0dd6e86b531c3cc7ca6dc974fbf1b6842a449ed1d0236080579d4ee35a48e2ce8e2791b7ebdc20eb32d1ce3ab211dded99da847c3885e33335cb631a5acc2722778d0364331751352d7e6a9f4f3ab4ade75a3abd37cd98fc25e581eb103e77236c51f2665c8a33290f9442602307ccd8d4a9e577b676ccf03fb84991e25e172f8759924d52ce7c9c81ff19d2062e90ac6456a237d0c6215a16a1cceef4fb4283d8786967475a2b76bff166e8ac41ca00f09bebd0f6ec7b90bac0bdd5fcb885979e6aae6b2f6f61c6b9eb8bf9689682660c65ef82e8ef945210b5c9a9a9b8c16a9994b53d054591c4ce6b8dbd81f2f6ff59dc86f46282666a0c7226de1813872d3d28823cd05c9657fe9f9f458daed3f4b1d4ae276916ac289e588132f752572cda91f56f6bd3db2865e4ea82d470f20330303f43d9cbd3ea1e6952b7a706e72eb931879cffcf3d541035b988aca6d2378381387e9539b9b9cf0392d6bef98728bf33f80d6fb2cf01f29a970a3abd7d6ae2166150f215e6d661da7c69004630fd26d95b911f1c35d1abb39005ca9f446af0b9112e6858e5b6c7dd643caa27550c20f6e9bf6c20ff6c7811fc1477491669c884c578dc89f77ed8733a56f01f672917b98fc7cc930fbdd592d39360054977a2a43be2d7d38a06b1a3d2afbfd20723e42f7c7318f2717c4021df6ee58ebb5ca3addd11501925391307d6371734a7228c28b948877b77c02b76877c81b23518463a6c00925e576575a7abc829b8772b6e4736169c4b78700f0e4423021d06d59bc9f0baaa5aaf77f3291673e36e972e16b1f5843e748066454534dd49fd1e4132adffb54c8f7b44cc7704ba470be72a6bedc8fc76702282c051503423373524f1dc541d51e41bc068bdafdd7f02b2e3eaea0b04b80e9503af5f4989988a02e77f2efe62f7e13d2bcec474cf68e12721532ad41907cd8674730d9fb19c6abbd79f1707dbd2af23b742267f1c1f33872bb4dd5ca4fdcd3644a55e33ceccd74a1bc48ddb2f2aac75b004f990c4aea816e13f29be23af4d42f67fc7ed26f3bde431f0d34e8ae552975a0cc81cc90c57772f2ac224db2394f99a2e9ac5dda77988e4ae08cf56bb5d174cbcef142388e107291eeabac93a61e649651bdb7d5d38b5d11219fa32bd6c2b12398134f3bcdc1729784e1030f6f118ba5a31947e69a490ae9da4eb5017651e487b4f95913c374720d7a41de2ea0827ec9684ca4d6dca0a62eda73c2fc8da7d75fa2256a6c889b72657857027142c02004a34f70f23ce8a21597eb62e4dbe9f7ff8ff9d06ab84f4944da820223c392522dffe9a1b70c3f0b26e9f838c4a3f54668bfdd8c470c277258a430cf48e539de862375348934d066506a7f5e4f772fc3d33bc886de984f7272b3edf79c9960b300e05fa3fd70d758c249a376872fd84e37b9a3975988277280f66a21b556e3fae5b66c57bb2d9f78d514d7ba957ca450692e9d8abc094372864fe330a32e7183040b69943fd1c08c2be8aed7854a7924788855236a0f8a4e1b71a2243a0dee1eac82bdafaab1b5272ec5ca9ae392924b4bdb62230457df72ab64650f001da444a6315d07c47c5e4334edba3f7117bef228242dd8813dff2cf8cdbafc177fcc5460cc4f1f8471a4519cf434205b50f472f609f667166536729706f91e88c5aab0ee9114cf8b1b506620bc6f12f6689a7a168f2219fa6fd27271683bbb6edf75367437050f3d4e07b6d908b03f171c1d1982840fca34b68e29b4eac6d116755735ebc0eccd8eccfd2599a97c8e04d50e93206af3d65e2d7b10d284c0642f25e21ec1cb1fd259cfea99488dea0a2fc2ad7356abc33d71933172ddcacc4e6f2f91d2b9dc27be0324bafb902693929a0ec541614af4f703e6e5431eac6c2de28ba32c2da09e64d209932cc3c4a1ac0e53b8a760c9c1c4588eff72cc780805aa8c89e125796d0396a80098db48bfdc66678244f628161f09028272069c930cdf7f3ce1cb4cf1fed0baba6b988bf45159e25e8497a8af674aae6772819c60503c0fdf26986dcabcb9e301d985d5fd217307b7288cab45fb9ed2c86eb11695f095f71584aee02a8a9bdb89b208da450e80cff876a445ae0c6e3fc17282fe2fbd969d23dc94f2124ccec5f0b3e7aac3816ec3ffffe448a3bffd404b6aa18491cceb34d41a1e26c5989c0b6598a10446437d12de44b75ab89eaddd1a72f707a9d8f0df733e2b2ff4bc22df0ee021180fe030e7d3df3dad99cbf58bfe01914a1671e39b245c9bde05f106b26a023d2bf29d962db00d9f62c20fbe0efa7286ef03e7658c6eca21e930d01816f7dc9ee7996399823df2309f892a4ebb5e13531c5476c2fa5acc6e1eabf20081b6cc1d1adb74901883e82d9e6b636e80c672c360db123b2376cdff36f851a492ff5639c6d6be5265a6dca6cf2c461691917249c316f0b6cb8283a82bd309b844046f5b636b7f8dc936e32ff112564a169f72f0d13766a18fea726d1167b23822e5895ec5d5256f2bbbf4a1eed5f5a92ff2723389e906964ccc753d19b01a806c76267c6bca3b3514d1c191205d3158c33e727fafe2adfede0453680d252a359adf7afbf1366cca877d44a14b6e2578334972709d97d5a9f30014fd1fdd52919a91f3c995a3bce504aa9e795c63e8d1793c51ab9f03be32eda1aa0ff622b7be68eb87049f52e5738c593cf5a8f5ed7a91fb4fec0cb033c3326ab394a11e8fd748932d7219312987ee2c33a9a414461fc2be549d826e8ed39ea325c288e06a1ecc9de09c59d0f2f4d884fd8e69fe1ae2fb90055dbd334f21c47af51d0284b008707653a3ce78a1631ff00ecfc271f1a50a0e726803b7b5fb6c810ee0575ac1903760cbf9d35944522c9d0ba74c5ef7566327712eb0dc063de17b6b4da753c45f2edba3c30ad54e7b0cae1cc86a3797ca747d53ead4a5832a57ae7c1e9bc3f53f18f92932a546a141736de66d93eb537631de31c330c6fed92fbe5d446c4317fe41514857695df0c006dd40ef9023bfdd750172e22ea5483a31747bf97cf05bfdeb463a97dd25c29098d92acb60705383405972bebc8f2b82b8f46ced4dcd2f6bb1756e2193f5045397e78a8107e0e79524c525f47f5a952a9297efaa25953a0d1e04b425c6ff39492f832af4e242daacf24638eefa8bd09da2737120521297376767b0991e9883018537d7fa8117a9dd2bed72a3787c7fbbc5c2457d7744f2403ce779b67e831c62d8d3a40bc3e7531dae3f72101eb4f6241961d85c1d1035d8fdf174cfb9e70cbc8a0d1815048561c1cce7729f91e0987314eb0c2e59b3d6b453317989578e50cd78585d3601e559afee1744ac2efebaab0252a3e9f58191233177741da58042bdfc195fb00201170a191a723fbcba534287671f6a413663f19e16042b961687cd9d3f7a76bfead3425fd4723611dc876981f11c82017ab25b77d2ee9977a74c0f531e000d1f2a8595ffc33e6b99cae75c9f62c77f81c9ab63a1baab54588978595c9fa20f149d2b8a583f7225893caaa94b9bcbe77e45487cbf41c8717a05ca9688c3b0116e9596c412ff48176cf0c84c29a19fdae334e07a17bcfe96c39ed7693979e44d25e0c2f690462610ac7b5be9d19c74a1e2b1c32de8c45bd6e1f79f04d120a575f88b7077f5a614ab578e761d23c145b17ee601ad56367afbf47a258338d05ca89d6ff4e6c69a729b7370567fa7ad7e5ecd3cbd250cca07d6c92d957a31e3299b778b9909aa0918e1eef66cd01b7b2756be5dd1deedd939c3277497b63d2937d034e5232760927213d97defc00d5fcd7763028ca169e5068c33c4c7671ce0cb0216b70162b6da21059343bc5bda2aae11e6c48655a942ca5d506a955eda5d06eb28d637914a761d25fb044a63e79f4f9d76f8b049197e319be28b04614172d7f59cc1cde1a76e72a6fca80ec8c65a510130070b9aa910f5b638243578e62185f0f2d7495dfd432f5bc3cd748ff143178a6f0d2bfe9f82d2db7a3c26618cf85de6e385a12276394892bb6ff97e924add35a24378746fd1d970c077ee567c4e2291f3e389dd028272aeed3ae8efc1cb4d04b14533b96136c6d2bedc6770ee279b4d2c004f001c67723ebc5a734d390d1cbed0fb9c6ffd8fbadfc8268f91f0910a6fa871eadd78567291a166a0a0fce14115a652f2fae1b5cb59cd6bb8b42399dc62b9c8233b8d2272d164bdb8cf6672bb6373083195485f6c87584c85094fdbfa08cf761188ba3372490d6e2bd823454c9d2157e8b1103f9d40a2651c7096bf07d55c05c9e4379572499c9b1fa330c2d9a7e115fcb37b067e3aae051e55f4649fefa48028b74c0a72c4aa30a0fe63cc91642861656b841019249e718dfbed0155cfa6f20a33727f7284f81aaba2aec26cfc39040ef1b944619e2cc69ef903bdfb307253beb0080772d1e3921997aab19a5d62f82db245842cdfa5ebc1cb8ec178a2317c909cfac672d42f8d085c309a857e325871e3a8935e907ee6bcafbf6acafa0eaec82b8b5d05d45c7afe9c53931428325de100e45b36bb7a37c2a11e34fce7e6e185d03a6172f6491d15f9c122aa4c30ed284d9f2a09fc92ce82bbafa7f6109849461f688450c0043bbadc1e8e057d6b93cf3ad0a14271c2a4a5c4100c64c85f3d4b21a0ca6ef512af8e41140e24483f48d50c9b615f8b42ad90f0fcfb39ea67cebbc19dec72df98721965bd054cd81eac6172bf60d93f20c2ab66c5170b5bfa06cd0bd76a714449c2a08a9aadc50abf182ec708dfc70b2a66c998bccae682d44cc16e9685624df9631aa0eee3c115ab41c56862c3c07e1d3349ab652c96183682386c9efc219db4d567558563fdf43d1d0df6669cfee3fede270d59525dcdeb9d9644a0e12dbfab9b08c5a73a481ce31f8bbd90a2172a583821756a7aa94ad67ffd5c8dcd72b8adaaaaf9754411ad35aeb4c72217d527f4f07b56dedeaba9de8c02270f017245c0daa474c4d4bd433ffc3931298f0fe1902c227105d4335a7ecabbe088c672643071854354e050a38472f677a5a431ea805140523f980b673b0c8529c23472749ff182e18fd59744f1d3de0802816915780dc7eb8d83ffc59434eff011dd720632b228804f9c63175b6a7cbc50c86bf2f2ba3943e8bd7969f48d8f46556e7296195c0acdff3349bcc4f46e9c7b5a37b1d3697186d96e8cc6cabcca215e2c72590cd90efec3cc08085bffb4fa28e30292abdc0868bdd54310207ad12d6b2f607651898067f0954c3e524ad97419546be9eb59db69cac189fb2394729f66f93b9db1ce7e83829771fdfd6b3ed1e34e920c3b9f5ed889c1ea2e326fb3ae7f6b7252301f80165cb8623ca430e62125b4e1ea49a72465850ad8ef060485f65c775f713c002bde073a88876cbec9e448c60bac962ca644b3feea25122dfad71e61729613a92b80b933a09d55cdc0d89649ebb1fe9c9f9ae95b8838806d0b005a332d26092f56167c824c5f21c4046077d86d523a11fb3e7fcbc10a8a319612237f727e4a3087aea46f805017192eeed86af3c327a36b56e9fbbb72719b8cb020003552aa855c3a8c68f41516d9fc0e3171a970a61babc2f0022fdf396b90e84ec00804d3e9781f01edf24fe02d5f5addcf30bf7ab54c624326349f1201400adb5a72f0429baa32394b1b134591d934827020e591fe066e9b3e42313594099f5868725496e94fa6966e52f0110cff9b88254c11a2f484c56fb6c37b4232ae1582810622750b063770162299f0ab7703b17bd2dfd00e1f1d25e2cbd74557828b8b1272c019727aaeb4b000a5ba0a12a778f0b7157fc32d971dc7da4de7efc59ea5c4729bdfcb2d96a6b5565570225e6c70e572983a1e61f85d1f7c34158b13aff9c85fa4e70023bd99c516068e319004504e8f2ccce5d8b86ecdd692f062cac5bdcb72924804668b24a8ab49cdcbcc8ac7d9820b3d589ec13d881688c3c92d0e04b3492adb6b5ef627a33614898e23885d7162ac6afa01f83a82a1be496cd9bd4fe6657f4fe5903c09ace12dc52d28ebaf365fc469fff69cdd4c395821a0df2ef87c7259d87a27378c3465bded40269cb39dbb099332bd4268057f36b884cb0a9a8a72b5ba73da416120fa1962a95f651a0094f1baca2c7a3324bc0f01620704c1224c6f2c57fae3889802407c023781c710d7a507ea540b01614bc16a36ef092b856171d74cacc2ace517f77001e293b27e1635d7995b44c617baf794cfc3ee96cf526b10b239599fa16018c9e4c4ae6c1ff869a78e078118addf30995d9d16e648727539854e2ae2b5ed14558ffa93c274a6ae8c3e7a07bfe11a04ff6a881ee796727c697edb4feab665943948fff0526eada2b591aeb3783616bd92b18ddea86f72634d1c6a0b5e18c4129b8ab21d5ca07bba96a9eeafec855525b3a8ad1f475a724f368c5c35ed2b3f20fd124a1252a08350141a085da2880e32b97265a6ab4b4cd06054889c401ea0be16fcb9b645a4a2e39805cda20912e6c61ae567438695725f101f33043cea06dbe8336b11ad465cc1617314086212b7dc4d51ac19b23109cb62606c3e0f2d23d493169cd5fd23d40686d02362efc46fba77610892f47d72b3a796355a5496717c9242187f656d8108e33ae205d6d5faad16586e71a7d2722bff02e591e171cdc0c05e0e584faffcc025a198d42c61d0b7a82f3398833d729200eecd56da1e1572ff5d86be275992500cc7a7b5fdd65c689bf789630ab37296242d3d3027607bfc677de63769ea4022f217e29716aedce17bf32648e4fb382684d500fb5f53ef446cfd7e53c9e5026ef1369d08d9f050a3a3e8bdb1405f72494b847cbde3e92ed6ac5b002f46589d0a919d4209118d8b0656d7d8248f0172bad43d92b2d650ba352f8beb8264f8da3b8a3cf9b6b98bcc49ed9c96d429b272340f5558188597a329d97493a24798345903bc0799a8270fd10206ea021ef51e7a2eebf996720ff4e170340ac9e831600e28259dbc5432e6a392be8751cc7272ba0f0436e0faad86acffac7817c6f950bf7808164b5897a8115634fbdae7aa727ee2ecbef81409b3bf528b35c81e5fb8ff21a29f1c3a3357d698a7b3359c2d0bd819708d9c9be4b3fe3cf68c70abbce2ec257e0a8222b5bb8b47e3ed5df2dc62d80c099207de022c161b0e780d67dc24201d5c0d87ecb0e5b5f24befe22c0572b93b9cdfe752a16e36019556f338f76fac137ae12e0c30e39902cc88913b652f94f90e7a85601712a792eed1c4a26e8a996d723d9c0e518c1e5e2a8fb2171c4e6f6109ebcb0f0246e1f8e02aaae72e4f32eb9f9919d98425abf37eaa34b9163f87b17d6ec6de7073a9a05fe9ad497a85ea845a013192c34c1d523f62f7243a723d740aa5d618ffdc00c816a3a4f1938c816c0fcc440bf4ba8ae4b26355db4f7225e728325d11636e16fd46c0ccc26d16cff2ad5a57aab14a25d836d15223cc728fabe40f1ecf6f5676054a8e96d0cfd6da481e91ff90b61348350507c3f1357208126750d19ff227ef445047652c9d32d99ac089dec7f69a9a48be41a8137b368e39dee49013ead8ba192753423e83d0868c01dfa66f5c871ca8a3f0c68fa7725335a4495cbcfd602cf71aface6b0de876902d894b84f4b3ef2f2df49ad9045b308aa373ba8a78c6c41882b78480ad82768df7d5c64c05c8b801ef653766d572c190c1d231df30444796ebba3edf39c24f709e2f77aa5e52cdcd22944d63c64304c87e2a9144b03f1d57a40d0f3a852f8ee39a85c13b01e9a2700f7fa5361317abdd13a6174b6979935eba7082d9e57f24ddd02d5936b6c82b60008d95aa5d724f4e5a5bd4d938345ccbfb8c070b455bfd22349a068634e34856c2fa97effb6da884ed56a1c335d533d7ef14658ade1e7a9b2e823ef33b3ac526f48cdf25465da962c879cd1f0e7a51df3121228700ca6a043a7edefdc378f0d0822fda22cb3df47062dee7216f6eee92a373767085bebae2a69f3eb48ed431c48e11edf2c00b6cb96dd967357e51c51c24e043d0669689765e24e673855b1d4abbc267d3aa72191d91cb3ac3ef7f0dc3b120a746786c10d3f8f7072888f5f9c99fc484d82572cc85c110e4cbbef9d0f1d369550004be03741ddba89b08704ae987d407e4e572bbdc274afeaf29e38cd999c35fe32f28857d0bb920c6399326a295ad1273c5728cfdafb908634f6fc2ef9979a3556c71797bc3718fdce66a2f3f903d99831572d09bbf879ca0c2601f8826f356416ffe088b0c90b3d7dc2bee8f1b3ef87f6320c56af987f22b88d9322af52d10f7934b2cd70638b3e94a8122be1a125000d26a01189903235ec574527c23ac4b2ead798e97c80278d8fae4acebe9c0821cd372c434b306a36492f9db131f674cb033384ef1d781700e81e691f75048e1ead64a6e315e4e445ff0815a5bb17dc1806fc230ea47f15fb545eb816734d1820ea97287cb3dfe223de126987757d6f3b3b0ab64c899bd0a28317a59dd09b97a562672e3cbdec5a44dcd19834c5634535c42cec5a2a66faf18e73b2a999702d71ed5725693259c2b5534678923bb54e971c16362110f4494c95ea975d5ee8a486d6d07211added758c6bd1f34f0f27a621f15472956d7a07f28cc65d408a103a373372565e3c0eea273ad3e0adb60272ffbb4482c55859f556a5cfec4b96a0ccdcfa725fdc32b382d9c05ac9ad9ef65914298d47ebd9e8e4134a83d27011232ae2da72cda9ae84f94cc48d129b24a7274ef29e9e8bf336958969a5b153256dcfc45c72967d88a123a9a1a212712919802b390b3a44ac4c226d41310a0fee933785967204933713ed9f086b6788b70761432be92ece44fdaaa131763709d780402e5f72848813e93a1e24affc4f22f6e3f56ec9fdbc1e5a2cc4669b3949ebbbde18ad723c7b249a834895e4ceb6ecc6858ceb873f4f290b328c13b74120a29d9639a97214100665f7c58c601e16d68ae5ead76a4d3321d142ec074fdd5e074f997d724cb81fbfd45f3f33fc18438c33f01afad42e1f30084c1ef6ca747156a3569bc8559d12bab804442d496864a62fd7c09838515a71033a02572946fc4eb81b43616978a24fec01547dd612bf61e91de55fdc20c7f363819d453251e7972022b3a958bd87c79ed8bfaa8b455686a7258acbf0356c19722fb784b4ee4220bb42c4aa726e1cce5746e168564eb4edff47382e59f27f16ef9bf316d506cdbbbab57f387265d7fae124629c7e4e38fede7427b46053bf079b8a4ae89152d99bc3c43b9737b2b83586a48eb6c0e54e6b0c961f6d3e0193a86aaffe36dbf80e4fd0b27a176f2300797d4cc0dd3ff882d79f4769a195f2e6f7768f6a1ce45ba7f3d2e6217544209d3a67a09cd48a170e6231bcc4cba581b0b18986342c333f8e73155decec72140f80d45c7755b744f4d2962918c6320222b42c3ba9eb316fb5818dc525ae2f4f1308455cb2dc5e509244cf0b9ce963cc2a67703fa437b6b553fe2c5377536c4040aeb831e824b82d92d52b3563cb761d731c6b7ed2069f1a0f33a9ba97612a8709070e6144af26bb035123a6d2c2e1934bff1b0a2603f3d4244f582187724b3ef7d6e2fb188dd7c5b537784d9359f4c1d5ab651d0d26bc6f0b9915e914f5629476833beb4e3f49be059d0cdbee021aaf8f638903e81e12d9dea0d6ad8da82cb507e46c86384ff1f42c1f249c69dce4fbe697d6c07d9f18e240d5b8cfec5c12302de16079f0dd582867886fe1b220f1ce4ee2c3f6f87b1be1b710c243dfff72028681886e2b6de3b7efe173780f996c5642996c3401c563a43186f5437330721eb03e6842ba72e69beeb61836b7802d45c528eb3be22bc75528029a467b9e72c39773132c54f6b7b7b79fde1e98d88129d5107842dc82ce0d96b235d9fdf96d510811927175d21dc3a8c7b1670b509e15098ae50da5a05be150c60242d3647265f64ae6793411cde3fd6ff9dc3f8ee60cd83ab35445074a6ce87628fbac74725b401254700cac0c3cc6a3d09158c3e922359db0067a2ea9531daa9d242d1672160690b68eba17d471ad37bab5f23bff11bf529a62870b2f2b4c89632e042116ba862621f7b7c1a5fd2f2d6c33815f19d7876cfe0db6f8ac394302f6a9e88a72b6afbf862d6d86e2beb602eaabb5424a6d81fee6d3ae4d9708fd00a437fa7f352adb95f5ccc241bca42f18c6002224eab40cfd8950b045015184c2243bc1d33eb1351863ab42ce371b177c030827b8294fc71d5713154d9a0d2848ab2ee487728f4fccd1f520af16dd0907d355757e856190affbbbf70b455f3d682c0cc47509f30560c546517e84905ebffd6b170f3c10d67ae5e0b5be339fc90287971305727d2b2b2ef5ca8189dae4c7eae5567b826eb010ba48ac5cae4709860dcfcbb672828525c1a71168d3a0bbd7b113f2cfdf6e7323507bcc8944989c2e42639f1372b6f36510df08f9694623846d3c95a40b0544e26d11ecda78356b9766255ec858f0c6a6a144282430bfde455b857a29befcb4a801a443a5eebedfc97950491d37d4724ff50891cd3bbb4a073e67507b6f4e0ff29ad0110d803a933c74beb1a570de51bb94a37277f04f62f4d10910583addb7698e021d32d00de304f853b83800ad231b14894eb5a22718c8086aeb103059efcc6db116014c612b67abb4d80f0b0111e37ce47f22a2086d7f3b4db293ac2ec88fa2e533c8f4ffcb99b554b08f72d7ae9d7f52c47627406089536ea21f4ebccac03a0f662c9dacab5a587aa9b17299e06d68a355797bc518fc3584bd80dc484b6c3d0febe9abc24020ec13999472440fd99005cf683c6e129184960379bb437326881cd35984c9b88c1700e3b67269ecb9a1e43737d6bcfb5f06c3e78ad1926e6ae09ec827600381e87e5dd90f7262005ee8e71b7c8f1cf69b9b6eacc8b2343aa427ba5ca7939143c77e005b98577e7304f217368db1c4e9af1b39743b5b6013290dc164d6a093a39f033bbc26729589e705a4f2bde7ac48a268d923edba69dcf9858403857826ed3e4931ebf96ce6c1e6b1129807a998beabc98fc24025a95fe5dbe45d77345e6bb7d13a847972c461675c4969e526742832170e8baf48366949ba911c020902f6c0ebefe4ee5960d93334905de9fa2b20f647edfb372942fe17a67f4443c6e1afc563fa53153f3592fe218eb95a745c61404ccd899ba2cfe8425edf528ea9994af443ddc5ca076e4f381a7515a0391390051bf7b1145f22ee38937837d8d03107029b5559b02de5395fcd1146ccfff8f1291f6956381bb8643ea2931c6804e4a81ad109650a7201a827902f46babff4f5c20a5e6eee4c071a40172d6a5ee36703663164a55548517a15d0f4cb4f8a901d1d6b074a38588771634a8fb1b3a6119a6d25ca129069d8f1338de4ef664ac938da6a3e94d86fabf939aaa3a2b952dc65a23b4b8b9c65d6614fcca44689b9efb1152bc46682f4b2f02a99d5aa8d0131cfd56e368de61d03bcb7272211cdefd12cc4e973e74085ad3b60d9f89f9b9283bbefa9ad35d972a5a518585a293861823b878d673e2f8eb27276a8c50e222a3c9df39d37f255306aaa8f06922b75a0da614db8dcff10bc0a6816902d3c6c7910cbd52e1569a04112d22b19f857e15191e53ccc1f6b0e7412d863daee96e5996333442709cf8c72e30dd30849333ed62859d133f886699eb99c588e47dee2a6fd968fa14eb35a7284b4f97d4ee9e34d38f8df0147a616ba6b13708b3e64da0dd218b75ef9887472399044303e414e46f9338abf84db3e51b0962bce5c8818920815701766e8fa72792f9f7a21f67167749e9bffa1eb8e698bc28a848016712da5049c03fc095c4a813ee14f1248067a3647df1064abb72a59e92b83c72bf31532174cffcb926935e56f8f11af446b85256a72d7fac55a2cb6f958a8a00d7f41aef5024cd5980372686bccf3edeea1ec21c3768ca718424a15b743314f10a8679584d20d464f6c34f89324e3e27d8958d8cf7c6f91f95708a33d2c96ad167d5a1512c51c159cca7202490ad89321e9390ada3c9ebad8df0e71ddd21510de02bdd2943bfe571e75727f2ef5e489fdb8b57a8aa95a29c1d607143134a0218c0ab07fd3649de0523b7274297ea78b44297551c33da48d91df14733022f2a5e1ddddbc229573d2e0a172324350d776c93ea3c7b4511c42b5bf7ff431571e4d04df73b3560639031b84723af43dfcec32a93d8e8ccea38533af17693435abbfcbd137486ad325203e0c72b3062ce686767bb537aec3f44068d461518b793e853f3355b432cfcf2cdbd472e9ca67c0c62e7973fe7545d66aa57e34512a2aa387f6df0525bc242a73854a00eb57a1f010992f4ad24bba627aeb1b427390ffa11305610abca17b80f4903d6d61ac89eca8489847fee4d10beacd278d3a17e453a15cef6210f40c3ac36080729f63650569e3b83160ec7f61949bd53043a1b7d87a6b4412966c0b7c45737535b5214bbf5af84c934090fed4e7e6615dd0ac025bc15621ef7cb79f7e07c37f53a43a624465f14c7b09b7b46a36db1fc93eb070b36c11c2f764333c8f47359c728b26567c9b78b588a1c5b8582b9508679e7cb66e7afbab81cdef2bbae192c84c07baba11c3c814b40f3e45e90e407a783859ac7612b38a46ea406872e99e5b62ca2e28a2d6e42d7e022a8d4086879701e6b387a092d926f0e94ef0406c8d8b05b5a8ce8ebdb9c3040f9bd9b0ab6cace1eb7b3cacfcbf8b3203106894b346617288df732f90c572f78e890a83c1438aa9e83607bf665dfb9d5dc9e5e79921e172b31823dda26c6cac8808327672cfd97347867ab2875a48c0521d7380e7e3c810667453f4f466300c80e93d11190dfd1d3905428cccdad852b87b4eca09856a7225b90d025b62c372b695d786870764b0b35da02cecb88523a1fe4f71ebbe9c2e7e6c5de7aae55c953d6c65317962cf88f05f70fe6b8aca7101d214a979fb667204d50b6e93841d3b23b4d3fdf61cb58ee7ca8bfacc53cd3ed915e93ba33bd070c23b56bb484400f0afe1a19932879290870dad6925cf5b325e3100deeff6bd729f3dae9a8d36d49c04a3d32c412f69a391acfc748c749430efe74f4d3e410f72018a8ceca7ae6f644fa17a8e1f1bbe8979fe3501d2905cd71ce4f6aedb66f12d71b70846761a9be0dee773ee6365337e2f52f89e60dea99a5f8249130089b9728268ee4081eaa647905c3610f9e458357abc236da7d7e4ceeecef683f39a0472649d06e8d1b2b23bf91bff67172c4be833aca7eff43e20026aa6078eaa5e742ee99c37dfef24cb50aa80b7c35d81e83ce5c3c4c9f84c0c21d7c99da03960e61b87ecc1ed16270fdf8fd03516d06d8650ad26ec50fa8fb5977f5ab89a4453ef56b5286215f8de14f849d73892577ff3a9e89b9c4e3f663d5ab791a9bc8232697253ca178e962608b117633730619be3cb062c662e01758c15d05212284cb015728b7f456fd1d2f83d2f83df1e64bbb43699610f9961096c0cc9b3e5baa52a7472a336d43b2fcdb461d2ed867565a9e4c797fb73790cc1081226f64c2cf18012723e552373f0101ba1b4887887701e5c1ba24328fa276a7b9229ee99537a73be3c70a14b0f06c2ac3e2ea2b5a3ec1141a47eb7b12fbc65209f06726351fc037047e7ebc0c5ed85396eb14fee626d217f1eb9bf3edb2874df467401e07a7db52424169886c756e157a2cf68d0f1c6a2f4ecf35b596a0c5cab660d95c9b236d59572066e22f607946bb6cb8361e9c077570c8ae76051e7237b9849758922e6beab72ccd0626cc99ac9bf2b82df938b7427c072f9fa254aaa423b38527d17aadb0c6c4687850a9761e84053dafd28371c45e3ce32aa5f9555b5c1db688cadc7da4872756bfb8616eac6e90a01df3303186bae77418b2f4ac20ea8a86b10f85d73975ed7bd2b0696071b153aaed4d11f1ab42ed63c7e5ffaee47fd09d19c40294bd855baa334f10021f46fa66fb9783ecb5616b282bc167fc33e9b1b5321b7711a9b72fc1d0bfb5c8ea5f239734810394094526ae5af54aa17a44ef7f44a581d8afa7240287d7144b35c846dbfba57c7c785a2dcc8b6194e574d7528d65adbb490b77222ca91b93f5a725723e071736ac33974f60b5dd1bd1d4158ce6a7a705513b272d9bcf67800069d3c067dfa8a91018fe4ad871f884a54ac0ace27974a22d9e7586776e8aed2b0ab08ad1afd4c14dbbc65b3cb2bea86a120ed29c82ef60ff1eb6e502c675199f246ae80b422ad5be787ea5d35d83dad000ae8b7451b12e59fb368ccc6c34ed7d017d785a88c24595418eda1d66cf38fab61030bca60b2d4185372f2a0accfdd3a7b29500c0be907a80ee79dfc766c94b417b377c6c65cce19f4721d4f8197ac82696015ba04fab5d84c3737ba41b3568642315d4636c6d714fe72c04f2b010a367cacf319bb9f5670074b71620f5ac0c57ad26144ab89a0e5e572bb20bc717bd0c05a0c6bc2b343300cdc8c26c427349193c4b0e713126e68f54feb9827c5124f93fe9d923c76ed7b927997619d54ec65dc05b496093776278572adc57b6b543dd754131108d1465b5bd9bf3362a587d2e15bb1bf5e301b75be72a670df22adc71c24bbf158103f7c063166b7d869031cf9431cd231d15e58657246279706398d1c19a90ffb00f6f40c6fbca1252802c94206b7f8f22ee401610692b709100fc0fe13403339518f0ee1eb75cf8ba1c3318e54efd2ab8774f14a65fbf8d95aecef50816a1a62975e544c79355a8d09e1d4951c412fbc88b2cd6072ea2220e14566e73dec22a7aaf51b2753c2b5a812d2cf28c39e78279a13c7b27268b51cb678987ca3151310301b01d477d0d85f31beb177c67e2c3a42e5488d72fe946091db9a47176fdaed5183d93188df6d90fd2b186d9c8369a40faea62172eca61f2d8063f3348ea3909dbc5e29f41c4854130e790fbe87747d0f1fec7a72ba98ac257773e69ace8ce649562fb75eeaaa696e5387225d15c54c9adbdac807a90adf8bcbfa688c8042974c86dfcee606125c38a782becc976e2e15f1c59b725e8d1243008ef575d57c838511e34b38c5b573a9d24c8f228fd26715aedb0f4eb3ab5040cc7ec59e23e6d8a3e27ccd8416d067dde0d1d8ad0fa0ff43f24a177227aa8fc11ad98b85f2f1935ef15a8202954238ae0939452d543bdbfae970b727e1131e5c6293d54ee12f6082540ef8610c6502714e47bb759e3dce0337e44c7288dd0737ac2e1905e9cd349c79d21c3998d3c2dc9a214c63454dee69e1764772c1880c0b6caa495941a8de0e33189475dd0007f1785e3224b1621f434420e572a964d3142ee72e1d7c79b70b78508d18623601eca284b945696e8abb22eb5526b18014ae31de321ef3aaf5b559dd6b6324339911bddfd64d488978bf51880439f971e8684b7c6fc60a24279055087a300c748dec57cceeeae897b6adc3f45e72eb15e2714ce5437c7cb5a9b66416e70ebfed9aec828227dfeb6335bba8eddb4aa374180385851b9dd1dd6e3c64b5c174c973142be1c79d0abaef75afaf275172657f69f886c6c85bc171eb8901213c865de05bfcc403b8ab48b184540346006aad51c06d6e9ac06995fb11304c35a59c34ace7a1b70d5146dded899309696772d21b05dc0faeb86bb293c8a9fec5a1120a54f6ac9c7cebc371d526cae2e157722886744c191a3782ebfdc396eda6338266f3b36c0132901298f0ccba5e8d0f6d0a71e01b8a573a71712e8db5666897b04cc7ceb502b03e673533f26649bc7272c9fb825da1af6a0f66c43c73cd3ad89dfa0fda0fb732d74812954279ec06b4729fee0155a840de9f029655b8ff339ca1f78135c8be1847e2d9e98c0e2661277243eb292f525809a7b93fc1f6bdfe8db02688fe99507703475bf8a10df9654431b96466dedae4532c6511152f257e43f04feb0b5ede3a1a758ee1ba8fa86a9b727505bf42fac6dc4c4ea9c17fc809f4c3456fd276c7da6b32532fc249e66d927293ae89acffd99e5a465be7d12832b25591f0629007509244ded626a0f31e553915d499871c37907d074790d1f84a2638afbbe7bf8f4a3aad5c11caa2603aaa72e3432f7029ccabc9c177a721086b9a2e1f44b8fc25bbb68af1d1d85d2980d8723bf2a7cd88fc39c9d3a782b6776878ad88b39e6a711b456a9c9dcedf6cb9521d1cf92e652b4701248b4ebd6e7cb5afeaeba8da6832769ed5d4428e2853cff27290ee493c1de3d7d44ef08e3f66fd023fc1e5769a45992264773302618c12c73374634b807b526b73683031960610b5ecfd6bba816f25943efd9745ebb18e9f7248bd73e065f65dd2766b37410736f072c5325dd5784c764ce4af9190e3e9bc48d70da73537e694ead101522e3ea7c1872ffa5ff1b9829e9129758b46b677251844fc301fb93898cf70018a71affc1375fcd92d7c81ca99c2282d801c15b8381443af6b2f5633616da4222ff707b789a8a2d6f5ea5b5cc934afb3d143c2c1c115eb23989ddefc575c03138194edd049460eff765bfcd2e8055663fcdb73c1b45d9cbe6897847c964c91ec8047cbd206c560e419eaee625b82dee8cf3db8b2c272cd1cc1dfe9264eaf344114bfbba15c7d808f143e75f738334702495280dd5f725148561174696ffc8e6861d4f6ac6a9d59c43596abe6b884680803d2df6344721f7bdd0dd0b05d9135312272eee5dacf55e634f2d68409e956da751c980b58139fbbc56d6caec51848c2ba3a06bfe27d478ab9294f871261756086b029e8871dee34d746f30dd27255d842564af68e86bab7597a8090ec09adbcc29052fce07241a7166ea2021adfce872b1ba4f139d73fe9b63fcf81cadc72b32f3af024b5729d28359b7954456f95320bbc8b70d103669e49d33d512a841a3b0151087a37727d37c1ec8db096659b3b974b4c06f3dccd3f7ae1a61541e46d6c6b5d8854ec72c998e81ac7b5e6561c22ca9b1df0bfaa32070457481f19590084cc209c635c72b49cc21b7fd05dd78fc4578a051c19ee2532be14f26693b059db41f0d6d5f16083cf70f71a24bae55394d3aa07b0697e86d88d52e2201c6a2bda53376196160d34af08c36c3e09bfe5a820a2b008f3b463c0d14719754c91c0e1f0f0db1e99724c706a6870422599bdb3be69cf5dbaaff74ab1934618eb9b7cfc2d4e13a2432018a6ebe10c863c73ccc7e1283dad681d711d947e9e61a77dfe7ccb27708b4672d50c9d2a29287e880eca4538cbf2e046500e1fc5b29e7d98e60685e3ceeacc362c249338df0cd46b440c8623ca51f6ceccd0d65a368f675539e4994eea9e68728d35bf665337bc36762986b73e4d1d989c918dade8937f9707fa799c2f4e58724d2a059cebf5095f9888f61ab8b86bb0961bce36299e81bcf40cf15fd30a10726ef67825398dfe6cf702cdbfe997c6e017e1973d0f2e80051ec45c9a982c1c729df803935d2ced7ff60f220b5cb26e7bde68e4fc3b21b76a099e4e217b3f1872aa374eb5f0209b9a38437df664618a7db900b57d997626fa0f55f884f9dd1172c30f7d352f459eb7ee96194bf326df1e2de13e35f0a398fc07596fe522ecb072693d9992f30c66346ad7d74937be333040ced95475be35381462f34d97064b724dd8a11d2651e9fc5745aeeafb7e0d827eebc3bb68d199e3a445e6e66e2c5772c4042d46705d0a4c090bdf5e164d4a6b63d71e92d33b86455209b6309c1b4d1380f17f31b555144eef34e61b72d11c101d27ab0bcd04a7f47b22f039faa921725c876a60f3d1404f6d7715835f6133a9e03d0e7f0e49a0a49f9325bcda3cea17eeb3d12c5d3849ae45f71518ea8ab14066b926b8767f92ff507a53d58013891cfb969282f689bd54ed54d06ce29f7b0025f551ae777c95200cb22768dfef39721179d52e6d92dd86f218cd80df7dbe6d711def5a0b64f74a523742aa6dab91726e63c1d7c8be8835149b98419b5b7984189bc4776a9c6fd3307277bc8cefd0726ab95d86e5cb7905dd5b5b1abe0e10975cc8f0bd0258b86c05b7be400289c972b7e71c3e56342b1a222f6e68497268c8352ac33c589b9fa0bf34f58d10f708729224cfe0b5a0d39901681df122d5071554f8e91f714f92ab642552adcf937872aad0d5824c990f76e3117ac8a5ee6f88cf6c3956185c22da328eac8e39c37172ab81952e023bae173f2977073c01ac0e520f999141abe0d9c52b59be39f29b72b82599019855533d6ad8ce81e38d942210229fe27f2ae4393f4d67053416095715c18b93f99660c8a5efd28d8e6ff2098e3a9889b3217a556f626bb11682cc059f190a56d66a7f938b4a003592ce6560438e3a17d051251a523491a06a15ee722eb0ed6a22bfc34505b3a32458c4093e99b2fceafe1937c89fba340eed15572b9a5e1802346b2d9463bc81092f0ca194eb4bb1ca32760347b6102758fce7d655808b520b097d0bfb6ba20074e3c53b9febf7268c707724cb889993c81bd3035fb88aa5584f4cd08b51d38af9568d1e7b7a14683b5c27199098c0dc903668c41621a6dd8c1b27d5e0ad41e88c16e3777043436f6af889eca73970c82ec17a5072839be0231effa326d0a8dcf1664396e9acbe4fa9e76cf51f3c35758f38f27937a84020062270cd1e7518a40e2eb2032172d816fb55fde98ea1cda63172f54706d629f6f6a8b299ea9b127abe224a7f6599c93d6e745fa6149fb2d83156c90864794b1cb8f891d1a4b70df8128ef52c7dee4f9d1993578f88a8b673a507aaa77286264c3dba35eb531a40d2c49507fa65706bdef23a5aba23cb91e3aea5faf372a486cce307ea4148d5b4c010d58e0184b3c5463b1ccb71067e278ab5429b80563140eb59f86701f07d6ce2d6fb3efdc392eed5d5440aaa5d975aae526618290d6af8ef2e10ba11b0d65686f2f0866c1473481e84bb8a06c396cfd02b3d2ff37229aab21d2c3a5591b16c4a0350838ac3f1b98f586e993fdba799428b92a2f24f527f6958d922752f23b62704bae5190add8ad91dc43412a63a841d987bbd9a72cc1f7f41104405469ef2c95e5a9bfa0ff54085efea82d84b3e12ea03f20236118a97785f2a6ce23fb2261bae96683c6a82c291d5947d3c951cd72d75a2b5767281412494440c5a6b16876ad06292f06ab8e2be7100610dcfd6e82eee653ae76980863e3a64ebd8cf134b05f1cb0b5fd2177b516e1162e736ddafde91cf461b72bf26d0ae12928f5b379dba2feb622445083fa7114054422d6ac00bf1bb4f27726e1bc83f45fa16e5b191ca448677a1e7fce023d073fd53dd1b311b9c17729c7228ff896785819b3ce5d4248d9cc16cbbe232419bdea0d81b46181fdbfeefcb36b33f9f11ff5bbf926fa4195aafb0e7d09b1665686311427e98b0c65a4b10c4727801da694dde5d7f9b3d20f83f1e5fd2e732dfff3ec088590e2e6c6c84659c72c5319f1ad23f5c3efc7d0fb56bf0be1302b0a1cd7a172f3eb93ef39f75ea835335a6d2787d73c52e2924181445508418e27cfed782636ec3fcbfd436cc0b1372bf2b9ac919a24cf9ad4e5ec6e994d8dd12aace1a179856a79cc6612632d8f27227c35097d9076994d6135c2c0b96977c911195f35640eb08aed2f271eb9bfb2d9db7147e9cd6bdff3213791fccb91692d36f3755643677a25d15a5cfbf1ee9238cc6d4b046832b6de1ec68fe1a5932a71030bb07e91137e93f36d994b0a98c72ab7b843f8aa6fc0d29a0ed7fcb4e97f8393cd7d05537b05f684672be26f992720c45a87e69cf57fb56f0b8a10d1c1cc562a766e126dc6f2bec59dc8094e4e4151641f866594b161f450a5524e1e89d8fbfac54091d768de6bfce383025efc372b2d3ccbd80934a359a1202d918c66b2cf81be3216a0da569d518cea8c45af7725922c1922a5935a1d77f0e654fc0d24e75337a03bdbd25958dd45ba146cf4d118bcb11bdd4506810d37d28b8cdca26a05859412b1daf7933277ea6f8beb2ea7294fb1119988459c30e2a8f99cdd94ca238194ab8121e5ecc0196c2336774ad191505d9b3726ffacb01a0a6a47ba5be2c6aefcad38b9cf3e4b9322b08efbf73728bb09c19c62c8f69bae31d3c4af3302972b518e74678516d6d0b4ba65ebfb317c5d9a27409573d821e954db86390bcc512055734b739565a4fefcf02a8b149723dd6f52af7267520ee4f5991d98811a7d1e420d3ceb5135a7c4c3865b1b626726211a6ab97efd8926ed9281d6179bd2a6b245eb5e0e57723c9f87834fe4efa72eb3189d8cdbf09f6169068b86b6ef7917c5969d6a6beda7276660fd0156a4d272653055345f2557fa4b44957414abdab8dd56acca2f87cfe6614028de104741dd90219625e4b58f3b91759f80381855c6ccc6e8be9a8da214dfa76389bf7bf7212424bc8ef74853c62eec6600be191a059375b8fd038e82fad260a725f8e4d725394e00d35cee3e12bb6b83c4f0f8520419e6276aff300d56985b8f6bf77ad7200f45c389413aa36e1b42909edc3caeaa29c70ea6c57c8c4c5239ceff1799862862cc56f7d9aa5724c54278f49a9cc6fb0a7e7ebeebac8e72219718bb0617e08b12d8b8bb7b0690377f72798a95a32d0208374e205d2f430eb17417d57403b70eeb1cbfcf806110c5c157ddff86d46b0391e3c2868ee470e1e47549d02dad772df1534bfb83d48a30e859bd78cc436b12b9f479fcf6368bc85a30b4a0dd310727d6313e733de84998bdd2a20e8b344f7cca1ccf8eb5953bd45c7957e202c18725ccd14a4eed4275d443fc56b0cb2c1f58f66865b462c7294c8b76f2c6a3ce77245d5b9f218635843fff9047364bc4365dc7fa162ab46a63035128a1d043af1537b20404d12d8772851c84aa330e9f8a3b7b83de50c12dc776d564a3d9cc0ce72496edad59f4560d26ead98db159d974e174ea334a64901eeca3933b25ca179728feec09b53d4e1819f3b5017eb832fc3009eb52c9dba2277d925c27281636b7272041e11285560ca16b535a06d49b301351c1b4aabbf2f7420d4f86fe0e6c27281633f7a12ea043d0883464bc9ea6c65e674bed77a54f3d21539b7b0a3121a175215931ebc1d5831797ac80dc12f473566572526309744e5746d06def608e872733c5c0e902cdd4947d4611cb6e59a3fc64ba1502155f047f66ae246f61283727fc18f50aa8ec4a00a230423f2ff31afa72fcca7d4f483ba5257eb33b5ea36720919f8128d9cb82a20cdb0b1cf18abf076519ec643b38a6b615d652fd67efe64158778a3e3322ec7df17ddf76a9eeca0312d945c77b3164fc713c209c2bb1b723790cc0ca87ceae3012ee4c76c75c03d6520fda04d69d79b220f39d9f4e6a8724c962e5d48c416e661a9876cac31ab17e4bdb291960828f63e0d4c0f9d7762236ab43859ec9b4892819521a8b9fae040df2ecbc0c53e97afc6b730aaa2c2d17218a1db88353860f09fc12265b94d5dff6ac21efc205bb9cf06c6066a578f99724e75eb867319a3a44869e508a923916f9a6d5597452ca222d3e8c518d6a6e172056ca654a6014be366b36c91c464b513997a20a13d5f9a92c53b6f82f6de85728aacd0a8a60112b1f3feb094cdf3bfeaed6a83bb1af2eb8ac8c43cffa6afbe043ddabbe927b2f33d04bc07e3d80f91a5cf98c40985b267553d2d7ca3f52b9272d1794548072633b49f2243eef5044e1b00fd7f3943a161ae1aa55e3e080ff144eb57c4f8d6afa2917ff4afaa839304c0bb3d34d7ff57d47fc74410f3897e371eaf7e4de78d33e25ed7b15e7e8b0c991393cd271836d214c6b652b79effc47430fd598738231e2ed3729df4277d4f558bff49ba61fe4c107581c5cf41a3ad274de43af3dedf75ad76cdea4ca0b20bdf38860d918ae6c5d197026987b58365f672f004485f2ccbc59e6965ec11fd05d619fdb3e5e93ac1ec1194d45a614fcb63729019b4a0868ae2d30ac91209ffd8b9e8e2750842fe06ec9e036148140e903b72e8bcaaa1975d7ac494a5ddf1e2580602aa2bc12db55f212aa59ccce130069f72044c2869dfdb0e529bf01086807036e59adf7d5ca0bfabe9036f6da8c2214d2fee4887e2b6b01562d70e03dca24b3679f23047f1d2e6530239acf6bd686bc33f63524f7724f9b54680eb7a27de9938273a80d3ed87741f4207780ace6fee7d72c0f05ce098ceb497ecd4488af2b3f538c4dbe8e249331c06e244048625f05d47a0c2eb9ce76307495b32eed777adf398cce206a2e20062b0092c15c8c0ede672489fedbefa7049765d07c376f3ab1cb3a26b9840a3c250a0d47ae71a5273c972501d44cbf47a47ae657ff01095a9de2b04ae88b942629b40df849a5ad336780b08275bc210a0f2536d77dc7bde03acaab69dd5f4c70fde234311f45bf1fd7472a0150db03ce65a95243716757b5c510dd1005c1846fc615119bfc9636ba99543828bf0335f646f82ec60d8f53a21b827f4bb574a99875ecb05c5f00959980c0b2e627b82cfbada8b833e4345702d190e4eedbec4d211f7a28a9f637b17e36f39c4e1857b00180d14c068d31b619b6afb7305ea2f0af90692b120d166eeb9465e9fe1af21eb21a3ed7f3b9018e6ff6c4a991ca493cd7fd466672a1abd36b1da725cfa2ebf6335eb08febe09c17ea812e1468117457771233a7f30c629545992728a2d4a3ab51bbf6b2f5243b7a25bbbc92dc2d1970d95648854a5938511505172ba3a1b9ced94c703421b0766a0b6e4d1605ce406a39631aeba3b09f12e29a07222279dd6431ecb5852a6eb67ba01259210155b6696d027f15d728870aa02d927fcf64e8b7b7fe681fc5e286818b54ea216c9b85846c9548ac77b13e063d20c722481f351318216058d361d405f0ad3c40f7911a19199df44c88383ab8e009b72638cc4f4c078b9a1eedf74892fda303afcedd0353e01d19c8c7b442e5d985f19da673a62191290b408467e8f53329a8aaea4c83e3ef71ae9e45ed08c460374723cb4f63095609fd6db47a15343d8096f4eabbc31ffefff25988d007aa0666244b159e35042dd2b5b1aedc54b90172a02d337beaaa99890135f71bb26827685722b60d4e9b9c6885d3c10cc682e4858c7dd89968b4cf6a6ff7d8c719df4bd897297201272cb7fd87a2f13d69c826e831a625e2b9f4369ef1e34928adb46d11f724d05a76baf235b4cfb4d41ed7943d19ee60f6aaf549e0cb73b6ae03e1205880c584ebd1406a71f6e39f876babee95d3697a6e7704326bfcd0a4dd3a85cb2df335d66a9d6ae44925c72b0f49ca2ffd96fd3d9334d907b69b4d7970a2aead8a03ac11897d9f7ccdea94fc5a9c961351bf45a1c5f4076e97248bd3320b9997a7a3202754fc52df31ae2ba6bd2d5456939fc14c0c08ed2f8d77b0475d20a95be9c72d0afb2a5bd998e43339c09fc3bbb4b4b5318d09dac81adf8f48e47aef8b85f617676a08ee56ee4a27527131355a1c590a8841ed49ba60363cfddab9466770e2160f781c6788ceafad43bc988613508850486e76741f2367545af399205eece7261955e5353fd539abe155a9d111e3642d0b0ee076aaa7daa7a94bb4bb26ec14e4329b6fd03ec53e08a775f4d776abcd9253b100cf584d337ffc802fac12d1e72c387e507015eae206947e431ad536fca363df410904d2311a7333c6fadd1ee72aa47f46211ff32378fecd205199546f99b49e048cd9931c4cd6114f37771c80983783884407bdc8bdc91c6340f2c28f2729249525b649ec3cc1d49e42a3102102d30a7d5b9be0599b0d66bdbdc6b546eb5d7fa9ed56fe187952664647d04863568cabcc796d8e9642652298dd0b22ea7fa0264f96bec4a68de28c86b76a7e472ceef0ab3ff2949672377820f0412e08d98f8f45db3176fd3f19cd00d78fb6542a21ae6427bf51f3b2b656e719a0c31d39c0d4553581f2632c5d40336e3e37672e7a76c39aff2c6f879651dd419562ebbaf0a84e9bf7cbb95bb9ec4d45ca4f66644bd4a11965c3d674ffd1706a9a14b9c4e27ba4f9266edf39aef81fda759f9725da404b76fe6e3d51ea09623acb48cfef00e7c0ccf3117073aaee3aa2edf2272c4f75c606f4ebaa002c2ca7ada1450af7707416d2f30279b1f0672f3b1fa324068df1dd434cbe9c5d29665ae790a0824ae0b385d15741e6587aced07d2c37b72af8d8270e214791aa2c866223d1be62507fbda7e3a78f3878fbce378c68e5a72980571fbf4be6a2a895819e6256981a97fff243399afa73d1190886e72f08910d622e8b231feacc9eee12a7e30fa0117cbcf3e5922520371a9f348d67018d372b12eafde0b8a9e43cb41cfe6b92a70b56264b144ae3685cda90851409365ba4493355cc9d709e4a60978c8fdafe31e67d65bba9228c9e1a9598c995ec04cdf722e00d2c6af0f550134fb843d7086cf759f39b0957d3573807c55addaf9f77262eab185323c2299cb5a645511717caa1323e8058a53756ed38b443c4e1d02067228efc1f54210fc7d1e5f5c3b46ac224acc3ea3a3a9c9eae395e2a5ef7b275172c232ed33ce395745b89b5732e8e2412912276af51e7a1bdb14f60d2d20e1167292cbd51236d8455e2d3a3af09a06108b01d951916c8c2ab3f3cbec5995cfb272fa1ab13597fe475d9c63eb851c43a57bf3a00c17dccdb7775cb45224bf83ce1902335c4db424cf091944d77e432a8979f727bddb80b043ce34e2149b9d88c4317f78a630496ea438d3c9c202d86ec09a4325d19beca14dc47d663a707ff0b531518be9d78b3ca672b9eb877dd230c72d7f682135ee27bb2f1d4dd40343c1f06e6a16962abec6ec056fcd382a59a0ae63ba70c5d24b4c0ea80287df0f3d6005728e64dc49fcbb0d1f2f5d72e73367b80940654088f742d355a4ab8296f2afb43e40f473f851098e7159f2dd8bc84ddb01019a3e7d5e0c06020aad2266b0808f4c4d113a3e2601474635f10b620166ffbce8dae98639871f05cb0ce167b256e27225fee4b4648e08b80652d2551574b4b31fee70be3a28d2107593a3d976694a22d45e3a2700c14f791ae02926ca38487326742948651d78a1b6833d10b75faf72f083c6b6a4c73a222d36819e3bc7f3a3b87c11c1a4d257f343a2f7dae923be0bfd960d790e4fc06cce63839948ebf3392b20ea8e9619581a89fc190b4baf8d46137eed677d675826d5efa5d42a831bffa8707d16c1ecb24a984d4d96b729c572059c4237b2253586ba04888ef0d159530335e6b57b279c01cb9135741ce59a53ff3bdd9f1a93924df7f471293d28ec0d8f53c1c2c5fbbd2dd991961b4bdaf172bb2086e19c0cf3fb206e57e7aab1d4f5f01b21549019ea90796f2be2aef6d442bc407a72090df2797eb540799c018991596541c39179a9b0161e21b73363761854951097f1e1ca1c26ec9c6c3c0832fd0d2fce1dd9ac1b447ed8b1eda972a3117d358ff0d18abc76b1a54e27dc7c48258f620b1bb9394525a48e5376dfd9ce72490c8068abf79afa5df89afa66049b9643318337d967484f1389f2f683d0d6723e143e7a12b9aa08fa59cabb2b84ec29905f63bdd6ef97309a81b775f8ac2a720877dec6febbbcfece3ee5c2e6fbda53a3af96015c9f13dd3ae3cd46418157720b73828850514de17e4d99631a96cd6a6a0b273cef07c565b4554d17dd298972e207c90e92aed1a33e5fd44c19def847ffd2ef57165a6f457e8730c0b0720511fc83323e7e075e13eec250d901ebb06c059c383db365811c09f3fd0f48cee30240369db5a5948833a0ee0b14f303b74518e08431e2c5612a198644e4126f4d72b47e30d9ebfd7f284a46da6a3cd0b1e851a66d7ac56a4cd6d9244ea788a891724bd5e8f8ede0b9e9abd58af2e140cb6a200febd4b8aed7f84f17c3ad0eeaf6723eb47dbe98efcfbce01f06bc76983367cd83c9e4294e114ce5074514ddc45972e7cc7768d8f57a1b54ed3fa7f227d64af50204ad75fc637d74344c7bdbf3417206612762c3489216dabd4ca2174333b636b5fc4ed28f9bd4f190656cffb27272b3c1ee5c86698bd5d14f2aba746e52b926ee86791cfefcae1c794b5113c624648d66c5c3eec1850cce3314d46a0a79be500db437d86dbe2e8937f38c23c35c721b5b409c1588dbc738364d8d1ed417119468d5a1bb194ee6eda2caf5517a6d7206528c0d79268b921678b4b2cbef30f615871c1e381c52e476afbac930180b72dfcfc3db5b2765a0044d47da3c914237ec2d97d3b0bbc24e032788896e09763e029a21f65e5a0d9b15f60864137066fbb7e3370e0bb06c181cb62b1b37350a7207f5a898f0fcec0115d9b83cff6468e615e84e076360673051d690d6918baf72683e2c1882f76715426ac65c052f746c41d14acfc0eb31a1e01052a6e076d372fc8ed290bc3e44525fdac372bab12abef8f5dd7d2a542499cc23585a9902e572af2117dbd1235fdb1715c27f664b57d7b2c41f7850d6fdcb72d91e87e9dfd1724361e32d4edfd8502d1f1711c5e36a8b55364028a1ce797cb532614380596a7237b9a6cf01e31be158a9c6972185236903891fa515c21a88275c3cb5e05ec63c2d30c8fb9d0e9a6604440f5554024a0ad37325cc55ef782856983101fe3cca19b11f8639e4ef1193ffe8ab20fae8167da61c47040a116f081471dc63124e2e7221c95dcfdb9d8ddcc52d96033bc6075d1b6e8f3ebb7353d3b0ed59140b611d721739391715cb6bd0aa0813ea70d2deb9b7330ca77c47c5f115dc8c561761d9724c17af3308c1533d2f6400646b6488cde0330c4248a97229d6a9a202f445c83ea90b2f1858d9a1d3fd7d9e12cd53ecb685b5423474d46870acfd772b0a4fcd725b711c64b2ca2c4b6deb7c78808a79c22676749b214c068291cc4904f3a61c72c540c361d7d732332bb53ede719f07ba3b47aa6b9e79a629d8503d01a3a88372029643cc212752be7cb90fbab2eaa422e1ddafd93c1c4d85b7be17614d167e72aa00ffc254bb6238d712126114e8cbd5c83507c8d9b7b5f1cf924301b7beab7251c8ce8870c476c0b7a2f270308eb87c4472795be529da61edf9a2e07365a8729721f05046e841727465b717bfd51cd036222b97cff8a7d7e3dba6523fd50e53f04ce7ced37668e12eb3b21f4f38f373c1d1fecc2e6df36f1b53e6c0dceeab723b993c2bfd6e0355836f215703556edf9aa9314a87d397d893ade18d33738e72e2fdbd48b6055d310edfc51ba47a4e55c0e8acec04163a73522902de373daa72c8ee03200ec2afef92d45ee16a8ce44108481f4a0ad91349df4b7ba71350ee72ed92c505f493962e9999751df24bd1fcbf4768d1f35e075061dfce91e2bcd072be45f8a97e53adfb19d15f595be2acafc28424fb8e2121cde6a1bf145809607239b507a69ef295c2d55124e992bc23dc4f0f19cee1c69e19b43ed4f83e6575728dbb535c7521369cc3a3f6a53224907d36a2ed553c1912c44ed9c34a727fee72c23f977208008409f9fa158b21ca870a341e9c5dfcedb0c432a51e79c55df072ff6acc0da7e580bfb4d715479348e52016386203e54f891b2e71abeb160c505589a93bf6df21b847475c89ee8bbe38f290666e032eae2baad646b706b580c20896f7c31e24f3fb0f0b81086a872aaccf1f26925af9dc212c7a10dc99f6478572c4c304ab99f4461c6b119cc42746351ad6c19c21ebe719446073d33613ad0d72d8a5ace4644d9d3b071f1986d3ab84c917fbbbdc809aff3c0c577ba09b6c88728842198168cb7a2c2d275f61693e249230dde2d13199132995bb45db2fd3021b7e2cb6bff817681b4a474e02528f74c5e8fe850a91df113c140e8957cf42c3512e2dc16023e2f3e9b9f8295cb8ebd86e75bbbcd1332b65a5d85cb7aa4f1f70604e32fae669f6c1e182acbdbec9c636b9d8e1fcdbc69e56ad14fb680483227f72ac2c065c01ecadf1dffd2209c9f2f4ca657b595d0f6c51678efe7469a6b35a72303d85cc8510417a97395cfb453edc965b13d21f18724fa220d18f33f7549172e4ef2d3ef6618ef0c0c7f9cb9cde877606870ce0daa1bde9c66cb2f26154bb17d230bde7b19c8a89b7cb2e7b1c9b5f9a86d66c2035c8d6f6294ab13e1c22d76b602a69bcdc8d268cb40ffd57d2d888ea427d75cee97dfb867e32b1ed47989c0068bf82cf116204f1ac9f8c73bffe36208100bb65aa1f89050d4abcecfb6c3c7283ab178f2c25513b5e008c3ba67ccab6802f8d13dfb2a04733ce9e2980b8983a9ef99165563af696fd37fea1fe6a30af5da82b8c34cbb9673c4fa3287fc55f5e0140e7d46c428fef3664a9e83667281c249d849f4640685558c827a1881a3f13d3fbae79fbc1d7960ee67aa3d66fc00eb8bb6375db2668c9248c1397c7603b72206414c0a3cb47040d002ed52592cafd5f581b21322a379d224c67e9b4a0b43e0542b652e637aaeed59b2688d3e18a0c5dc10a3099ae11b5cd33099a17c055365fd3dfc1b59563a93ba588b67e46f48bdfb9a789c320dff51ef9514b5a6d404252848ed881e65e609a9a962517eb7a1c4549f3984b002dbadb27bf2164dab1401e7630d4fed45ed5a0a7e0ed24214fb1d00dc8350cb0c771c6c3bf5e92924372a9cb956a0db2e82c226f1ec1eb56433222fdc7860ca6c12c9666d9b2abb4837222c36132ab6c6a8927b8b1e8caf3696ad84d327f00b61cb2ce8d9f535d06061e10fefee216b7cfd9504eddc157c4b4a1c310ec8fd850aff457aab2fe9bddca72dd565fcc7561cd37492c14a0010910f4a2ddeacdd2c5e3843f9ccc28e668c372a45e5c9c835bbb8f790fa713fb2849601499848da69a3a9a49126b15ef509f7276f7bde4d1b272853369ae0306518e79e1358bc3b59a3d239d81024ce6efc72fc1b542a89a5e8e7e262b83825b560c0fcf743e0d97cc3d829fbcf0b860f84e6c48122f8c00a8d9d027d4c12e6d145939287b7b7a52e9245428b1011dab91d27205748c99c9cd254179904e7fc17278e8e7c52ed959281870153df23501c05742ad5ebd952ede4525867ddfc7e4dec008c68a6818a7a8a5a7acb9a3ff7e28d10d75cebdcccb7a6d9842920fc4640c0ac1b8edebc61ce11ca2b6d830056b870608bbb4eb8516be1f55f51ed7a49e50f2ec62810c47b68c9a1a1146b83542244e72abc2ce52cad25b87081856572caeb1f3618b1460d097096ff34d5837d7050172c790ebb4a5346bea0358b1bb2bac7a8c4bb30c4906e3cc380cd4e2997cdbdb72a200f1535766cf483dc26956ecd6bb7f24aaaea8ef62c1dd604fa3be500ce5531e1aa397436034aebf760a9a2b920b47c16e937184f6dc31b7c481257457ce72af9efbbf6767759e83ac7fa4bc59772a3032bf604844f6fa8b08ef800d41d1721ae747ce4e09bfc5b3753f845a20a1a4c2fbcd57a253195ff1c16a405a64f54a3ec97e2e2ccf8d37e14c6d64f2d38dd0626844667fef28ad0a67271217b7855a341df8cc24bad852445e65fd85c82c986c8185661b140e5d15125dd18963794ff36092f525e1016d7a38e76aabb1afeeb754d7001c0b92a1ec94a1d8adc35c728a83784118090b5a0aeae15304e38ef8c1ee7d022583def2bd288480eb0e0a0ce89b55bb272f3bbccb68aa3edc9779171fec6401c7eacd9972639ad6358034726277bc719488b3dc7a1d240a74d85dec5baa5f0f9a503a2cd992f23e85880b699b8c36c43a1df76a3952f7fbd48c8687eb956fe06ec271ba095f55d1e0d49472b83ce5baaac55eabbfcbc4d8a7204a598c5100ee2a9079dae7c3f221b6f1c66fec26bd48ce2c63cbbbf6e541dfaaa70ffeecc0aea475e5f75d33e6564502ba722a34a3ceafb2836e8fee7182e431573f533ab027740363c4282073957084af51309caaae9fdea6f622131849b945898314d5cb23f8da5c5b19a06743ce018239f0fa55c9aeb9303e3e502bf6545e6b39811d943fd150c99d8574103657e9fb6e579430723084ff4df8acd03c019985c69f36a83e6dd63457a80de4f3b7e30772610d8b429d549ea0c4af0888408426c3d7be883f282502a002d563a8cc8f3f6e0f378f5481c176c1fe8b44c4e0224b8377388b981b1cc5459e9df392be68aa725ed56c9f414f0980be198ae73bd84243558304499fd1702eaafca56b352ca52daa9c6541c01bfeee2b2f5b75bbc40255315e5bef73f1e268c1a65d29d3f5a43f5471e7f83284ad699823609f82d9b3ae538e5522653391105ca415fa90c92c584e4680111b64da283a064a2ca8c1a5f889163132d4beb19680d22d66cb1f2e727377a4059a9b66de2776b69ecaecd8dbeaa9c4f2e7c94511ddde1f9ce399015fb7a3cfdf4cbf6ef2aaddaa79851e810069c6647be2dc71b39cb19f5bcaccc55c65c020adb35366c199985a594f7a9b4dacce8cf248971ae862fc4ef00807682e14ab564d9e0fae043e8f9550ef1cad7d80f966744fda02cb352556a83806060af57c610f5afd84ee0be05e7c7df920c2c7b0c4f7520627107d502c601922bd3b21188c72d0313aa540ea83610265fabdf9616fc20b3a9eea0bc738c6d5aaf427273c92a2c553490f12fe7051951d0b84dee99b49183bcbe68cf9f60b04dc79728500457816eb70ac18c8fe7d8deaa2a66a9f42650a8ce22c39e82ea62f524535990dba8c53df8efb59ff1f17d36e9ee868f014e2eb325ade6a03a721791990724c1c333de48f69a5eac9b439d7a197c070fcbcf729e3412430477f77d38d1b720802c45dcc24b879e3c970ced3e7001f748e3d41f257137050245737f025be5c7d991220ffe045ba29cc1fd800657774f3dec7a64a5456c9b3116a7e4a97e272e1ce3ce520098d1a27aa87fad9890b64f10beb9753ae8ea0bbb885526e0d4672cda8b2b63b48d4a7bc710236f217e3294c27ff65bfc50fbcb23452930fc7026a0aa34f19ac4151c1fb381bcd5187be8952543a6cf4b90fa111c28ed8007e627223b16b8943948d3332bbfc9c5ad1e6d7430d0185338197cbd0f8a492ae1778726eb7ae7034af7f1f99a45746f3a5033f4ae1f852e057098a721224304c4c5922730fb2ff834814aef46bceabf72e359dba402b6252095f488dbb8c879cc7f972e087c6be2cfb21c9b46c290a8e1542d3af6517302bedb322ffdcd44c6d79f2727d9f98a191ed386aab8e1376a36b80a8e12841b746bdc98c1e1fe0b0e63b091715212154308590ef6f3250cc384657d229de1788b633279e2458800d511fea7269b330b15d69dea4eb17512b25218ec149068f7bb97e409c19fa1cc7cc8c4c72c68f1342700aa0b273cedea7028002277ec9a5e6987667cd2ea4abffa1c1ba6a82f31fb1eeefa66e3d5c995e1be46d276ac1a79aa7d7695b0f0a6d6079264872803dcbf2f210a7f1d8af90f7c4da0b1d40608d80b2eb2a2cf816fe48a9af1f72f09b5031386b9460a9d8c47372f039585cf7f0cb1729b06ab8b136d1d62b081e3b11cec4bc1efe924617eb4471ada1334e6b64c554a589a05d3ad6116cffcc34e329856153759ddb7f51365e34123f93e34672c57873fa5890079e05f8964250a10908a44eaa71cf189b519e0a2b66b820e414a5220e4105e99880e0de4dfe72e0f66e0957db4815423dda6e373259587ab6eb4577c8f2f5b331cbad783b8868dff1d6d691dcf7b198c7e0d9655d7370b0cbc242e7c7cbe199bf903d4979082d3320305a11effca90a05638e40e2e841a12140b38b38d091ac2b2663581b0b3a97d9cf5a4a8ca022314f171da5c6bc894a5f0781a3f1e11a9f8daeb43d47d572ce47795abdc37aee3d4c7933ed953f55c7ca5f642f29e6ccf3f728cf5796e47206f12a9feef033e9c35282d03349398c776f07b6f2f04f47de795a8ccb3f0b24e5a3885e4352487d70a18e8bdb35db935b8974e826735ed16463888baf1d506659d37e3a260738311259af6851efc2dc09c1c4eedb8e67a57b5281ca2a7c1072290b34b330b68f22bd2bdd1ae800405d8ee16a663a7ca26ef1f8749c01517672d5ca8883f9a849b452e00b37a33f94aeb5f861c6dc50f36c1bbb8cb26c2f967262cf421397f4aa8cc96fc1e8a1d0543dd112e1a8cec6f84645ba0b8ea6d9bc72317e41dc273fc82124597ba8f976a5241097a060c8085e5041bbfa04a00c6b646a0c3b3fc5dd956eb4be2a307432b204d7730cfc2fa54c8eb52f90b28805d71b359e06517676ef4222db69a82c84c20d72845e45635d276fd8c7db5d50ec00726b8eaa44c75516b175d39c4ae72f5a43b9ba28434348c59ffbccc9b4486096062e1305d468169636ec8911ab000d0efdc2a48b87323d9756cf9bb3290e6cd91be679be6e662481b33e7dd25a4acc99787efce63d3b80cfc0432d37c0a302f037c8b18a5bffc2ec9fa08c966e619dc3a91aef0a6b26d7c13adbcb6d230def70727934d6051c471ab03a2cc085939ffe0cbcd8f839dd619bd904700ab9f9391f729c2aeb32f5793cd4151bed26a726bed6188f32cceb3197df08e3b8c26c6b26722863b04c58bea52f33bb87ae057267b0da76549af7af1630226053dee65b784294c11931943187f14125888c4d52359b33256088893a4c78f2aa541a927dfb72f5cc77302ec0ef8bd76a6933bb0745f72150e61fb8c7cea27836419a1afa8b7220f6870b16cb0b2dbfbd2bc5a94d544039d4b173a8b8f8b728a26fd76f9c53729ac1a9422a4c6224d9de1189a7841c5c65f981b47a6fe458695b61f785ef0b728a9a6e3bec83db690a64b23415781e33b14aac945a54e0f88a48f2b49fc8ba721a8f73f217085f165d5d41637381ae80a6bb21f3c82a3f6c96697fe03da34f599408960c83c69938f1a1cff91d67c06dbfd63616983586b8ea734339d4dfa8720ed81d1a71902c50c10abfb64afadf0473bfb07e02b864d7012d9cbabde621464835bbe11328957fcd144b2c783cc2585dec7fe06ed0db88b2a0ef7645b1db5a33b218c897e157a68270f1439a14a47ff49dd4d421852e3197a654f6604fac72ab2c94862149a94976d99973daaa7533f70fdb1edd0812d7fd2dd96812336172ee1b2225517a1bbdbd60947e586d932e1a17a626b2e96af6bbf9cd742b66b3150234804f7674060369ebba46415de5582d00b2ac9dfebae67d9b363c3f8ff672f970a65d59213c8f4be9ef794d2318d9b721f8b7887f82918db3dd1f339aa55400672effa3a747dfa4f11ebbe23c709f0d5b9a8a67eb4908c30f766e5f032272ab5adb0afe4647927db8d0dbe319b91ecfc5f171207c2e0cbd95a46eec03b40bd6df31abc3d831c39c7785d8ec35c5ae09b3beef1ab13175feb86945e7830e72d0be10b0a0bbf983e5194c60c513d0fcbbc653760db6e6cee3a21eec3bc45250a997607ed2c0bc9ef20c915c5896a0c9e6aaca73bba96d80532119176decc9722ab557a11c6fb54ac32e933e8f268897d5e56af286a62e17e8cb04db6e1a7c3ebb3af0606a636f2a59d2d04579940961ced871d8dfa3b41247997b56878c201b3dac5492d5e505bc4350cca136542bc5a1474fed227e109207513706dabf5d5b3ac7bfb3cafb94f18755487e968f36c6cdd0590238088313859e1f535530762fa8b9906b5fa7bb4be71f24165faf0af863924281139a4b8d798bb558d8d8823b2db25190ad18d7e507449f1ad25a056f23065891f2af885c5b16802287048b270b3070d73583975d5db11c93fa2dca93f5507e1f8c07a083f02558d8430373724706a92e1fb648cb3960d337dda77337d382cd4f338df535f22479fbb4838672d6caa81ee921fdad59ef75eb48b4d03e278ecc2639a0dbbc44e886f5ac93ed72dc2e5a0446d7de370c19f37f5c7070d3ae49a408adc1df2b9f09d4a0a41a9472edd8ae938f6ffbc5f3eb30d69d565848be523201a7ee43b4ee4356ef35f74f72646f195e22e7875b20045e80925b02c7318f340b0d0cc137816052961fb65c547c4721935644ee13477b8dde987f0fc9c5129d5d5b1e9103eeb01da89cb66572d3d9b7d12f0b3e9a77d3bb5eaf01d64dc20ac5ca7859715e714a7bcb9ccd31723c6fadf4d358146244d52e3bcda665dccccf6df0773dbca1a96e8690472a38727a7b37a8bc7244e5658de076b442cdb29b5377ce591b1020eef95523206fe6048d6841ec968d0b42dede18bcf4fcecead470822297ad808c676ce2fab91e5e72bc819468c1c7131440235727a2ed421f9d3b20275c1c8928a2b1b3a0df77c41fc197cb88d307c1da4eb1e6c62065172b0d7da0eadaca13306dfb23d584a70272864a7f4a6e431defc2ea0b30c1d4216b58fd33427d2a0b296c26c6648cd7cd1162e644e03ebef0cf362ec98b1e88e191632c87f33cdb2eba1e66184243386a38685cc992bfe88a9af6a554c73e289c0a8178c7572c67f2633d511ae58baca117d8ffc00f90ad37981f97c654bd9e021c6b3a910ecec1e6ce5106a7b3b33d0a7276f20edbee8ec92804ee80120e622176d4581f887dc36de2fd110c29f7cca926c2dd016f22c8cbdc2cec026ca8a5942638f171fef1d44e5bb34293e0648dc63b3ac621bf10972118ac38388c14e2abf2fa479e6df6010f4e2df4795e79795c53295cffcb638804b352b33df132ac3645f930fa61a7a9757ae7d93b9222d26772e1709a94a578789fd99ffa8379d38d0b747bef0f8eee252628b8adaff0869b33464123ab758ab3a3f61a39aedcc3ea0307d18fc80c17a36cbe0eba80671629720274a83c675a105227b644ea340401431ea911342e90d878137ff03414bf3072822d9dfb5558cc76ca8d676d444679205ea12aabb89922bb983acd8001ed7272669fe7a6980759087de80730bdf001c156c4428eaaa51e009b8cfa30778e5112e349cbfdadccc360e2a65b2121c30a16ca5cec2500adcb98f8a2fc74ebf7461720f5dd5532f2fe64243cf751fc0ebd84207cb69ac300d788b04998bce5c4d1720399a73b2452a244a476be97a55718136735f484ef1895177b4546c67965687227c30b3c45253a4ae6e1fb3186d442859541a0e2db8a836b088e14fca0b6d47227630ac21f24dedc37d62a9e4848e4a2d8275e6b58726f8d2a50da07d0e280725cba412471e407a60d77c622043416a2a8fa2701a687d7b319ef249f1ed035729a34a12f461c4ae1c68345547def7fb0db65406e74d01b3f5ff43291ce88717297cbbee9e20e17332956ad19ee8d55ab7efa7827b1134bafcb58079ac9d23d36dd3cb8bfccde680f2676eba916d437aba323c939a58a6116a39f10b5105dd86048ec006bca0e5f157d5ab38f189510dd6cd5fa0227690132ef4aa240db014c625b6ef4ca31c24393e452a84fd3975c36b07671597f227aeed271563e90c45c7266fff8e5ea60a2a878c9a53f9ede8b0858ec4af0880931bb3f553a518f38b17219628eedc5aca3ca2211ddcbe1272c80a030837d64770b4463596a5dd40874721fb8f0af8f77556a43ed973c58e5cc6a66a347132b554c0cf710d7cee862f8728111c9080a2fedf003b6fdaa610e6550ac141e74f549dda188a3877f2b834513bafde168d59149d0adea36538db35b27cad23a747b0023c7b159d9fc2265b136aeb9c2f12a82b2f7e1f7e826b1845b8d38727b6cf544e2df9939a2045ebc55725237f7d32226211782d328081283c898893f4ab519e128e5a51247a2562b191de4054b8915b87c488b03d9ba28d526beaa153241e859bb013bf1153dcdb6326c98291d128e2c8cc454ee42462650770c4fed8e960d5ef5c1f329a54609e1266ff4d8b342491169f75cab353f99adc3475a90b1d57ac4926beee5bde3096dc0723b893d64935529444ce13b96a41b1c727ea0069a7171c51b2c99d72395629372d61041f4c25bcbfc99657e16897ef3dee585275cb1972e43e761cb1107b3fb30483b77551211b39b9f9a5f9c7d5c1167c4601a56e49177f322df8a8b731b75729ec326e8c6be8f220e8395b0bc06a1c89c50d821f939707f8d0b1831fc046b723db19abd935e1c46587c8aa8ec5a25a65bc46a34be9dc9f6eee68fc875930952bc14e5619aa9ce9ccaa7cb134af0861c22fd6df5be81bdcb3f9776eac1a33672b087643bc6f1766b00e066ff4665e33613159571d07b5d8c9595afdc9bdf30728201c66ad25514fc14f32d3edda5330da3e5cda0cb9170e0521eab2afbb91372db56302034678372bf296a9235debab9d55d81bd3681829faeebb5c4344d0e72116b7964731174423b6ff3cd62cc8c4df7a5904b7628291b9e2ff24ea044447216178530acc6fda234474303a970f6b0a9093af308d22692a7c89e6dfc7f1f0d01afe5748c38a79863a4a4815d3f0ced3852fe8e8d15bce374f5ee4aded8b60382f7d5ef7447439c26cac1dbd5799c5da7a2099908ed63f8795721be37bbe2720363d9a3bfd9923d62b8816cbaa0a576ddc850e9eee00371b6d167097bbbaf7244f0b0bdc42b7de08de8f4f72abeda4ab6c5d82f0b3cd9b834b603003efead45096f0bac0546988e3a3c3a44e8499027c697a38814ceffea6c9bef82fa07d372f4521eaa8ae9e28cbdc2b92af5195dc449fadfb9e1864d07f9b001b0cf2b1172f92cf6693692f048a14a276ca9b2783327f426ed86dc7d9dfc3318d60b5fc14daceebba7938e60c1b09f3b578acf318736c79d5ce6ba8d4291e8fb7fc5ffb472052441219bd351049c685a664fb305f80bf77e2a29ef96180ed63e6877b46372cf0dfd6641b786ddb5423315f98823b5df815d2fe670890cbbd0aa2b77dc1272a22cc39ab9c2cf557b9b983f13c9e9466688361b88aa9362d59779d4d0630f727c4be07c879c0f4c3fa127de0fd5c028095563f0db748c5f0f3a5c02f8cf4a22e5b643015f3a5b250f1de8f80eb3a9fb80983d5665ee4c84b5f384d31e0f1a1294fe8e4886d1cee8219c89661877c1a95b3b06226cebbd50c66beb8939e0ed723780283e317e93696aeec52e89cd2053666ea3334bcda0b2791228995bb75b725cb5da4c9bacdb836293a491a114cb6b4e1df2816dbe2682d17728a6254f3d253d5836a95417fc82b6ca00d99c08ccdb75d0c516d9eb0b5dbded166eb407fe727ff0ade8ba0bbc3f1d1b72680b9213c3a16351968241d43820574e12f8b14972f32e54f0b7a36335972c6e82df67727ad40aa8fa7b9b61a596ba036584741e721cb0008f5b1646fccb7b10c0c767fc5f63a6142ac0ccdc0af75adaae04cec97252899a05bab8bfa6228e839cfdeafbe1e92f8a16afc6b9e8b9f772abe472363434fbc5a3dcf1a55d12a55dd2f9e51f44e93fbc1dac993bb1f327001e13c4e405149115df83d9534afa448fbebfff0e6b823eb0ce4d27bc167db0b447768f8118be19bf2d0ebeb0bcd110499b73558a1dd4eb026ccf9bdfc8f72bdb2ec6df4b727e5caa7382cb55ea839fa38323177c3abf6bc1432e19c52a8bb1e554ee180e3ab0bbfb1617850906f48dc3e112c4f3702cef57875eee9b4d92962eeb0934f87288cb511e2d60f7fb5b260e9a9f8d74d8034ec58385dd85eaca1dee4f97ecdc4f16a05ed1dc1aaf0a2b9a31fda032fbf93d406b7e7f3805a09cce8f3847c9f7726345cff5118c6ff5380697ef033426ad15eabc87ea6fd5937f9ff9a7626fdc6add5199fe01412e8753612c9ced2417090ae27d0c948c9433fdddfda8808591647ea48cd5bb647dd861939407f383425072a1e84eb7505d6627e599a60d440803342e009a4c277b3da6749cf09767c0dde220c75c4d0a2a8b5df44786e8c6526c0243c34ce6cbde4b4cba3073c37585f7b34b11a6a03aa46165ea3961e889fc72be756148f2f5085cb307b17c7a45f5c447126d8bca006848a55de0f82d2f3372c8ee901b5087026042c94a0ca964f3390dd31e6e9a5df3a8e09cb64c1c2917721cdf8b1bb3a4c063d395b083983a501ff995b8d4c437dbc2a22d1656206be5726aacb91bc730c0f6d2b5655bc8e33cc733de3dc987c8a3594cec347bc1e36a517b3eb22e800fa849951fc9d577407a58ef4ecc3945c622f30cab9a279e0fa12205fa375b52b15ae8115b6c2d63c0815329e1c7631b3696bf68eec9c5a1feb0729d27bb386b38bf7eeb6bf8301fae44a1af0d7f31987ba97618b4c320061b43722f35978c4d8c0f7d13afcaf31a39e2a3b72031770644fa7e67be611ae9e3411a5b146b887b33030b29993ce82340c094a76562c7409bb6e737f6f0cc3c4bd672d4f9a384a0419701e390985bc0f4a924363341f290fedfb2d4a7e384c84f447258fe81d3d13d04480ca149a7d01ce5e8b10cc32834dfeacad0c3273d25a6f0721567b5ebb3b12f30619c4e80285473314a3f22605adc1e4eb0da0f3a6da56d5f42e9c4a47a886f636fc74ff09a049b4e1d273244a9ec3e5723b190ad9f43d82a6164ed612d28875db88e7ea1687cc64176f24a8302d438e2864d3e8d66589e0133bcfedf2fd1ef411516a06b8be7a724af7007f38641d68b852ec20ce2366e0b85a409ada581a962784bc8e205c8140d867a72a71bcf024b9b71f3ea76162b7221f8b9442a1466aac5a216af75fabda936b1f4be0cdcc14e2fe258adc379eb72e2960848c1ff9d457388cd9033d7c5819966c5fdc27a5fb61c6c01c4fbf57d72ec8f32d0128d97f3dc2ceb2ae744f7bb774943f73153014ae9d4ee2217885d7207e9150a6f22536437c52279b564b6ea9b13dd192cfb68a3839620fbf8677a531981b2a8869ea24607f74100242f09d3113712f5a713be85c96373a9be18843116a1dfd7945350568c74a5acbe129a42dc1aed468d708c356c5ffbb7a7f8525378560533e0ba71863841feff5d9787621bf193de2343571047fa6e3315cb5f071dd301b46dd59eb1856f92e20639ea85d7dab5235497beef3cbaa008f6f35e7226594fb4960bbb787319abcf57f3fe0999d9c475763ee977476584a2f9773872244122343e85ead9a862662c9dc16280094b5c65ae7bcfa4c96d8518e6990f22fdafe932e069ad8641c7a13393efe0a9cce1dd8757d9feb0e81ce9496504e5726327e731797158de994e6eabe6d9f78f849db720373b1c6f2472c2ce7af015444cc77fdc4330ab486ff16c319b1faf62419f80a547f4edb2a4ade27e2be8ce6d2bb8fce7d3f36043486c9d43ac52ad87f69d0d821d550494292accfbe252e572232d975aca75d9d4dcdda01660404ce83c734c507c36fe7c0b302563bc838b4a2ba2be0cae4ad5919cc9bc7e0d21ae4093abf3ed102010237d80cf7a9ef1715d160b10ac3e8a72a627ab690904596b3ddd98545f845f5737ee78764135f1431c45cc10c889a6fad3ac0dafab5988648a2c7bf900e0bc90c6a0dd77af4c3fc60d00e4338e3fa815789e4c42df87f7f092d9f22994af225c97a84ad7e6f1620f72e850b8a84501d0816e4b7ea0b24d6f659a49db3aa0dfeccc9c9c5b8e5c116e72790b5b7ff94bb974e8a8f074352e796828ed7dd49c8367a6040e759204e9d672237592be6f6089a65c9cb11ebca632747f72870b1f6fad532b5730a95de81e2f4fa105a5d95798720ec31263b8f4b2b297197bfbcb3864069f05e7a1639f691af3a5c94bfd998f8263f24266b9d86c91466e99a2e19f9ff61c5e1179837ba6728b37c78387617f2f0d5fb1611aa4bad650cbc7415afd25bc9b08fbb676188b72fb36d54bf2df02e4aa389d2bc242dae2fc8c585352971b37a7f6f6987c9aef3717224572f16562bee8ee6c8757d8da8a819c44fc49217a0ce6fe1e5d936061726aa64bb50241b7ac9729d8a05185d6c7541db17973bca681a0c917df6ce01572692366fe875673b03ae54f96d972441dc6bf40206179b9c598973d853ea5f30b4f9b5663e154a6173c83b1125eede4c96da8c3c171d75681ad801ebab2101b72cc6dde5d5cbd66a90a59348e8b1a57c9331e9e93195ca7258f4696bf84b3176b240be92fc8816009f5b3e61c81c0d59191d1416294c054e48185676559aa5272188a2171bd1531b64f1513accc866a5cd770b04e583d04ea96b4bb618651a959396a4f9e48a8023c73fa951c448b76e1100ada3a98d63ce71f9d56d100dfaf7251d789a58abb765dffc629d8f8c252886fba535d813915c726063517d3e87c4979fcba6f2e2a82ec174af2910cba44188bdbf3886c6ccdf87121b376194d8e1ed0ce19397e16efc9772b10dc177a2a6e05bcca2d98eca9842f8f344c218b7428244e8b5dc05d403d58beb937cb71bb0a73edc700391ba91821d59cbf481d09723b3041995b4d3b672ca2b04982fe420c9473c527a08d281436e6b781224642634c1298b6af99a790aada830ed3d2db80cfe318754cc31f1ceda4509e353d6772bcd73ca0083cb90c19052da77a98ee9a0ef980aa38ee33907971e476f6b2d14c624393d6aaab4044f4e0241d5c5aa9428eb7e7ca026db20b399a917eb525541083f9225eb50786433835b668f35a045498f98ba40c48fa8621997a5e07ffbc72f731a70478dd68f72f98b612e2a2942a2f7e27a42a84bd1d680c45b48e4e007283c1909473de6d33b62f861831382c1d59ccbe79e25012165abac273146ed426cba2b879030bbddaec73070d8c0ffed9780564d0ac6cddd5e99af4605517690cd9851eef912c477b8a85509784bd028d73f50612716dc3be5c1c0b03aaaf79726d962107b4e0967c8a5eded4426fa3441bb8ff81276a7d042a99543eb383330fcbccc26adc76ecff8820b70f5ed4c979f1413101e88b53b00269902c89358720fdbd173e4ca088a31f2a51b955e59fc5ceb9fc401260b62261e4bdcb19df3072d5e4ff90e12eddc4e3631d2b57cf5a774c17f5e346ed30b34d258e69642a1b0f3b61693e89dffc2b8584eb3c537ec6e10e376b2c5a8a53ff7ca55717d93d7072707c94b7736f506c69ce99a81f5699596d29aa1b48efc21732fca02b2c1a1f530cac04df11c6f0c25c73d3cb0bd12dc01693bb102ae94ba4ecc87efcdc40a55a0267eee5f00f777f018156b8ebafe499f513f0228d5762529fe3fa17bfb84c0a75de4f9ea352f4d04e3108f0306a193fb9d035f41cffa8acab1a51063bcf457206934e3e038c33c9abef1b3427ad09b09f8b62c7534f61bde789036325071138ac7ae91344e9b7e240946d964a05b7ed88a91e75c25145e868bfd0de72ec8572da5ad15bdac92a45c9a175bbd8e82fccc9be7b3f7ba5d8238ec0fea7493aef7292329cc365b07242e439d63421d4bbde486065a74ea6d3d19471fe61ffb13001468c6a4f0ee74f3eb90ecd18185a0988e059fd6e335c974348ef04a6472a3f4fb4f11d48396d89a275941df0f9ddb2ec9238ba80fea5805ad39cd1e3869a144aeffdb8b7f30791c568f106a997f8b7286419f5097b6deaf0880a1ff5194b6a71687c35a0f07744c321fb8cef6be00c54ad38a71ec447e6dc14c02d671b69f21c2d4382ed85a23fdaeff835a46d5d4e5f67300b1adf33753683546ae7e860655d677326ea89a184e4f2429ec38890ac6d2696406261d6d3268e0f61134a03476d5a183cad0b8b73d8575225b7237ce0d039e288fbc75edbc91f2716dd3d04f072e14cfe4cb7915622a3ac624aff1ddc6fac0446865bb3e27cab38de0ac359bf72d28daf66b62e53fc5be0f01911f46469ac1907d5a45894057c0ae5d95f8813722a3203595f0c2c350dcbdc3986b24df55939f7758a9edec0d785d6edbe896e22d451139d0e0e3156e1c2f6ba925bbb8dca98c344dbf93f6de93c5f085a1c2672a87925e16c3076647303ffa1b1b585684a3320f49587c148fbc75d6e0095a47226ce306b6f52f8b3f490cc2cf79d07bba7eaadea4850a1341035e48e14dc74694817f424cc1c67dc862299bdddf01433d5f6b1ad80998f13c46adb93405f3b72fa1c3a8b80147450b108b1be2d94ca25686bbea7bb5997cde091af117ed2e8124b60fd4bf5ce0064ed6db7cb1211a185e0efa7ca4b2029279d68a1fd77884a434a8f21e1078c25d0cda535bf77c3ed7fe8ee84a7a452c9f3b3f22582b46d59720935ba7188be8180304b8ef6459184989f1ac5774b6c4ab29c4da2bb038582275f91c5aada26a3171141a11b3ae5fa71a08c26fd031bb48dfc1c359f72aee765949301d1fa1160731663a77d8c28b081149cf57f9bd1c12db98a8619351966728bb7223f4febb272829e9ce8f87df15b844f4706dc15915322d39ddc2fd8a572b6edee5765cc9a67c3c0bc056a3e29715409187266f4ecb3429baa7fd5330f729c194b447ae45397790ad5d5f6575b2da1132572d1dee9bfecc8d7fc413277721ca63b5784bfe7344dccd4a837fd44c85463d0b3a877570ad27ece6641d21f72bb9df7e2c6eb072fcf7724d00c3821f0e3cc7ac03bf7e043f18a64380fe1a972001b3ef171abd80f6342f328e62018601eb17f8a067b1ea7736fc7548e15b6722a02a3d2cda8912defa108cb9c89b6763397a2ba082d0b99d0e69ca9c3e3de0c3dfc4262b7c1e3de79e10f643b1b17cd3c5f055ab39107bb84b3f296a842306965b1d1c099f2ea0a2993cc9669638034612746cfa861db684dd81f294cf8865124c6d6a1d7f86d874d5ba1060daa0270ed0fa7e3f56a4de6ee6852437d570372060fd149184b829187904950874d531a731d9c40e36c56b3b86ed90b4e578614b919be3bc943a6b8fa819ce74530327197e9e322cd6d57cf500582b63d4ec4494fb521e15bc9f721f78ef471e30f408118b771e8fa72b357f7c3c915ba5d17729d994b981645e8e432c1c7fe918f7bdc54156a77d82ea8ae35b9f764cc823b72b239d7664b4221525ac29ca4adf2029c99f405482c39028aea4afa9353be28722b61e519fcd5ac8f4ac8aea57f9af3747aac7ba344938bbc3cc24a29e0619d7224aa6fd65c62329036f266650207df325ba49f54981b8bfdb7a39d124cc2d972686f3e70bf2b380c84367638107ee69f9b5021f99c3dc0d85272066ef816ea72c26fdf4cf711af4c2f7262acc955090f191f8a14eeaa8f8ae0bddec4c85cfd725cceeb59092dc3410c2e4be39a7d61f5a90d2caf8bebd39bc69469f83766a06982ab6ba899ebd3369881dba6160aa438eb58f2f82aec8ddaecc386b44fea0e728ed59be4754e083a40bbc8d9cfce7c6a8788409c31c81e10d3de5accc7fa0272bd96e1f93850ed113bd1603d23fc67c95d5925d2e7a1b9517502f792c6609672aa6389fbf3abbca1b1919667f36f4491ab06251c343e4d993910dca086f67e72b45e922b48b84163b5445742b2770a4e5afe77a1b1deec8dfc02f27684af4b1b10d69c0fe2090983adf57a4302dee47818b6d5f0532e12f0fee95d1e802cc572b72205260a578d546362a853c8e088c60528d998b2d0f1559039353f4c6976725b0179f1784b9f13edf0cfdfab1365ef466449ae080b8998a10c22b157ddf772c7689100d21839c2745279f1bdf4545f8c6525a4c0a6925cbf6030885d877472bb605180cfae8669b9d636cd981a95dc8e50cb24df63bdcf36c7bbdcadd2c072511c65a117517f634629bb7c3d1d4e9dc8a74a5e54b2800dffc40e3ea3cf957267e24c0f2a539959e734b4fc3f5e70da57ad03d74b26202c05aba55b69c2960553e2431b4be568382eaefb2142340806352206eb200adeca512bba05273c1772406db48f135f419f01fe901a3c54be0fbcffaf46ff9fce1b88bc95da9aec487208b3cc1dc334328ba47caed31eec448b7563cf4caffd36cd27694818b87f32369c299541f6fa212140497ff62f44a4f0e686804061a8147c53b8d170330e2a7243c30aeb1de3848e310e19f4bde5890ea59de47fbffd0fa8cb917eb6bb0a59080a40229c16d176a159b1a38f5ffc97be9917a074489f7fe60a674821fbbff14b0f573dba5ad8b38f92789fcb4d31ae973a050fca0a491e48b44f6978b7066e0f178b395f78fcd622b38ea48968b1552350e5276ea7e97d2036ffe2c4d349672202582e05ec96d90a1bb253132424c51bb4eaa2219ac40bb82763193b50fa4b72e1a3f6a8aabe005d71eb4ea0655590ca5d54e5f3f9844fd8bb30c1a8f9ef41720f0ef4724181d4553cdbd48c564dacaf126266dec785fb1ca744bf7976636b72c35e46f71bb1ba909a7da44efafa2ce934c6b972ef1242b0a8cbe2f6c7cc8b075abc22848660b24da874a2e85c60793dd30ddf0da2b1d78fc9ecfd962c8b1c72632e49d49b0a78348ac0f8c5d5f6ffa8c1ec70d8b13a9ad0b3ee7abc522482612a321b9ed9027e71787795280604079919a4727bfb4d78778d14c3f0d4fbfd72d4e72552b89e97aedeab468a63bf91c9f38dfd025d921e627e00d64ea600c21ea32b0eeff6f55128afbc772bee8be9ebb6527e547548d76ebf818b7bac81a3556c546175c4fda21ab752ee0a14c3a8900eeee1d959657eaee213d0ca379594726c6b0ade3e050f8286e5a42f7e8cf869c2993ceac1ff920dfc2abba5a279e57245835c185b3da0f12c8840ebe5ea6cb00205c2d3d29783ac17fd85e3a5be9c6aa0e9cadeda04f5128a991e1bbc79beaf266912b31fa7328abae69e0cf4349c3e61b6c8ef66c18419f7cbf488f07ab8c6339eb77bc689b0566fabfb1d9db3fc72b27ed22cc2b20698fece3f60e9e9bb8ba646f2d8e635136d008a313efec23c724d66045044d15740a114ab8f532ae4f39330e1e188130c6d03e12cbbad24ef7220522ebc803be15983c71276d718e905c63b1f7dd8cda3ed3b46ed8bf18edd723ae90b9ceff10f56c68b202460ba413fa4037729780e86d1cc8981c98f9cbf720d60317dda05c4631db196020a7737cec524bd3b776f384e810524edf471e97245ffa7274d6be783fab20e757fc1cc5b0a78cdff1eac8017ce048b0e82c09644e85037d58dcc0893794a4cf18e8b6b3bc3ff619b5469f747af1d9385a7e74b7276f480140e9294dc5e97bb2dbec71a37b409f80cc0664fb4117e12d3e0f68a726e94a49b3fc13aad70f835daaddac7a566abfe3d8a26d47b5e8b616aab6bc172067fa1858787d216e6684b856e65638a0c24e65216315c7f6327922be3f0454954f0a6b552cf4e91ffa7f57e6fc495b607f72dd2ad86c1d1475a087c9e96d172db712e903875fc5cda67f7dcf68f95284283157f34faab07ad938c9f256bf472c14dd32e4f01bc579aabd2f08120655569e36cab0883f52d13065685a2b19672308c6e8b488b1c9ebebabcc24da00c779912aeb43e966113501b730c9e8dc75c8d915d75c98b5ce573b27995caa5bfc4a718ce72565816fa0e561288fb06e972fad859d2ec7bc2bcad12783f74000f5ee470a2f5414ac7dd9fad1b2a767bee72d7a485c200abe5f83067e034ab246b0976fe4dbc239850e2118df3a209fc086f94fa6d166a29a16ee324e1e25dd61f88341c5e43f3068c101f2c15e3e95988724e91f88d35ab03ffaa3732b745c9c3d52f6421ce0b3abe2e03b34171f08205726130f6d0a795d3ff2432a20f32b10a8e72fc20d43ca17c67151e1e3b68814c72086f80733275ee8e8fa99dc38d564fe651cfee4c420c4d1fe45fe99f3d17e01980ec2661b8a7f238f37593a6860c35c84a47020fa698d279e11a5e94f51b0d721b40b935dcda92acbd8c546570c0bde0ab2928d6266144c3a40b071b73ad9918e7dfada62e95c8663602e16831448886cb6409f481988287112a0c8ea765c72ddb71cc73be64109744fd06cea82391e436133b32d04558d73727d14143e95a726264537d6a1b4be54f4a94ea514182da515ca14f4bdc3bc0e832b625f61f78725a12ebc820db2ecbc38dda414b63927b9af0371dfa96c7791e264176f18c3f30d1bf566f46cb6095c8526f4a9b63d2442c4f2cf1b223d0aa7fe1b9d078057372c47e11942cf0a1281d8bedebb2ad74bcb72b695273618e00ef5b15ef7075c932e86451d0eeb820531ed58e53142582d36615ebaf8aa109bd1f73779e9fae71723a4ce44cdb1a739ab35c43939e8fee04faa77ab48afcd5d04d289886fd9a7a7274bac043df801a3389ee614c4014bf87bc2b3e5ddb6cd6e21bf9804bbae15431046cd92ad0907277814b0f17c29dcaba2534e3fa5a08c09a38a046d8e4ff4472398a99536175c58c5ef6aa8abb92a641054679ab5904f1e74b04e5c539349c72293d512a23622b027f823d06dd22a797bda4144c741827069f093dcb2d5ef272b84f9a12a6763899a30c2abe23daeed5680513bf350833d211cf74a86658293e27ab5bd078695e7ae2834fc64eed95007473c1e324cdcd533e655d61dc474e4bfa821875a98944806a009672bcee1dc4a9bb998f3eedb25aa32ccc8fb1523f729676b13de12139356b50d6f12e151306498cf3afbbf506638b397849ccdd15723eccd291b3f803aec29c06f121caf6c4b69f531ef8c5330298b92f6d70eeff0b65929233939b8e0550947d4baec8d508285f50e884418527c6712451e343d6663e4b09bf540002dbe02f1fca3f89480f44108e5b073098da8f4ae83510d0c61d5f5499ecc78f063358c63a2e9fb2daa4921538c254b687b14e81a03e64dc79580cb5ce239fcd7a0ad5bea49bc8a2d98aef94fb3f400c1c37ba9d0ba66b641672fbe1a26255e714756ea71b16c80c82b9fd2965795e83fd56273c2e1887670519b3af0ccd15e3116545c422f0940cc1e1283fb34416693eac9d1ec46b10f11472037dddcf23f89c3cec080fe14b435e3226b04a0d7d707bd2540237dd3abae37243755ea8cbbcd5b9ca4f1bc6c3b87711e0f7c80b4f7ef37900e51db9f9bf94277c30c28064d1e1bad05dfd120cbe4a016302a1286776e85994f9bb75c5532246d704c00b41cf701e320d45fa0fd2f6276d3e0f91b4269fd4598b4c20928d8672347aa4e7df38467cf2723765e94d6b2a9b3808e5e535b5635f4f2f58cee2ed722d90bea89001200329cde2e4bc1ae20edc659e0dd1acb3fc5eb30bbb346418726d76fb06a7599242737daa730aa5b853cafcdacdb51ad8eef18acdc26e0cae724663e52572690ae7535b9a3171f5002d7ff4e2373a413526b222ad993b33a66939a7d27de4ea434674de0b2dc9c036f57bc9774d4da6f55df7feb3126ed88d1efdc8098854746425043e0532c225ee3580cd75c0d0bfb9215d3dea13de447f415f69b57c6273c1e956fcc642482c7a6a9554cd6050cc6c70a2fe0493d9fd4e7270816e40af8eea3d2164a908e697e44aab71d4444fcba5495b891bbcd63f684042b7d955bb8c678d41ff3dce96c70f73ff93f998eb3ceaac9e67f01593da8b724a2a1cc5e87e1cfe31b0c5949558b422313485946ee505ed4a00ef19fa7c5872126b67a44a77d5d68cb755e27d4ae99a4495f23794f9502ece8a7b07d3e8277268b58e7587e1dbf0a9a098eb22b8d8c3f968056aa5d08bf64e74d59d90b59b72e30ef0628e376be51777473e720c8479de8c7a883ae650ffc3878cec293dba72a39535d8e7012e34117e2cfd2bc61db120166b52e9cc4bd4b9816c121e2aec03929093cf2fa204deb60c42ba5627d6a5d5ab8c7631d3816b0f9c4c108c3b9e728c3e9e40671b500d3c2c2e108a781f16b87ef50359bae4736bf3be40ef1579725587d7f61a6e1b3ed3aa06bfa94e61d96932f43a5b9177956995368cc8f9cc72dc80e33e9f0cbc676194d2d86ae83098aef92386fb5a9270195eeb33720a7a0f5c6963ae1efc8d39d7bb9a132dd7de1a49c9722859573f10cace351e81d379628b1647cb195c067208b0586d96777330000170112d043559ecbddd2056456641303a66c383afbfd044524a4dc94a827814c72e406a00f5b8d7fec1c7deb64272d9ac0a2a921db770076616a50e633d6f8ea54ee26fb15ea114dd37607d252c72b7edeeb32ecc899f84a66b94bc5f95b25b4390a237f1abd6da1c08ab1f08d038a20aaa627ee4de44103760100d7da3361de87869f721a4f64a32d753d07c8c724da4e9cf7c476f550b12b9deb2e545aa1394afcd6a3d5aa6d4d0ff2cc950972c35ec0ec55b5b9be1a3ecb1f1100392426d89123036283205de0c94120f048d68b9c537fe4b7ce6d9f7d56b89f94582fce6a3e219666e94b48663965f95140f14bd72011d2c4851a3ba7778f44f4cb8f50c80b4544b877629bd0f0f9cedd49a720069814a718fca658fccf2665578cd47bbadd498bb47282eb928f86b48adef3d640696317f992e3c42fe1944d7258585c4947296db662409f1c904c82e930032f6bbf41fb79c1fd8871a7d4d69c541f6969cd329e57a446d22ba238121791f72ab42dfcd8e90dd2116a4cd47de7208d8a0ec35dce9a2b59bf2da0ef46b4f370df1d66bc46404c8fd125e3b3203a2620623cf707eda1956f4f8130823e6041172597e2287743c73e969662cdd1caa06e9a94ec591ea7aebe95182cbada4c32a1a15229eb6cd768e63460052b23bc8d1c85412d2c19d1a9d3479b1653884578464256871f5406ad3110936177e5b5a2827010a37ea6bafe37d5e65a78c67f74e427474a7d244180160505593bc3230d22d4a24538b7ca4611e35f26a3ef1a39e72dd2d432cbc385ffff709aaece082ba3d466d90b2b330a3c80e07aeffba889f119b962a201fdc170c5ee87772c62882aea344f45937f4409ede82df5e6c953a31b7adc94a86870f0756886d684ce3ce888dcdac746dd3a02efa436243fe00a8728bf1c30cc62774659cace7f90ec3c5035a0f8ea9d61ae3f24ca5f18d04897d45dd367e3945771eae5891eb5c3407a7b86e0b27db66b7af1a9e88dbc8503d57728d97ae2f59f265f4ff208e16a711d9c3cbf4a787d5c4e5daa1cefdb93014aa727f8793538ff6ffb6de6bf8771132e8bac80438bfe0b5acc1920a8d5d5fdbd1720e9870081642795d9c6d64b5cdb2ce40182f037e41b438b3108091603a1a46725119cac46317d264c7c29a834622bc72ad28a753db49cc80d82ab5b8f29124720e7a01cd60c9f497571c707dadda4cbabb54f4725de6002d00340950346a845af055430a292417ffaa8ec48462bc61175f555d581130b7d61c1acc7ec9079f57c029b94c7aacb17c99ca7c96f6831202deb897ac1bd844f19f347d1871482d0ea573a4770313d0fbf68de5d936d5ae2d870f44a2aae945238fb2b70da0d04b70c2930b2478f8ce6905188212a2f205ccf2ca3c14209ea80ac055d7e452c838728bb76a9d8f622e296b88dc9cfe7bede2450e4b1e99ccf5dee7cb517382eae67230345488fe0e48efb4ff642ec2785adaacb8aca43b9d86b74e217ac5e01cd70121591a1056291d2a3ca426f502aff0171a9da5f458e600754680fd717b7302071abf87c89051afa171b4d54f05320d111304d3229aeae67e9348cfb5c73a34489df4151c0e432615b367086c438614d1148d4a895280e3c791d524e39efec25afd51e56a9cf2aa92c8cec9c36c11f3aa2b675e38b19f3f9a0969c0fd09a5fb477aee2befe2d1dc5055eb9d20efbfdfafd0e462c5cc99135125a1757aa877c872e2ce9146537e0648e234bf1965787d5fea336589e150fe79aa590a87cab6b52d6dccb101016fbe87249802a05fd30fbc6b7e36a64833610d49666710b8b79927620925a31e702777bad1a9dde0aaa593f0ea81cc568ff0932eb99ae67d0de572ab18bd953507f3d82fe7ce57d1c667e5252a46a0256270d6a2995e80103d02721d12d266f23bd6e75179ccc681c0abbf73bf4e989d98f7ddf2216ef695016549800acfd0d5085118113e231fd302ec34029479c15994078d052d1532de7fc070d97cc4b7540a06ea318bae93f3f0b8a0ce3f7ca52939a484ac3379ddbbafbe051757be13a62d63e85c755a2c73927c695fa6b18bc4b30f799b2b81dc2e9ae872495849f863fa51147692c2e612d154e801015853249dd71eb7f3b2205143e6629f9e8535b4432e6113970cdcc38b17180ba52bc3e22051e5d549fd4ff3429d7215448281e6ddc7743bad9649eb5380872c571f7f442f3e46c8bb8c400498a072313d57b685e8e395f163d23608ff8df711d24516b3bbcc01840de1838d9cac729db4806f610f99f76a8ad10702f5fd0d38a8be34fbfd60fc4e22516b7a6a91716d60c5c1393acac31564cb30ddfc0a75d1a17719dd19986c87104315cef37c60ba5fe21eff1d4fbfb3ebac48357786ad65727cb1eb4e95efebc84d90a7b3d71bb4746f4064a92f67ad666c50ac220dc48f72c32bfbcc2a626caf30853bf2bd26d9b5d08584b22bfcf15123acb6fa34e51601006a9d7ceed544527db05eb9b972fc3558652bd18ff910798b14ee26d614360d39a54d7cdca868b793bb0f27427271db77ffc800432b0b16aefec3176ec869ff8f4253e4ced7f59d1108d5a408726018c0ca61dd6e183e26a402ce80150b9a0b386a043bc305aa0aee590ca95d72f451b97a39344baa8ef6a22080c2b1cb374daeb063496814a5b9e2ac9b4a975ef4f775fef8941526dcd39ccb58802cd1fd12a73def3f9c4ce5152aa0f0a6997231e8a21fbfbecaaa5cf9654e0366d32269125afce1cc50abc32ff52479b3027257ad3abc4a3856abf6a79208db5ce6500bc1a7781e0319dbd6e9341b54f2d6413230018bfacbd1ce7d8b5552afa5d44a1553d953a351b835dfeb5a7147cdbe72b6b65088890970285f0469e294018241eb549f078bc0ea594941460c807d0072cb9cd2dec8df1f27ed9f83c463e85c5111ca7740c60838212e2ccb8dd57bc47242b0af70f9e0234aec5d0563f839f0d5b15a1d5bfbca70f4ba988049a6712e7272aad3ddd5d981271c53faf04e7b0e7470ab82876f3ee0b3a74c2d706ca4885814ab64abb4bcf8105a00dd303aae0abdc8ccb335b7a2bb4fdf9237a2d6fc9c7205c2ed652493e8e5e60751baa60f3279988932caf7d99859267fa6ae7e18a52360a7a9e1a97fb534047ea59a429f0025baec4721648f2e6295fa6709c3e31672ab7c825d67f84f9b5d7a3d71951514a50c26eac1bb6fc5be7aa42b27b117e72fde56141b24985d477f0f7e04eb15c72312d3ce1e75c72f80170b122ce36fee3df75b2ccb34b727f3f67bb41e1b561a5e7f3e0ff57a689d0f23102426a6bc2a518f6e698a407957ce3a2656974d8e2cb8014131daa378e7e9d4f11769f1dcb75bd771e730dcc29a5caec641a79cd9228eac9d78085d4b50850afa41bc84a1cc1ad573d42b8f273bad04113f72b14a187572741e1fca18d39247923c0791e11d5643774f08fd1306e1a213dbbc0034f4f28e6eb8a68e588f9e51e39b9ca9cbfe72ec6390c27056d21502e41b50605435b5e0942aed422cdc5433cfcc5fff70f6540d684de0b5f084a07d714cd9436eefd98289154d908993eebf9a48d20806df72fa51cbb0a427410a965103d80a685da72c76a8435ac61859a5f43434963f077240f826e4626a49c582f373ba8fd2c88e976bb87ce74c447aea3d72519252be6d9d36be48bffbf892b5e405d30f96684441548c329204723e2042595ac2b50c724a2f06024585f8989fb48f8d39e224f06a03cf3cc3f308f7280acebfee585b7242c5a23a0d5eec74dff63a5d4897e01e4b80f193aac3b25b0f2ab1ee3dc6a1721b25983b6448cacce22cb0a1146c87371ecaef67f1568f9c7323c33f5cd9ae72a858ce6a47114e05200d7c00b69d86dfb23b2b36a56d6cae0786a239becb8c7210ff9fe823d3cde8c9db9d10fddd61dcba075ce8eac6fda615ad69e600e57b345b51c1f199922c92c251ab402fbb45d9722b804cc8f582540888b46370850d72db92f72892942cd78473da9bd1b2893e840841b00b82591b431af8a38b57415e93d9db60800745f020664525f66ab38fc1ed875510eb089efda562a1862d4e7255ab2531263712a064132be98edaca298cf5dcd9d93b44e2f854511f99541472498f73117a6bf4e3f731d4aaed9f1af61b6bcafa68c2cf9c75a7a9931d306f72e853b6519551e5ef31a4436fc78b14389dac68d7c64cd2f1a9e3b18c3beb8a3c4aeb132a54f3d0fe006cef73968af4eb3de1bbf462d2f899a155672b443dd3723a48ffac70e9d163ec0f8f3d0749fe355748da8ccba02905b2eab40f19a6a1686c6d6b1cd96afe344714fb0c63348615799c4d0b0638ad72c26cfdff78f799723402e602cfebae1723783827080856c9783004afafddf195eb0ee6c8b83244728cd913513c227768a5a6ad2bb30b676cb09a0ae7517529637b7efd5fd458be3f8bd443481454bfe2e2739df983aa7b7a6f541c268dd1a0ec07a3e29e163b857241d25ba21e814613ffc919c03bf85849ce877cc36c52d008e9586a3449bc0072b78f10addcfd51f1913742ad6049376b3118691a97d0351bd98026e173cea56840e4860d1b49689a12779204e5b139f31a25a72eb4939f5a0e17bea986444a2d09d2a34c6119fda71201862e6b3c0af02b737766c9739c00a912f1a48944bc72ff386e2f51d677dcee0ad60df42b4fc1ded9b3ad1d4a34b30f61e1c0636c9846718e7cf08aa13a379ca419314cee473e6305dfc6408d1b6ff089258f7a7b05722cb69afdbb4aa1dacac97bbf38213a86393ee80a32d8914a5534a9d697d1bc7233de72727738e8c314450ef87b98f142204ab25a1910d28ee07ea3206c878c4f17b2006a579526cfa6e8eb18e349f9cde7964aeb4eb3eede2d1b4005b49b0f4247ec38c079752b268c52172a931bd01ebea7426f05fd466fab3a32c1c535f372b5930f8b6c183ba913e10650a881bf05725fc52a25cd5030478e40ca5ae6dc49376233d708ccb354b92526bb59d545bacca7d7a2bb6aa520c59d65892d15ad7208e9ed6ee8564e9a807f1e91cfaccd8706038e11152f45bed232680f728abc441824f33c7e876bbfe9578a12159643d6c8975cc9f987e305665c1757acc30272fbe75383c4c7764baa19d7bdf460e523ec12c87b8de95ce5fa57da58d89b6c5778604899d33c25d103563315fe7c0b30981231d226eb7e7a2465a5bdf24e7372ad7aa640c6dcf29fb8385a3d9589d22dad9d63a17b5cb51365a27e2fd21f6472cf3160ee742ccb7247e78b6b1c2628a51861cc8b034d06e6cccb40001f80e3729aaf47f2982f3fc8d9ceb8960d6af000f58a294b3c7371adc30f934fb011a7729bc184039399cd6b26367fd38bb38349267e4b22d9ffa806281e203c1872d4722644d81981772da6ee24e8733053f9e038c4ac25a390a9312fe35a3859e33d3f7a04477d4db59b837c15f02367633feec3d55209eecb053c26d1b2d136b4214b96c7db9dfb956b909eb0b6eae34edf53cbac07e634aa55776d99352d49b4a625456022b134e72cb6bf7d5e198a2d0ac6127fbe8f02500ec7bcc3d3ca67864d27ab7ec902a955a126fcb2189cd6bd5b7e0451accb2f948728f972e70a4e400c72bb44cd6a3402a06dcb851ecdff54843f144437724fbc6d2ad3f2547a18c2e272f67f9d2d91080d0212dd06a886968eaff8a456e6067c68c5dc7f261d24905f1fe52b38a6cfed7753acf0f432cb536e22e8aefb2ea5943abd589af8e5a71511729aa894b599567b75a30549ccea07d2410db14a0abc5d11fd229ec93664791172c497e257d9baf47ab12f365773061c406480075b8818afad40d4f01cdb9656723c23fd9bb69858041d1b42fd2a91d9703caaf25d5842cf8ecd692d382644e072c1082bb65359fe3f838f5aca19f5c4cdebfe404550756ab7916aa6588ec46504276c5a6cf8517fe6332c156a6cee4f3a749b1ce6451c0e88967911c3548c356947836bc79f83b94fbf07ad073e9eabc72c2ec3261b4af0f0f30198f829f9ac7226f465d6d76f80e59dc783c6ed778678a63a2b3699a154e7e55946c9795567098c9cbbc2ed72329262b4125d60ebbf480c5c5fbb496c6e71b2b385dd732b1a72403a444fdaf1104c5c63f0be3e73a02f0b3cad9fd5884cad291a1424e8ea9c5f472c3d972772b0edccc6966482f1a0162ba3e6226ef6fa57ea5c363d3fa42f727cfd9519798a5e417c2ca889d79ca637315cd317872012586c36a9e8836b57718f46f9d26e48537d0b36a1600e800443ae621c9036d7714a4fe7491e2406a41d5eae48849a11ddb8f595b50cf800b73d969a141797238b424725b1ff194c3b726e5d98548b58268a4a2c69ea1ee5ff2e07ac0562dbd3244cfe3a51f3932fdf38d151167caad7ffa1c1f9533d90ce10b3c3dde3479270b8fc3e7fe11e438452721cd34ff678fa054bd0a369bc938d392a30ae5573a6e4ae692d2d7162b46e5b4c769e62cde5f39856c417239ac14e7badb284e0fa320c820054c5324e3ce31c724df574da7703d7fade04dd6e8516624a327771b3e121fe52173986f0a476a172b254522e33595e9d1829db308fdbe29d37b0a5ca8f302b8b8adea01c2172b772303933d51823b395940f52ec516e4688aa6a73d87fddb01f559f8f811e14133292fd57e9ad0fa8a7a3edd7620751141c693326107cc48672a01c8fd10f9c8772edbe714e42d1b13cf2ba59af850e15a985264a0cc7a2d08f8ecb3ab62117e872f581b16e6959e213350c6e70f791842ae0370f0c84e3071d84a70e9fb2684e725a5d495385990ce0a00b6eb55b501c6bece98d301dd4a74d34a4368d412887720750176b9464e35b1d5ad67bf06ee6e2f26e37a6b9de1f04033cee9ffbca727274fbea08d1f48f255d929c3ee102b0bee5a36f04154269b468c4a5533744f2142c3183bcc74e7b877a740fd4d9adc8101049cb92fd7fd0a5a79b8fa0560fb5727e6761fb9f0104cdf6d9c1ffe27446f693650b36799011cec020a28526e526725a218b9e8f756b5e29ef2a72c990a748aacf30a31ed0629eb15f6695d36f64729667d67de52751c9a5f29ea674a56521c1272fcb645d1a18c896054d5cff5e727e17e8dd186ed257d480f4baf5b1ae397c238eecde676a28d410e0f3f495af727328f1d150c0c7bd92a76a6cbd84610609835f20f3299d9b2a9611e35cde317242d7905699e735001fc1f48a9dba945dc5105a792c91912742aa7190efb3db6798e5826f37dbf82fd61027a3efb179a943ab0fce869a71572de0abba513ac95517eb495adb7bcc0145633ea578b8f4c2b5c22dbfc27fea1803826a13bf677a729b9e5ee5eee3db7ecd685793eebf548c72e12871ee39477b30dc15d189ae3a72faa9d4e17ba1329d8d65f2444740e75329c9dc973b60005b1b9a918396a98d726e6260e62d0f04b46c4420d9bbfff0b5a31fbe236f0be80ea965fe6a8709df5d4367d104601476682993c73bc69ae54758513159de188571a9f104b3ef0c472c198e18a37cd2137ffa00492b73570eff78e21c933e7df2820f2e3b613fbf76219d91caa482e0ae6a685f8439f102e785b3102afb16bac587cdb45c28957ef60c4353a690786fec3af8be6409bae38aabafcccfdf2a3f777db32029fcabca2b3c09ae0a72463676c45d4a8c3e7fa1a06c1a31b52301897b6adf83df145188371a38113b0e3c6633102f9d384be2f1f3c1f1c73e16c060daddc1ef71aece7fae21629039215e1abd7c22f0b5db7ca7f96fcc99823dfcf07f7fcef41d1b582f39633386184372cfc6fcf61446bc3610465d2f77e8a9cea1c126b9d8ecb7065e28722ddb0dcc3621a6ea2ae4145efcb74e13c2a082b464a10d9513fc7a27040c0e7284a3eb01c65d77f50ccbe40b74679087c0e324675a44ff482035ef6298ba21329da2f529cb734eb6d002ec564012cb27ca2683b57ec479547e7c181589f5c670d702e6bb12b9a12ae229200b0eb3b980df9aea450720c90891e4185b25f22872dc4879c695365c39b9a7adb900ee0364d7ce0f5cfdf5c8fab9dd4f0d0e33197291535f1b9004f634eb2d79b8534c633961cd77aeba99ffc6e7f85461894c4c4efddd461a5fd4b17b57a0c16de6ad79cbd037f863cb2ae728ba0678ef3d4486139e0011b16b6fdb22988c3b34aa65ac8dd61c28c340a7efbb489d4cadf94339723ce50641c278dcc3c8f2062ddf74504a1a556c9c75eabe291d99c5f069db8f06f139272ae30c18d32de73d5ef694b77e696863a5406edbfed84d8dda8fa7171df3fdbe3d3f74a4f905a8dfe5cc11cfaeffe7c8c1ffc2cc526bb5618fb7c03872d554ebb5c94600b0339628a800698d83ebd90690cf0729c9cc05fecaaa216a72b90396fa252e4d6c3cb4e3755c302b5dc5f5592200afa3164a3caad91cc96d1ff05c46652697ba8c5321607856816de709c397abf423e8156fc97471c57fce7255b73c83e227f170f444be6a2ff38f87d8e0ca9b6aca7c8d8f605b1af7622172de2983b82b845f51174e633699d30997b6f7925f5904d2dc4630633b88606c729df2c436d702d307b9f1e0f42b9b40e90d7248a2a0040ff207e1eb05f19c427244e4115710a632d8178aacbd8eaa1c1d35b6285137e8193b888e5f452ed93272fc4c6c1692aef0eaddf8abb23cde790b6a7f7c4c9a62f58b623f0c5b96685972d00cc9ed3fa3c177a3c2b3a077dec8e215d5cc9087592954311ce5b51b4c6e72fcbf2d627e126adf9f432c77b7f16fad6061656b86a0ef43c057e8f62305f0720bea0f72a4626842d2a5263901ab054d68e4c1a6e80679655c1831e65ebaa972547223f9cb08e208985775bfd28ac0abbb79e6f0428c673fda712ff71b260d7257eb81e1a3bf33b2db8a7594313f3187f004d939455ba33ef5336ae84a49e26579af907f946cbfcb15ae9a66ab6b409889934dd6b20ab02c60af96945a950d17fcdf465b5033a1df6bffca71c13ec21695c6cc6f1240e39c6ce0a6819890b6723759a3b589a7d2e4e1eaddeb154c06e5cc6280bc8f5e56ee966471ff4b603172f489850b4d37c1b08d50c32b5aca0139dc66a8983f77215baafe54fca4548e726ac0f3bf0bf3551727b9bfef11f767e9112f01aa317a014cc3c50014d2d9fe720df512b1686ecbe1a53a76e560b9e784f046064129836f59c368a8a4772d2271adeefc665ef1774a013089667ed101e934a286f91b2261752584eec22f5d09466a832b637a7f3189fea190a4cbc93f796661371808dcae0d02ea436ddee7fd720b2c5908a65bd797d38992b6fea7dd5da8f89e8730cbfd34c34610ca626ff2723b27001fd8342442aab380cc8f4cfac7c96ec29b3431d66708c53bd46e0ef67202b3b8a557e124e7938405e5c4b2bd15b198f5346e00d7c3b26de3624055944559e06b0943f6a196d8d69b76bc4b19bd680c67db1f79f677fedcec01be1d56438b7a9527dfb8fbca10b94de4df2b71fffd9acb1ea02141a3bd1fa7eb1473b6722f9f8a5809cd92985a7464d65ccd009c5a38a48665dc0b7786b7f41e45105f15237ce4f49cdb9093c8dff0089e23dac7edc7926c8832ce53cc71c6988b2f7c271c77aa254a0309189d3eb561ecbfc3479c08d82ea6dc7d480e7478669865fa72b2f3ac71f7b1868c5d7e00a4a78e73e7d73dc144505eec2d47b4b5c19f2232723b275569d2e84f0f9770b519da68c906639b98e1d632e3acea29dfc210bc1c7207e12881a9f258833ad4f36bc5b83613ce59a1ec924d54fe1161d27ff415641a59bcbd24550fbaa50800891e2447126e5ed52cd6d118123b6c76aa09ad7ae43afae15d075afa81c090647507d29bc7309850dba73c1141502c4c9b3ad8b5b27283defaf1697053934d2fbbcad1259769cf67d72d92cb42bb74a24cd5508eb27253c08cf6c27bfd5cd594585236dc1e86dc041c300bb98b1e7f3d5ec9ce4a96669ab8b19359254462128663bd99e31a964478a77877499c9bbd45e822e588cc72a54036d7ead3fe4749cd1293aa5e14882884015735db2334c4508ce361ee8372bd2f6c5452b6dbe00ce675ddd65b0974017d1baa71885b83f86edc7606119d007aa491d197b665422ac63fe8a6a38161e38d9a839928b7587de8a5522889dc00d42aabe2108031fb6a7b6e1a8b8398e11b7b90bad1c5ba9f9388b4f342fea072808672bc26e6b2fb45417f1cda32fc938bfcddd3602cd9d41662b9a1679f921815cffbdd3790bc9ebc72c11809d7edb71d804fdbdc637014e0c5dc987c419372ce95e2ad0059d0fad20bb5a62427459efd4cff96a7be7fbc8073607f671e304bc7bd3de216ce898563ccf18a3bc6037ff44e7d8ae0f753547cd71181a054fa4ce3f4710ce29af12250424b301f6a7fb4e743e0aa542ec866c2a4f9408dbf6b2b154bdab36a0b4c31c44e3b5643fd7d02e5308dbd6f8edf6c974a364be6d256727c918dc847d421c170d42480933a3f9bc628bce21a5fb4f219f1e233984b387299566661aa87d7bb6c323496232c283e19a15c5c3ee83e3f0dd2c2e7f05dec72275009052a98992245916f7c9d43bc92e48eb0ecfe45a1bc4fa464e52b023572455207b5cbc3e831f97cee0aca7ce2f4d04f22b1a1b77552962aae22f712e072fbe60d6e3dc00900db31c8e8d6155bff8925040ea2a4ae81d59db65772ceda72922ea2463c304747e125062f28c8b9dc5469b9e3f7f6d13f4d7435ce9ee94d537ba74b6502f52a6b570adbeebdeee43c0f25e73086beb1e0cc00c930a15feb39964758d32ead7971ef5e012ae13be224587ef6c476aa91d7fe86100c078b17724afed9f82df23faed3cc89bc08aac537dc8de4299d45457359175ccfbd51d229b6693b81037822d91c18b8499fdc2006ed2b17c0058918605ae39eb2ef69e172f6db80945d480b759a339959b352fea1210516d55a2b3f0459da2fdc41149672d38335eba259bc5a7f0470f81694ca6187284490864d31a1ad6471351406327287ed150abff3b828bb26b6f152d2051e7d93de2eb1a8b71425803ec56bb5cc5926b739da307bcf7a770d90fc62d2aa7e3b618e4fde17785fd73c4cb5aeead611fb0c93a3b7603e779153ce1172e5bfbd2ac4ebafd0149b5f09ca921a45f9f972e2212da09d9b38b496b83f2c4a1263f049cfe51ff38daa8f2c73c0ceae64e0726121bb5dda8228de72e07447210ef49a1c79a4e1a5ae5c971a5058881305b9727e75286eb44d0324f29cd9d60ff6584256a960a8fe4b5641042c32cfda55fa727b8678311a8d19e23d130cf6de01357200e17aa6946a8089983dfe0313d35c7285ad0da8738a44ac8302e224f03da36cb7ef2bf0edd323d2a4a60a9ca49fcc72c7fdabc1ad7a32dba4f09ed0e7be9f932a5a48d891e3354d3f99017b9b8b9a72806a76a65e35e848325aef5381e1133ac08bebbc986dae57b849b63db722d47272423ae219db0c30153526c8a634b118e1b50c326b12134eddd8b1d03008c752c7a932a58a36ca2a04c79fc20d6d196aa13f5431da68660160d59b3b23720b5ecdf5b37541a6b7a32ba19468cc942ff1c79de8c4e2053ab122dfe7237492d0721d48af62c38cbfc2937d541a42651a41d38af21d4db9b3ee77761fbd6816ae722d9670d5a0f75888ac97c9aff40abe82f8fd4d5c8b5982f2ed52b4c9a6aebd2bd8a3cf0be0702934d9c855765d80a3f25ce96e027746a5c5270e3ba1816d1d7283c751def104471172b54ef298bf8b8913a6f6e019cce05b09cc3f3549f9e941a797feeb1228f0f9733dc6cb5a85d5d550fbd484c325d5aafc1b85460afcec3bd97df2731e9ac55a74f931c33541de4561b9c5d7576ccf0ed635601c3442eb33429bcc7796da793328e1f3352899db16dfe5cdc8d737bc7c87291b17a9a76d72e7954a40c16a5e01f95c02fe86d50b2eb8642b286aaec4704abb21afc4c2d2723d944f3ab28db80f803332c0b0dd83eaa86b1468649b51208a8b321cbccb8e72e0e09618f3386e592c000d8a2cdc5de15d2b153650ee980c32951052ef5422630e6d31e3c8c89db03de89d80d5fbe3428e17ee1bc8cc870aa00b183732050272310fecec2dcafa77035b77ef19a15b925f4fed59badc5df392949a02e83ad97264dda9196b888096e1af43369f46923541d386824c11e8225df89252cbde1f6f936c0f6ce47aa9805c0563944df33cfb8ee0bdb2081ee56f107367e2c44f7132c6fe84868a500b96beb52b740c7255c5cb42ff815346b1050f66fe7a70c0cb72c2e9e38a2b44e0e52af13da90a67732abc6d88c8d55443d83d877a439cd83f62a02b6165a9d100e4c794b755d33c39e4d540f79a7134191a600b2d9f15e1bd72eb0121eed8a7a89c550f2f5524609d4c98f7c871ed3b79d3d19288ba0332e13ec33edad6b8996699e0fc71ac96353857c6ed60d65caa0a163f5adb59e23464192b9a6757b6b05f6a8b6d99ee8a361cf32a1662915934c747a3b109994e0c96319f118c235bac0fbd7b711694ad4ada7229f3c332e1c16ee7cbd40f8cf2e5806bd8c5da5afbfe2cce99e702ea27499208bf34984b62ef9275b8d5f580f36b3625942858bfa015c884e134b33f1f8b7a988ca8e2dc74d730e601f542e706ae353d821b5553d3918e86a9f64df65dcf29c00c87128b9b2049da6b4ea5ec48e33c55c7afb79d7958717197f8a41cb783921ed8a0f87f24ecb2dfcb6a887ce4c2637288879205482f86a16582acc00bf29b7fda07ff121f1379a0ddd38d5656e5621965ec50cded8f28cd5fcc530c2abd0b45e65a0f9022223db75d2623dbd69a9e11b10bfb7d7b9fb12afa9bdf82ae8a818237b02ebf43c466a307a77afa2b597d2b1e3856bfd9a56e5302eb9faa4ffbdd937342eabcae02aade5182a9929bfb544ce92f054e2b8289aaa712264a383fb87935effb73ca288d11514cd59265cc4d720c115d3db7bcdbd2944ccceff890281e07d858e87d9c8d09899c98ed2a240d37638d851594c7e14f53487e362a8873f41907adc414ef7cf0d4d7a1559194177268452b304bec4779a3ead63352d6e5a5ba7dc1fce3cd327ad718c466d56b7272422f609d17957f0c1c82494b573b1c4ff823ecc7ee1476f2b5e2da822804357207db8eab13aabbfc282dc85697980ad6340fc6c2f08654099a5cbc907fb250723994c6126334721177412c7f2d96a5c7cd9caa44bd63b1464b2ec1c113ea13509240af5bd9efd8a95a1521b6902dadf19ef7009207d5d6722e3dd4ad14d212722c1e6288dcff9b7bb9fe9311f3a00564a42c54ba5dedbff164847add2cbc46727ba1fe1ae4c21c9616e0ff309d32f8782f451c364bf1da1d7a214a7eec3e9272cc443aff729a94654085203a0d60a009d8b1c06ba3681681a750941d63e52872f4f9f8a3ec0099d2023b40c6187628d281bdf43a7af87624d5b7a73374ac1a7274af23ac7b96300b118d6b4692924f673071aa41ae72161fe9ed43e718a307726563b5985209f63c3e5f96612a22380c577d28960126eb8aec2e2dbaaa8d5a47ca36e7a99c2bfcdbd7f41f4564ad433276ad6125b9a74c16cbd73964a60dae72d99bb06d8a1ebaf1fe363bb673edb8f37c3337c165f6b4c6c070f23263fecf5e66b0d44d8d7ac9996d90dcb08cee81b6c0ab5822421991686c6d0b9b4c23c87225a3c53a616e0dac88fca1cca5f97cbc6b2814ef820444c25118ae1a6c256772f1c61fdb4afd39f689485ef48dc2f67e7cc99d5ca3facf569bc7cade53758e729d5a672e78d473d20cacb578154862ffa3005615cd605f684000420e38af5b72fa6fdfe9afa9b952f4915f69b06461f2d9e52c84387e65e6d07feac4b9c7e7729c8c261f17296f0003837705e22e5733192471b98a1292ae55e37d3da93c4d0aeb8be3558d3d56945fe23dd3138075f56f4b4e24e5bf37287f8d67a77e62c25f16d116d09956572186396726188ddca91ec37623ddbd2c8d5a8a14391c91504a9c14f5db4ae1f4ab87079444ec01ffc62cf7db1e7edad9bc89d0e7141b3a9407d061b2967d187b4cba243ca58d25f61946a438e8696acdcc009f630b5ef11630a14d792a7a5712ac930b095ea34103c388db184ad180273ef75f9bf28b2f2c72d31dc49da74c83165a206e86fed028ccf6086232f71e2b56d6dd2240944f6c7252e0aeac32311075a7b5997fcb867706028859906790033917664e95f2757d721921bc2ec7f3b50c01d95d1ac624229aee367deaaa8188ae5fe1093d124464728165f025268a9e1b6638ec1ed9ba71763e01b753f85d6ea05dfe7a83a002a72ae2e8860daab55c824a280edfce37ba6fd62e37e1defc38b8eaa1b4f403742572c9b7f89b526618c58b006e8b9945db0f85c67e94e24305ff5a24c75d06e6de331e3ebfd44f72c598f5d8c69562f03569cdb103e391b338b0433f9c13d7aee44809730fb066261447ade6e5636e8a6d852966f11acb8b39442a08170dc0a5037212250b9c9c31ef8f284f995b57d4c360c7d2dd86e7ca2944c29f9c04047ee23ec09a70fdb56922327dfad779fb4bab58e0d58b16b8e911fb911e8d98faf45472e9a16db8c651e7d701466ef0c6e79c5cdfa406140bd17d64483b8c927ccc901dbb4fbd1e2e0f7020e568b3d96c2dfb26ca87b8390ae36f0064d5e281405ec5233218842d914e632492818d9cb9a6965d2dfb21a20dc844d5aa3eb401c608c8721e6b608c7743a0bd92c892f83eadf87a6a258fe57c333af48ef25b63d80cf072b9dab4f98ede563368b8ce2b1d2d0951c95bcbe84631776b4106380421920272934835b0a8aa26d715a6d1166aa762efb8fd92ad8a931248c879a502673db17243f3fb0414201c5b8f31c93721f8c7e39fd62370dfb9d3fa817a696e37981e10b233a699b8d5e03324087179ab7cafb6527f31734d13fd783ad9f565ed55b32af60975e4fe8a8ab42054814b3dbe8af4de43286afb6c11a86e62fc24802fb572380240029497887748305bc92e7e98a1724f9d13a797545308a03f906308b2724ed4c2a176a01e348ed4ec5797a4f103480e316e8536f34d0744c9f3bb185f72c9235df3774597d18aedad2a495b1e34ef27f448e2c2ed4983497bd4fcb85672fbd9511cfe0874c28d44a8116ec3ae53234ad6f011b7593c2608aea06b41b1720b997e3437b1d2ec8ec147feb5c8987f4a301041958d72cd86a1c272f884a13a46731600627e5246b89f6c7bba764eda28fff5012be6ba4d5abdbd3d7758e272688477648008b8b058f6fcb5f2bf90fbb8212f9b5a8328ef8601fe6ff133b34b287337e47e3b68e41adc577db0f5d3b0c21e981e492d500ae93f913e60051b728a8d764596705cdf64ae2f8eb7ffe7a97dbb3b32ff24ee3f06d747cfcbf1d072e62b5ffd0bbcd24fcc81c4623b3f7afc3f9c88d8d9c731ba122bfa7fdf3469016c21421d2d681dce56562b679f4c7cd7d5b4a3057e657ccb28d4b49c26f08472e9da2a06cbbd80caaee5ab233e776a54b75e995d2ac0f6b8a6a00027085a7a72b5091229ced7585fb47441d9ba9f9422d1d5a04a699ce2d472395685a61c6072c00bf3124fc6079e85d0408f63ab4bbd915746ab6322885cd5fcbad665defa72c3ec0df6f4a337f93840f8e16e99b644bebfb3aa202fc0623a48ef3fecffe04dd5a560ff6e081ed949bba96c2f77f95d683edb1dc7e5b0a151242158e444d837aac0817de62f12ce29b858c7a1f81ac1ee438663bddbbc7af1065cde7daa76716cdd8817acb3d1072e7536a30c08f6c80e2e13fd4406840abf484d60c9703f3714a26f8e5c21d9e6d28a49cc41bff6fab646ca3923b93b6078b12744215b5a72c25da3e090538011c4a5f2de76a89f77e3e7c92d24fc65aaddd7468717c8ea72eabd959d67a671af40f7156d77332fa7a96dd24ae11e1c63c71474bf7d3a3166d117946396e80836bbaa5b24b8bc0a21b29784c80370830d15b25e4c3ada30723486ebe06a0b32667ecd7c7176ffa3f7fc7abbeca7f55b9165a1035a75ce06234d04d91294e614ac35e41e6b2e4e437f82c6083d685028414b46f363db5d1672989fa02d9f2f297b9b231ea2d8cb235510624d7c9f694fae34c7bace00a729724b8b685fcf0ad91689df2edc9f9ae850529530bd4624bf21914e28104c125255ad1a1ff6a1b60b8bb2da4c341cac90c43de6ab363620cb9a97d3f621cd0b3c38d1cdfb0aca0bf38cf6a9558dd1e42a1f519dfb3ca2da888fef197c8ef9d884729b1634405a35bc9886894871f4e10a76ad65a0c185915064b77ae0dd7705ed04067b31b478045f420e2551cb003ec94866f6372849d353ebe47566593f91924c2476ed940a07b42a540675d9a7ecf856d3489294b7c0ec5b2d9871d79cd49a6465a401dc452809808cf76b05215110630c425a83d7945baff71f875f629dd918421f6ec1014781be7bfcb56b8b0d22b29c3d100e94768716e15dab51fad6eb4663bebff6296638f7d1710a2f5d28465b51fdd5621b00f7f77a75215ac24e2403f13f8c9079a9b7984d11af9efd6f28bdd411b722174dcf52f7df56d9ac1ffc72a3f3a6dbf7444976cb3867b305eec82a31ae52e6a917e1675e5817a58134410ee2dfdda7a2b1194fa051fbbe91aa7a5fb2f3fabda776694eec3955f2918862679367fb933cf9339e1ab5d7d6dde5e2ac3b3d7f8139f7018c42df82cb30e28a720d12712245d3f36d9ce911819adc560f85f8d06add6010a0cb8a24884d697b0015abeb384c886dfc48f3c614165ead70ba79b329af5f6a32ed0aa8c27921137185f2fe2f38082a65361fb2c245c2e60cc7ae61ab8493a7ebf751a5a07a269c4da8b2c8f870ce5078e47bb7aefc8e10aa4031a140e5c33cf2387cee4d3ed852120f288911ba204c71252b4c616b85e3acda9457a06b22988dc73e57495a1c4772f663b22fe3a5b1f4677f204c7137ced5b4fdeb7f61db4613f5ae78daafb67026e4a43ff2a14c97263652449b318b4f6a99e431d46eafcf0ec339a11f84e81172e89257cf43294ca5b2d2e24c2b170dcbd1354f6976dd00749672d571a2c1900f02d69f013ce1e843ab2bacc819c3bc880c4b0dc6a7fd4a084900894c7b5ed264051cd5f3ab4a419028b0e4927c96f6cc5f806d82e8d218bdc8e3a347154633725d6cc0a67820abfe482a557d06ca6abb1e4e4849cb5082b8b95396c26edbae720feb8e682f2333543bea1730680499574674937870a43cd681991914d86d9572fcf983e4427389033016d863cb589b28759f7de152e03c11938b9e2ceea022602620b95900925753ffd4a2b4e609842b0f7f943d6618ca4fa8f2f44ff3625672377db17d35fee09e9e6b8c10901641076c1dcdc8c1ff79c959f8e8ff0ebfa572c27f5faf09348d5b7de1b2a464c11d33027e8fec13dfac0b9fba9d0c071bbb72b58eafd989c282295fc4c98e73727de863ba367abe92905e981f0f51a7993f687f360d03b839b1feb478bd2d3d0d6d96904ef427c46ddf26153ffe1e276b6c2e9e026790de0d780dea88197867f8a54bf6fcc5fb4064cb8ab1f5a4f4523c9e72af00d9352d7beec062b0ce87f29e0c94280253645b16fda9c490581aa271ef2d64aa8332b4d5dce4e9a651406bb3789361a0494caa9f4aeb081bda4293d7ea0d9efefb52594656337dde6f192008319b084a21b14055af993bc5af31a96d1c5bbef9944f64bd3ed681c340ac159e25478ea474d920cbe5d1762c651a7067e4442af3aa7430b85cd6d614b030df0ee31cfeb52a536d25a1fcac55cee2606cc94ec2d716b3c079cd16194e0f3a7cdf206a1be61e8530f9e2012a709f1b45d5c3726122bae7a5f9d38d0e06f00f5ff69bbb58b62ffdd610f3b297453c1ceccf5c37d2878010826e1f2a7bfab2d1ffce9c187c9b26884933ccc293c5c531868af75544a6391129433d9f1a8ce47311506068b0d78f6f7c77beda6f1cdee68536fe63589970505474caec0230841c63c92a923eed818f65f57131e5d236b5442a8f72efad5fb3fec61b7a0480e8325dbd2687c881e5e52e61cf51718276fec9f62c40f77c978f22e42f145ef31dd53ba0b6467796bd15bf9ea33ac0fe428b19fe067217be46df49292a0cb8be4c49ad839d102237e9c06034ad259bdfd4a3dcb7c271f8e8abaece8c7a93c89f1ca51792a76d19835f997153850128c813430a0f5c72695b9d0219aa8cbd0c47689845f4ecfbe8064a142285814f6b2c9b4fd766eb427804f374c1cfc73bb19a1bec6f3ea05cdc13cd945566665ce8213afcf87aed72b064d89bad412f5bf7c23b4690fca1cca8ad844f182c63bb1b13c3c8124bcf720749e5c1d58032e31c2186637565a7a8b93452ac20a74e0267e685acdd7d6d64fb06f680f87ef40d0005936d2c9c48346d505d986354c356f10a449480f28c0a3b71b08333ac7140f5917e578331be4cd861e360d73045569ac5412ca8445e56d7197bef7c731f4641219cb39c437ea7b6e54ef53d91a66cd7fff62faa86dc72358ebb60b79dfb723f3588dac7ffb20022fd6171606a87ceb4889c9812fa3b3cc86608edb0d21125eea1ad76e1558ec89f4a642451cf89470609ddb92beeb17283483253ff2d24548ef22e34428d2eea7d8c22cd5567072b9eb13d1d38a5495653f7373040ea17321c05b6f7b4cd5b3844cfa405ec8f404315b28ca76478ae72815942ca12ebe08230e625d320a7d6f4e80f486b025f5ea38929e518464b813bc035bda5c5319f879d3d8fb686ae2e97531949b811f603c6afa376bc5a9fdf2fc8b18be1649049228eb5b08281bbb91a52f725f1453354fedbe686700d322172fc30102572ca413f99fb65015c2c28a7c3dc065b1acce8702128f600bbdcbc72222bbfff267011f12eb7837e311194946435c2f4ca3e12127978f3302606ee72c1be41446e5c0bba60f9fe998f8ac19329e6b83d8de62bf2ad2d7055aa1a91729eda2fa2c4cf39c781db4ee87e6713691d954fbc439499babd117f459ae390727f0193ebee49e874f9ca8b2830646786ae93757ec408a1cb495adfdac30ae6728b4db41d5d80bab464e9e3350f9663a99a9961ed5c5dbc768424d204a1c391725519d07839b62a490ceb83a3dacf24bad27351298bd472e5f81a652632cf3c1c0547f44fd6ab64b064a26a3f2f7db05af83039cd9a542bee7a4393fde6315972c71c393426722ebd41c6015c1487f5852bda0fcd029fab672974853347ce454022319931f880586253a5353c89a59b9a76361a945407118cdd1268b4a77760473350a6fb53b3d9311d0b0dc32333d4f23000edc5f1b5680a0382c2c9ae3b9b1a73815e59d373e4b61174b3d70f58c2f3c98314ab1a1ca818f9c08958c71eb51dc00bb750f2c3600a8d408e0b836623ee03f9414e44c15a4560f4176446b3ef093db3dbe65fd660a55d8ba3be83763eb550bbe2584a5a5b1318d8105b97222d72b6d3f10b175b799d9d3582a1d2ca3c5effe146085eb5a1046b54aca0019d1b721bb2bae843d9170a2f341713b63f256fbbfd4982ba356a10506752d8d97ade6f21dbcbe290d129d53b264291fb0a84a8d10d8f94d3648de90e4a51245f67157298e73443d7c641b13b86488ca37ea8f3f45be7719eeca8439c1b39fb887e92722e8c16d446ff787653c382a6501b323196f8ef4402bebc03655ebf3d0262347210c9111542a72b23461f6380f5e4481528b1d2c56fc591d0195acfc59cf57708a01200b2af2912e37e89b13a26528068c947747c5de72a226f3f89404b96fe7276d6946f578d0baf1064a27cc997ff9d5eefb2e78db7e9916efe70512370e4725ca264e275a6118790b8349796d866839b0c8c4ae23156d2ed824c89f241791559d3aefc22934bc84e18993d17cf715476c1ac369435e1c73040fd8738d1a372e6444ae4ba47166475b3a36db9e581160ac91355064ea6811b531dbb9200c97299920751f837b6e08084436addb954f12242da39e23d362e1ee69edf57bc994f3a42478123613cca00485f022c0db892dca31d2bf4104f44eb2d240f0ff79c725c7cb2b4c59843aa789809f94dbf3f9d5907e5a7a5259389f622cffd96c850477253c3f13fd70908b048341dfc77c9ba4f54b580a67e52dc44f3275d8748cf594b5e25b805b0e46582a9d0aec90f38226d4e0496460f3e7dcef41b5bc8d5f864710f3b9e9d4e80debd4318a2c6af95f90ce371472bba833bc736c2fb5e1b657277d406291073d58423c90f52456836478b7cd50abc4eed50635581ea51ecc66f3d2366b1b618c525357ab060a51461231ce5621960fa68860d56709441377f103820a0fc554c3e3dc725406a81b95c526c074083f9d58bc42287575552f5a072ec4fd851afa1f1b7614916bc6c48f7f336e5177028f42f4e7db1fc4db1bed672c9702c6c353818ffc5a26436b2461936a502aaf23df7de717031a68e9c040c72010a3861b7f55e854d5968da3089f0c6d2aa32014285e4ca13fe5257627cb072a0c566121dc24b5a6ddc985d2bf6b6adbb6209ad4ddad189b7c5aacd85bf3e5bcf2b30c7042c131c76b01ea7888dc9630ba7572d9b7d4166eb68940a618d9d50b58131efef120b8b0558090475121dea1c55180c65acf9cb0fe68019a2cd6b72a7c28779668ae5295774b11780c195af2642468a5be6c241e1eef211fc33667230e76b3d5d68a98cee444d6722440f418328499965500304331c710ab2132172bfcef7a0ec2de0152924c3d142771c3a5f1adda5d6b54bea1e2afd8179595d72cb5085696b6948675c504c47a07a123bc67f72bc7f0c137bccc7eaa200e80d725dbe51c0f995d61bffe12a828911edef039368a803edd6964956645317b7021e52497f770e86a26f0554a2616473d277086171a56e8d366af974d5d5fe7fba72d9e85d15bb9a54a930f5b7462f50d7aeecac89558f36f567e382dba200672c724326c641292634fc5f86757167452515acb76df9055d5591af3a12277c74ee722e13473bc37b5503230c1637b2c5fa82e86071658ad79199b8264367f92c194b77bfffb3905fba867144a74b8f1e2c66995daf731730fe4bd0618ef42b9ce172efef1806da9061f4c350b14e41be5892d199e5f375e45164886631df380cdb72588ec38f6f0fa619f9f80ade475fe32ca1468345dbf19bc377692077eaaad57280d051750da3dd822ac98567bfb6b41d2a038721267f5a84ede9ef346c57cd72140df33f196bdac0d6a15f2dac93c1c45995fc0836bed6627a74b0d192e0a90337a394ca052f71a8756bce6a7fa22bc21360ccd93e26a15e3e1208a3bdf23e68683bf68e46dac02dc5af24fd6fdc1fcfdabcbde0411f1b4b1417abde7f52c0221da243e177ea36436b3b55fcd1f5ecd5100f9711fdb6abd7d35f956d658b2a726560aca63903674b8b98c3cf2b4de972e960d5f284c3ba65b84908aced2c7572be18770a1a3e69a0889f9b212f2b856db5498fea05d2f7181393dc1d9c92796e0d4620bd2670fcdf54dde80450d0f1a5abdbe9a4bad8c7a55934928f9fa6e37216dd84fc4afb495927d2715f0c013cba6641b03cd869558ea61e3119ad465e72e443a942aab75de805d4c188c22295b5238c7416b601d5db9d54b289db3c37702b67564db234cc19c069d25c9b9addda45010edc4545900ea5538411e8783372e6b89e1478eb778337e93a94a666af06f01914dffd02d74e952d480e85fb50025533b8bb908923a7a66f616503d252251e85ae0d36803129e699b5d0fff67472188a3c332c92385b3f4ffa410a37d519077e97657d67706da58c8ed3228a3e72dec50801a915fadbe25f65755954c30a4732d13fd552bc425eee9ba01a0a4972ca10d01eda88867fb907085a070eede4bb3733f7780e82dda5c1d99d820d8b3df199f5f2a339a4823627dd1e69bb09b22efc3944b67b3b914dd52e65cbd4bc10ede6b6e96db985c5d0a13d7baa0bf71c21705498510279b2b65c9fd7304cd5721526eb981ee3e65c075e504b10919664b99a09393159471405e75b890a7b36725e97bf2bb46803cd791d19655c11ad1c2dc96b35b4cd2f97a5695da7428c4832c68b6fbbf14c72ab61c907e5ce9b024660e9a3d1f393bc9a7859e9a70a85de282dc92f8f67afdf82cfc5007ca060ff2c6fb8c6a0068399b3d93c2d3d528dbd720c6d9a4cf372498f5f35ed1003b7c102118ff4fc2f0299d60d3f93af09f3647268cd7a9ce7d8dd7c812b2d59821b3dfacb1ff61d89b13f7833bf037c55c6386b16974fce21af0a4bfb15de50e9cf4bf3f9b5578b44c57d2911e562e9ade1b5615797c018520f622958181c44387db14ba2e003eb660994852af0828b09d5984530ce5c165cdeebfd5b0ea2ef72cd202884586af247ab65fe4d69cd0ddd871c726e38c5fdbc006b2557313004356de4b70396e10683c443562ddc7f38bdb70870045f3872479b6458ddf395ec19d0c9fa042239abe8b80c6de973cb3fa1f5a072fa13b5274115009d452d410fe6276fb6a319efb932ea846006dfe064de14c96e3180e5355d2b3e0075fbe3b65f723ff7d7a04f9daf93f77bbc319d8880dc0072324f6653698923824ef0ca5d6b223eeccee4c17c46941f2f5f5e1125beec027280fbdb1ca20a07e2d23047090a224115b7f13b648a3cdd18520b05f252de3d72a85c81dcf09b7c45d51ca43bf8661b4571c686d909545b57d17dab19a7c7e672542dd26a1adc6f7ad6ff5156510ce0d738ae9244da3aa5b04d8653458ba5e9727150bc1501dcc792bb3e7d0c3309e4d641aa3902e0586449660c81c663654572f48f8dc78bd11183185947c4ac22bbe8969c7c849d69116f65122317cd7be3555cfde552dc695b4097f4e2182eb9af9c2716fa9d146fe20ff2c7ee7721e296720633a2c420fb86d86245dd3008de2fdc995e4e6b2b74a11682e112f01ee338241ff6c2969f6511c03d6c7a8e04cce3eef997553e237f1346409d61db1b0c737290cc7e1421b83aa25ce86be91d019accd222453001826a22624f7a73796a1a204fd57b5e283b669ddf96cb1925f551f7807342357fb800a82a0a8509c1e71434c58b04df94634a948da1bffba9ab800c8847eca70ea4acdabf56294e3f781f72151705c91fc99676ab5a1430618977de4d14d61d4cbca08042aaf08e0508c3729affa49611c644a88e2c52b494254790dd75a4e7e258a22a1dcc75734179ab0919cc5255133939980af2d3735964782f50a954796b8f180ac311796a4524fd723a5aa28d270cdea2872d386656081c581a281507542d5bebedea91dc8d716172b81031824b22aebac20daf04fe1034a2aad37d621334d2c2989ab84343de7e51fe22f0fa56243e588bb41aaf8d2e9c86629d82c08cdef3279aa60b52ca7a9f72070528a251a4ec699b54ad06f84acb13864bb197fa5d065fc2513b75820ed5724774da6ad4b62b98dd397c414ec5597c7ab565915833800c872d71415c119c72e5d308a847d626bb7f1da5955fd6f3f324223acf1feb235ee988fb88cb8e9a7267dc32d68d87af308d17cc9f08680fea59c8c2f872846613b3b96dd7fc699072a990c14e986886bf6b7ff44bd74517c3c6f8a501213b96618c29524edd2c137282d4bcf7cc3a34bd0b1c1b51ee88e66ce417ef2f32ecae582b13b25cca7cd2290ecc5fe0135309037aae8ab4bf8ae9998274307120af58e835fc52ed1604cd72b24ef4f1bcd7afa77671d734735c519bbbe10a3c3850ad4e4e455aa40657f20825c3eb70eb6df645ca1a990918069dc46c213fe194e773536c281ff52ae1f34344083fdc5ba32e502661f8fe1db6f0d8b9ed4a280ce6e84974ea932cf13198721bafa8df8c703de7ef8cb38c3dfe5c97dddc2d7df08c13b6e85a39a59b11053e038011d1d1cd9470ca5fd1becd48750b37256ddfbcbe01f1e3f0e71d1ab3f7725609c27c8e9c08945f69d6dd724c96be43f43ea6df80ac7399ac7697dc40e772f4dd907b2afb4cce01bdd19520195bda522b817777bf2c9e48cfaa724bbb097220ea26beeb7621b5a86e45c591cdb55c462c965816035882eef04b6c0a0e4162120c329ad36596af938b7f13a12d987b5c0f456d654949bae1033d98f7ba2d72c8b5d41c79e3b263d85adc1990b17a999b0da68519dda66d9930b5b7a219d02f818db6ab00b32bdffd85bd7c7d921ca595e90b04677096a5594a5a675eb69d720677da77279e214769a6769b38aef288f7a42f786aa7c6e0bdbf0269530e9c0d001d510efed9e182fe39f986b6f022c0f8a1e4c2b9f956508602b3edaaa48b5452057e07dd07cc217322bd11a2e53e4b616b61b69333db931212c32e230ea11bce8239235e9e98b940d51c360050e719a203404222916a52957e4280adc9c1502728180127e953558296b0273d314269ad97f541268d723798702b4ae8a57972fb6bd056fda5f753a7123186619c2e35172d7af3c05e432be388498c613a00722347ebdb2a5a7babedf03e5d04dbe890b9d14a4c9177dc458b02cbfe72f21e2340118b4740970867a7ecc4e01baca80725a5eff55d37eb18020e7277d050dc6c38e19a155412e714a518b63bfcb5be22b97e16e0e32a72ddf9c069c3d019f43b762f74ea8d7e4baed5185ef9a837decccd647ba38dc92881a86c9b59e9d0bb6c8ac0b70259de8b80bded1c219e20d4e0a8bc0d43cb963e7ede5894e037f1207259eac7cc29229664aed0a38fd1688587f7b11ccd3c5dc1694c71fd80d6e8b47289a1beff5c66486ae6f57248bc3d16cef8437dc2ab5e0590d9db082a616a5a281f3899d122cce46c61191da8b75fd1f74de5953abe912c63791aa02b3ac9fe456374ae177da37347644475ee38d5d00bc6d1ad080b5efa77202c2ec609ab7a43c76be76d805a42ce0f1b27369bba8bf23afbc3b5b5a8584c350cd2becc04aa72616718b515e2373a034c6bb16cd0a4e9a66beaa9a2a678f25cc8a253eee1876c2195f1150c385bfc5805a7fa03aa66c4305806e9558545219ff6975aa5eabd72432f36bf8352986fc79aafd753a97f7bd49319e730cb446e4378bd67a79c59723f15c725a5db8f9dca9d8592e8bc5ef9ee20588f1fd535bc6fa4ee18a11fb85f5207ec0712d9f98103f5ea21b8f2289609ef0d346dac2793a1116c2040a7e35a6de3107bdfa01823ccf99dd48eb09fc441eea502f12d6cc6a4e764b99003b972f984548dfae758494e163730b20e7172ae0c48584e8d3d9e15aedba18fca2b720ac3f7a307af406d4b724b9db032bf22941de510f8d5a6579ef8de9775b247432d556e763a55d74a11b97d3a095f731a9e48cda3669f088f5b3024c31baf117237dc4f804a183b37dea5afebeb524486c1f4d4b2be3b97847acc130989e46a38f1984c1b2cea115af315fa802a4216590553e5be66fef1deff8cff3d25714f15fd13a54576882d31280a5c51386989f5f0d4b9a9adb9b4e3f13143ca0dce644d34155916abbe8282a0cdbd64d415d6b24baca1b1b27147bbe10c3ca4e36da34eac91e259064df41242a7051fd1386f6462289ec8009da40259762735ee694a39548612504a6b17cd18f288c3cd5d1e0830104a20f4c2d679531555b7c4c07301bffb071150a5158550e247f6d5931adcf89a88d32199edcbde7792693d316649c17b93949ec6996b48ff13383704aabfedb8162d42a31ce1843cad3dffa4af1bc33f6a7fcbe40837bf850ab6a68005616a4d2ac89fdf0f1eacb3713e7e95e472d1828e5817dddf41f882f0dd101a2f0d486deb671f4269f2f3cc4694405c06726b51744e48c6644431084069c276a64922aee265c501badc4b463f9f71347572bec3aba51316b6cc3dc077da03fc1681ed8430290b94af6696dc5d0bd8c31c72ec466d722b2c7ad0c4de82c378e5e273aa715640a0ee58655d22ed02f9a8752e5087e99fa1d2db1b026b7dfec43fd837af0fdc982ff39c6f10939e25ff7d52118ae63fb953891b0f6af023d5659d15db7a32ba727b2d066f98fd066789a4555a526583f0a1b015ae843ee7c897b91216e9a96ca8fb080cbd1631988858b982725aaf6575641efce25d045b37fdb68493c888fd2c9f7451ebc768709abcaa70391abc5420469fb5919c5af32c689326189b3458095d7ed6a19b1b0471e852ab2852e0c33e36c7da1a598a317ae45d9ca621661344a47a65c0d2de9f8b0f973a728355351e9f07a78a64ce9c6f2937a21aa22a75354be438be867f17e71b1c9669e14fdea42918c9ba5320ae66fa35acf63c2df88610a3516ee7809f6f00103a728c11a87004adef376d691c83470e7dfeef172c1a42345268b64f30a35659f15a2a8447bf2db3ac9c6f3fcd59b2a0c20c1a1d59473315ab45b052e60b75888172707d1c18cbfa21745c2b9c155f47789be871764dc40d877cbe6e8b05c65afa728142563e7b6c4da5ba2e06c5ebd452405026a9d5c989b6e5169b91155971c6388e98a57aa965ea4ddc81222a0c9e5aa888ce29c97175e48dc3c0456cef9d98727785f8432d4e65ffd4425ec737fedb252767d44ae5bcaef4f8f32c74444d2572ab7238cc41ecfbba0b7740e4b7da9f9f0b300340a620cb99f6d38cd623527672343616fe54c1aafc39b271494e3a265ce3f2410a3c3a14d6d7c7d16dc23d6072bdf933607449381dd85feedb73588fc09510372eeb99ab9b090233df8f1adf7263c48503c143529aa94d79ffd60ebb2bbc72ef3611b7c0bd6354b7af4b28c3411acd58ef81c4b4670c7c124a865d8d03fc9a87067a3e1419001b61f5752322725dab3cbf6ba862207fe2f33b44f0e20fe8b7ffb87427ca71b2d65d4d26650c179d53e9747177c255c5afa9453d6ce16fdca0b704453ad5356e336629469b7f720b2aed0213b6c853bb426e7356356829df2e5a78e81462e7132cbcdb2f090472ee1fdb557b2a9ad17d337c838c7fa12ad301d82e88d26503a6ac05befaa2647208c63501538d5e155f6bd04e7f0fec1c547c4179a99aa45d7f60f34a51429c315047e9dcb9b8e36174bb3a07bc398d457ef4e736517821ce9007813b110262724157f17883016c66581c33f64f78998b2534950147500f4c0f31e66959edb446efe99b05a96ddce27276873cb593ca008fa7a6e82a1017af19f0232802917f02679fa7ed38bade46303f54124be475b3755cae4ebfafd532305e4fa1cc861d7257905b5816f179dabada52ca384f2adcb3a96005fc38487ffeca2cd10810db72a8342aff32b34a0d3e8ad50a010640eb8314ef1b33d45118a52ef126c30f4f728d7b6566b9774b621cfd51a5d0b2dc5ce2d8bc4d4faf02e24e48754e8ff6247257fdc11746f2ed6de4cd130d0e366ced3b5856f456fae499cbf5107d3188e27217e8c0bea5859bff8ed34c58627a7364c115980fab925daae42cb8bc9dd4774d2dbbce44a91a5422be23221e633cd21f95b1b78a50989aa48b61749df5602d72f146b6a484e35203831cc7ca09a6c59fef09112d8a01c705e85a1d61f2f6d3721703f90d4b30fa0dcced2e2cc1d080ba3d442f66f9d1e34544b5678bf657460d548dc18a10cc8eb344ba9035636fd9cbc10dce2a634a34ffcdb8e0ce5a796172a6df555a09307146a4a28a93aa926724da026b58b9f12363c9dfe394ca4a9072188f3f81af04f68e34d4bf6a9f6584dc9be15559fff91ec903741436817b5b61b5ced415779b120060f2c614acb074d25e1b25a6b91cb3188c9f8af1d25f5123f4a8b5f3376a39ed4d32e0500f508e54134d1f6b1ef9dd865866781283f74a72eec230bd1e097e97a39f61b86e0d7247957b444fae628fe33b1ae06cc572c772c70055f4c9f707b94aef3a3268e9dea88d7b06ae6b19e4177f25c4f08dcea0729df3acd727341b65e26069ff8ecc9a84d072e018bf70d506c8083b2fc8e9ff725458c90ee41e710198896b20e728599aa8aafbc1e0c1ef4959fe051be0feba72dda0ab7002ef9e0131e18788bc64c6fd1a7722d0a00a4d26a5c95425ca3a5d72d12726811b23ba5ac0e9218ccaa8a39b59ef267137d9e801abbea6e7063830193ad38d667b7096a948a354a8a2387d14ca599844eb18308bd78bacb3ad09075ead773f5252f40a9167f670bf0be81f6a506b4cdda69f77f33045780398464a724a4de2eca2056e0143017f0aaa5ad2d5d9b05af027f8d9a2ca5d0b747c505544fe5484bce0916edcae94db5c954e5603bb404beb985491694d7e77782a90c97297687f6d8ecc5f2ba98c67c7bdf5bb5f59ab6d3f9d730c24b75b58ae02bbb95581319118bedc1e96d32546ec6e076ea280d27f59ddf202af393a94fb8239a15f7578ea242792b84c49e07b0aafb961dcbae1333f2d950cd21de87e5bb7584072b78cd288630d350bdd351bbca38b092896aef3eced50ccd97e9ad653e6dce772f514265031cf6586f956f2014aa879eb2b76fac911f0b30384b74c32df082a72bb9aa6560ee324e33d57cb4ff728c52541f9694edcbb411e70d3f305412b01728b9b4319d462d26438741291adb1bb0c6ed3482a227148f257ff153807f28f7237360fc4f29e8096c9108677f89a389c9efce9c1f107a6621a6d4b22c3eb497263e4709781d1f9675232ff0214bfe4d3f8b25fcc8b47bf9e3e33b3a7ec6c137204d8302f2c796f0c9c87ebc000b6e5538da4cb6374a6743c275ede79bb19ae68129b4ee50f4038322f39adb4ea38333b803bb69e96a1ec60e15d28789bef2256eb6e70c9f1edb4a8715912cd2e5c6150ed2230876cd9e47706576e24fa561d63e0cb90c755f7e065e24ad216b126c142829a4e68ebe949174eded2c00f39754b77ac8e98f1f5b8f2116935d3e4bf346bbf78cd33a5ff1d84453804bb07ba5c72c7a26932149bf37c1996abe4202444addf5028009117c88923354213179ff006f7ab41c3a71b99c5674ba276f533110e20dd8263dcf693c9b64b3f4bf0a28b723000a51d11d25502bede1f8f725645173f6ac896e4a4e42f33987e88c1f356729b5862da2501f7206f2292621ede9b70f8a286d4fa2347949e8686a6c1f9602363c2d4e994d05b54482d40ec380abaa3f9c1871926dd35f37202c44878841872badbc629497293b64f2afae47af2361c8d559db3f95c8e8afde70554527f907201affad0e8ff88c876274d3be9779798f34126d032e26f33003230d35e7e56723b8ad0423297ca713323c84ee0b7d60b7ff6eeea747f0babccf439899206ce72d6558ab974121506bd37d3b0595d738e01fdc1ff0ea1ed03e0d7015d4c573f2e3db2ef534a410ff24ea0b227919ba4f18502c65c1e726098960d96f74012227270e6d9bdc8edbf3f29e8423fa2ac8d81032fdf9bba84699438ff0c0b5c9069722627d02bb6142fd8d2cdee57afb6a88afc68a9c2b05ab7bc547fbb6c40babe1daffddac9885146cc095ba5710fc7ac04d0623aa682dce02c8ec6dd46e718b572d22eaa74d5fab0971f9ad50bd6959399e0df6c8a20afbd04f7a1ada1db5cff72e930e638528517e13f0882df73bbfccea6327a5114148ccfd05860be2e8c057219a368f3595d3f49671a56e05fb279ad247fa3c0c3c0c6e56c8bd97ea3236172addc815c531fe298d7c25dd55625f002533ca1980bb2a7ca7af0c447bfda81725a3b25fc9eeccc15c72a83db55fc351e2c2fe3881e5189acbc1101433f2f8472d327530d7c7569dbecf2edbaf8ec98aebee719bdd2f4accf34c2155ddbfbfe72da7567789b52717b1de1229fc3e7a96530da2e554403aaf241d3036bdcbbee06ade44caf55793e18646394897a48ad0215c9d41062b431ba7a786b8430349272948ebdf2cf946c3e15e352e06e89de22e94db124353091e6e4bb356917f73316317525084e446544fa7fb14945ef53a900324479b796d4f0e38f40970a9ff7720e116d8e563b44d821a813ce1ec9e183b51fefa8e4043f96dcd5a56f0da4ed403e37a9186ee03762ba885453cf18063dbbc84b4df0055039107a162f44d1b972ffb157001a03e90548b0399e3b7a823ed00b5087679bd50afd8fc73476fead72af018ca1e2d44f5c94fc1fb052aafdc1d50574b8e928363d49a78dd1d6d2633d5f97b1a07cf9703bd3ecdcb222b65824e24c434df329d4107b5a867f57d60171311128ed6dd5e13ac5aa591da3feb47292136853379f47390a4284963a4221468eb4f9ce3c8f9c9e538e5a17b0e471d750322807e7145407a378ab1b9ae754532f4e4eeb374e66aa4b90268931cd72caa8f7d16cc509ebe37d5eb8f24c9e2c60020a9cf145bd353b115256aabddc95cd2d9ae6c45e064e3ca3e5abd34cb70229ba991738e7cb0b49bed2566a0ca1961c12e2ccdfa9a2d2ad977de61720b85b2b2588f1dfb3719ece2231fc2c7c4d4edaa41e612af156f0b59f3b21bfaa30fc72b2c20d95308a01a69766b130263564254ccc6f51fb3e3f35dddad1e088b70315ad374610e1b9114be9b6d6a8ad3028781b504f363585ab86d7a0fa04f7dba772be5a088a858fc333feb3b61bf3b7786f3c092fc5007360c33da69ecb6256d66df64cf446a91d5067f2924ee1449f16da26894a2e422e255e7a3286094f4c617216c00fd9908508e028bfb7ba60c0dec6a1d00b11cfaa71d922b55a5417d1c372813ca80c800612c59505da0cc1682490bb3db1f44574876e7b3151069db6d869fa058d22a0cc33b2ed50cade3e7e7ab115673c98ec0a69c496988a6b52cf732d6ed20e8e93e0e0345d07b55313ed832d5e24899d8e7474c0777b2a3504fd8572fed420b0848993d034b27dbcb8e4b9ace286dc3cf6d74004513228c2f7b4e30986e5463b818c53be62a67a43322cf31cb05d8e82e30a60c97ae7b6f633b7ef41958981301f41db2a62cd8cb623f9d4e5ec8440c7c97dc9f00bebe89dcca232728e16e3ad5b154d60f272ee32f6d6ab7d95fdd5bd0f9e22b5c7023df972a29f72f6f947c0de5f11aa067333b2c14530fc751a4870fac2001b1b3650c1db695521d70385281f81b050236d01fd32bc5515a485d3fc7a3775da41a063d0f7bfd3722f46dc43abadaad2785311bfdfe67e3365dc5e8c2a36a697b4acd539aeef147288bad98ccc27a7f076502ecc4467d260f941a4bef0f2caa8007518238c658e7205ac9ea895f96b2043a97c61e5720ccd323463c1ef39fe60fb86801572307f5f76b9cc8e65ec514c253b6792f94c1efee44c27d0fc23f3dd8111c4dea16ed372fbc573fa40ce721bc3ef5a49d2e1b89096e30c2174f326d69ba1ebceb11eac72b2aae67c2d205b6bb0654f8823a680faa1a1dd7bf3827b257b98abbb3e5dad7227d7c5deebef55b51bd051ed3cf5e6528d1690cf04b30af3f9bb796bcd6f611df6eaaaffb9f5c7581d6d1a20730e62a730c90ef355e05a6d93a41ec4d7d76672a31ccbedcf1ddb6a1635b9489a54b884ddd2cb1686b21b99ad52e3015e0a4855a3c35d2f7078739842027bdcca0089bdacc93b7c35c23ea57287bac2a0df95721c8a6c318fa8d962eb411d23d8f770106e7daa881588f804291b71b521c98708bb351f9f884ddb19b28794057cbca1e3d969be8f213774556a085ee2a9e15d72b140be59df9adcb946a8933e386ba99b53af5d5df61a868e8b510f9b3dbd967226df7b05bde21e150ea7f704a8c20d790985abfbc284414322931631d5344455d815116202a985f1601e4bd75691e1a1e1b5480bd86f756d0ffe41b023101b4b425781293cdc091fb8e6889499ca9c0f677b90024efdf69ca6d377aa16845c4b93fd6d9004cd899e478aa8b59d57705eae171cb8d36472d694ec0a50accbc76b3c9015cb14d08add176b6d4cabc6ac7bd4bca209be9bbaed28ed327c85222c726a60e987a26ec2fc747d7df21c34638744bb613362ff1f890692b7a696ddae729a66a7bbe097d696de161216007f63768d72230b57c82b34baa35931196fe163e73638bc5b6c95f60e3f4791d85b7ae24a970af206d6ee6e015e9ac61ffa7f3ba557e8da04b31ae7cab4c8448b464bc509f540e75124ca97a3c8aa14acc34c4afee7c4c326394ae8d5298c76d54516bab9c3467c1eccf947e491b130d0f7aa7262f0274df2ab657969fed9627fc3c2b02b42bd0892d89b6a575087dca37bd172cddf65a59dd924bb1548fb53a52af8a6e0866b0db04186d43e99df0fef811072fdf5151b55da992f2093ce03e68c3da65f6f85e5e3118c499bf8c0e6689ad972bdb9c7092962748d2c946b1117335f72392f3c792cea7044ca45c30c4dc6e572200f22c4eb34e1675069ef98a8dd17fcda1269f4613fde7649c543928b8e1c35b5d410f0cf468143f962f0d514a0f6ca6d197d8377ae41e6d9100613642e0172ab7374142b9f3a504b0b734c27aeb640148b656995c2e982696f9e4123ed4572a8ae91bfe670841a0899c5a3d7def912da5a14ae0d3d759f719ddde14d988b5875a0fc5b6fdd952ccc2f3a18cce9b3c20dd346c0061ccb12c1b44ac7b045f028cad896013772555e36912edc4c3ddbb8073636841972581f47d204bcd6f94a5d4f2aaa9d6a6d9a5462415be12a96f586205a913b4bf2ff56f917ba8089a70272575c1c36d84a7bab921b9ba24322dbd87f0189a7969ff185ded6db9aa29eea72dde19a6bdfff2a5e5f92d5eb6ce1b6aa934948800c37f6cdfa839ff3405cb372830a285344337d6ffe6f0780e6ee635b8ffe87f47879a64503557fa429ed7d2ddfc495a68843296b1c3bede94393f5b0d57f71cb64cb64e1e97e5d26ffdc893a9d55cead605153ae677d57772272120a3672e1bd629e6458e674704a4d28f17253db2c9ffe5f970eaec2cc2607f8b536ff773c5692e4963d979e7f95c5521272f8f466e9dd4db6d90a48303001952ca7d48f86aa236ae4043176fe169d8f017283a8c75536a5ba83c75d0458f4e8887e4e2c6194bfb056549e5a14f154252c721453b456b90e42042d1dc6fb509a44bad603a6de78b99297c61491621b728d72244c9cecf19b6bac5e3346f0b4fcf93612ac27f2e0660b5d43afa81a6928c272d5ac90966812316a187621d3fe9b38cec33b68c93c89f40485be75d80f0637615ad3497340a170240c33183839e67b8f07e9be2c806837a3ce8e618d22729f72e8e999345941383027623df7e38dcb3b833e4d25243c54ef881defa8ecae4d70687c319f63537cbfe2930e147e3e424b6f7887c0d8cc1a1160ca1a9b5c593672b3210120eb41cd1dcc86064ba560d2879a74cc80cf1e8c0b2038e32992b5ea72d9bf56d59d72a705cb23225956a3547f4106bac76c5e321485214ca968ac522d5a3d4decc7ed35f714255ad099ce22e462b0976c04e5d3da2f3341f7cada697282501bfa92800188bcb9fb01f846645102f567b20a6eec4db43e1dafad85b8722117a8ad94ee1d9f371912d062542f594107ca9f21108e2c0cb04f1acceef90561c8d59331f9e56c462b74e3a483b64bd2db16e2c7d1a5ccfb1b0629ec35296706be582e24a8cb8227e6978afb6ccb6c8aa51b33361b32986884b81e6c140f63da597c5f082284be12e627d1f5bde91e1612e9f0ed98fc6ab89b561b989bbe32e54e7c2af6252bb9b9614b0ee7bf7f1eaa520674d93bc4a3040281696e1cf9727dfca423c4dac4db6f0a278273179625bfd71d845b46b95eb10aeeefeaadb272573fb68b7cf24c80a90a4b810f27da3ba6ad2c506455a1d16315bbcb37c2c371c6cfdd092c6c1a8880c5457305b72b53451132edc584c3e25c4ec606682ab5725c742024aa29da05cf3a7ca629c6829c6c3bbae86f5292d4fbf4213d15497c7271aa9ae6895fabe93a13116dcc9e6e934864812a8f6d1467ca61b87d137414725f5d7ead3a47f28ab2b24bac79e56f906c8233245fe793771fca41738cf11f7266a7cf01f05c39e0c1dacab06ef56d203898a4e217a6624beda485d62b3b4f72a0be8e35e1b423ebc6cfb1fb533cdbf18f219a2251f372acba54d4b27c36f872239eb04b9ce898075f7d22013a5b0c166d3492c984da6f498ffcc519fa70fb713aefa16d7ac0e7906932d15b31dbf8ea6aa9648472d49b25f57b467d69378e72539a710672e2b41c73369f1a7f9048eefaed399f005c3d179126081c22fc8f723ad303031feaaf1bf3867265b2566ce38f24b0c1be3e2d233bc6fdd49b56e40657605d2e8f8f03457c8ec7f82c8c3a5c48dc7a5e367d07c861a054463397c73385ca255a4733ce25d1ba22771a6b3ec0449ab824c5eae87148f7ca42f5a01d13650273081fa782420e8caae2b346ce9db51f970b29d1df1a7cb0325a82a3ab27c1a8bee1b5ec502b8cddc0e81ca6091594c21a169e3f7a67728813458d075a72b62e0cc5d005f877f73d87bae96e6f3a045a710f8ed28289b82d2d1d2b3af4729e5ea74713a28aec9abfb180ccf3e518e8a8543bddde59d87524551979cee972e9ecb1a8a1323504cd17a7b64b98a5076706e414e5eaf83bf7768725b2518910a9b175c316090ff7e1224cf64e627097929302a6af86e0aeef85f2b2bd09b472d06ee4c8a004527ea640b109180aed39bc4741ea9251436c6e06ce484b259e72f5eb74e628398ee0b2810dd51ac887995943791a4816bfd8c7b5297b7d1aa972d504a06bee74f7b319e5e358ea740640e9663f64d94ea6d3f6ae3808ed425672b26beb94c2a0479539160d22c3268339319caa1697e877906441204cfd324e20cf48f99ab62544115902eddf3470289f9ec6e0b671ded91d5f79b363c133c0724cf95088245dc5c8f58e475ba9db0cd8d94d3c4e77ebb16c6f8409eec8e369724d1abb756fde02aa169dd0122bc05778e523115ef6af4512d9b892dd84018a6c3d140e8d9235e72b88eb58c999d26557df40cef1d794001771c29fa77de01d1fbe446b67214f58bbc24ddf4535adc14ece268cc039f923a507a7a780c39edf72c67139e5f2a0468e9cfc22c9c58a5615bc4be95cde369414814c75d1fefe5972d8e4f72c4afbbec475ac38d7adea97f29f16d3997fe0d62b4a631408d996d961bf23e8da081d5e1c8fef7632b07abf2f8ac3b296fab204fc3aa74b0ba9dad3720f84fc3a9b043189e76f160b730b4c3685b7e3f24c30051ac095248444fe0727e5d76ca1d0416d6ef6213da87c9d5db50130e71b4eca12913c57d6934dfd5372202d70ef3f5f11dc3abf0256ef2259adb83da80458477162c4394ba02899f44dcf6d25f3ab7a3fd7679139a69c23a1a95059169aa3a7e1176c2b12f6ee5215727c10526056c4cad112da123ad2d1e2d2b46c950ce9835aa561880bb996881772e94427baa61ae518af04a328954d7557c02b3e1f744e84bd145a86c382498e5a0e3754ab18afd76f55cb4d78f4e8b941b4bd55dfd8131d2a461b5aaca07cf734296cc01aea56a981fa9752b90e1b8304cdef81610d0c5e697ecc438cab65e772f0fef9d6848333a2e50b21705e5369a71dc4a975f0f55af29a44384fc1453c724c5866766dc8de304d11f50fa96e88762bc1236e843e6c7bcfc763c2d128b572a89cc8bef59860647342ae489980714b7688978667109041e91310f5764fa4725df8b3973761239d87edda3c3ebff81e0105b645a5a385a6a6480fedbf980f7239aaee1ef9241d972256dd421a52983c80df28f28232d70cf829a9772d82903b90d77b57bf6e77aa73657078db3bc3607123dac1288e8a9a815a6d01d2d60d728e9f36340957e00cb01405bdb812c26faeaba09dce1683a7a177e1ad9ecb4a38483f22d840db1a23b328e0d4b2c7f46a7264a9d96b1e26229f4c2b23e5962e725e3767a357214a6a5ec95a08cc666be277fbce5d55df900a4834f72f4a8ab803a9d3baad031b739637b2b56acef02aae54bfa1f9089ea0008d31ea87259b72685ca87b0146823d7688fd6b2d3c5474f34b53e7c4e4329e4bed54364da36c245aa18a4b02ae6d91ac3b126c937935d9bf119da06ff90b41ad92ab9fc0876e1b030f9534b7a92f9a845c08f2537885949be2aa1a3ff83e59a50f4364077e31a272d84b002e73467eb551eae130286672ad522cae758fea385cd6574e3be84949726b0960831b1b9ccab61b67fc14fc9100b3e1f9e8a6c485fd57c59864beb7783cda608ede6ed11d5398c21f85b7e749852ea083308ce65d999cf3eb2ff34414725e65c9a40ad1633b62950b0c920d65916fce3ce7e7d7d99b123af9d90e92066fa653a934ff03775b64a2a54b7d88a8be5239a42ba4382eaf77963ca01e36cc6ec797a18772f5922a27c4360182f67b3444d035018dda549975e6f694a371111341f927c1ad3ca82f7e3b3aa9419fd43c1040f5d18702a88646f47e45650c4172b1d56a6414283572ed0f79b71fad0676e03df61b21b3c3da65de9cfe6545d07249c67cf9cd20782c19bc831c828dafc97d30ef718bdfbd36ec91543da090ec72987b2c2ea950b339f36d71ff8573ed331018f9e60638195440d189ca05836c720dfa54bca13ba39b2584e1a6641c61bce34482b89dbc92bc3746277ae92fd72c20c00a87ac02e8f68afd1f83dd3f161ae5f20abd29139e7ab952af8d06298672279865d9cda68bb32ff33104d295b0d1e6d4a2aa81e159bcc876c36c0946365e67d745ddf6f80bec35f6625ed8f120dab2901b239d06d72c99cc9d60fcd59072f6d56123c2db5e1101d00864d00b369ac2619dc196669f1f5f642f967c90a0729bf455a5b03b64fb7f67a88b2c3f221ac7a59099f87ababfbc9546219fc14e7297ea4cbab48ea6224f744068b342cb65d0f858d2395d2b10d783e648a41ad67223519760dd5ee8946901ba53b22ff43270ceb9900b9a9c41b6396e9031827172c4a13a310a542769ff37de967d5618756f5f709f717a1d806d3767842f6eb772de4e25fd22a1c1689088c176bcb6dc9b903f35118e5c7800155e07ef79e2cc72dcecd645b41bc47fb183103895cc92f90ffce30dd452515a6e21ef7f2bf12854739aba274c52a3a37ecc76aceaaaa67447cbe03622cfb4d1388f273ca7803c72c05a0c1f95d4794fc7b440e7d9155f2d9fbcea93e75b61d55a9af5755a4ecf72df7625b289ba7b27a70978ad52270a5df35c06d77725a74eaf9370469dc5e566a12458fa9c5eb6260cadf94e4ac2d0668ee58a013ec66f239a9851c5742fd372f466e7ad8e2df72e491b4ed5b6cec4c1b98d7075f3fbafae893b7d298c33bb72c9fa8311edae73d6fb837b3edd4f6691178475bb3a33532ccb4c0b64c095cc725d6efb89414cb559785336aa7db3ba88e0c15a23f27aa7835c0f1f2f6d47351a82f842e3b22b6b8471c6ebd2ce45836cfe869a9f308e79ad48bff32c99a3d872ae1c91786a8e8205ff801f5accc5673053d48f6df46d2cd9fd4691bbca279d727e63c8a64d89029c080265b1d09d636852ace09a5b7f56c604f80a1724f2b0519456b71e3fe192bb19a149e3278c854d64ac2848f19a5a9587b073f1b5a545126131cffc9e87d2bef3a9ba1ad071ea56b1600e71a4f2837d7197eae212f09d5f8eabca5ee574d6243c186a4b5d9e14800fd6b7e74a766b897846a0fa164e452491829a19b49e586c08b224ac51c4dc78259f80c0e1227fa22ccc0724057398729a8b4af17e7c6f58cee9eb9475dd75d85b2e10d817bc21be4dcca83defb2b22ece33026b5e6eb9832ff19f05b6aadd9194ae1e2918f99cf214c489251d8fdb72b12138e4574fce4559c00aecaea77393a86aab54326714e1d9ad60a77125c572f6cb05ef53e4a0659633ed48757f782686889784e77d77ae87de3050f47fa472ce2d5b4f3f91c952546492234d9ba489a4e0f5ebb6b8344a8e346af6d8f9e9720af28e4ffa6c53145cb570a20e08741b569a1b1848098c3947737140955c2d72ae2ec0bab6dd8b9109f57a006afc5a1f7177ee63baa2be4091cc85b4f402fc58ee4d7b6545fddce8d9e947584673c5b4db6769a4e594ec7d3efb12dd7c156872c19874cfdc4c0fc55c777ebf32f6cb2b5ab8298bb906445037009bc22566547208447c44af9761aca8aed5484ad443924e46ff081c816f5854c5d20f11fedb7250b49935e38b50ce12db03bf0eca496f54665c4794ea3f4cb5e321b9d74be37279f4d8f8e8012ee533a9d8492311b40b61be10ab1a2023a23804d3dc51fda872044788d24129b06415bd551954f9b83ba6efa7958416f263a6ba770632927672ef9717cb7ea1bbc3fbd6d624867d1a2cc5e9e1a054c7e69876d51188f350a043dd371f13e1b315e22903fdfb3d80c16809683503f626be691ad85cbe4a283c723b03c0dadf9da4d112025c0fa48b8e2f73c5b0ea9434e5fa78b30bb84066747296716658235ee9d11bf0026fbc802c957fc92d5d073e922ee9a9e90297e253598f4c8275a58dbc0bd727d6815d3c92db7d5b6ff566f415a555b4ce8d56f0895efdca7507e555ffeaa996695f53afb1ddbc41f6994a0923b340cdb47da9b6c272725b40cd92d84e28af744808927671bfac7639edb7ebb70f2b9394b5850dd472b9650ab4f37c47800cfc5dab8339b6c6b27bc50bba470702577bffa3e184aa72c03741130ea14173c1334e632f8c5a0969249121eea421627767a86356b26e72f958a4c43964b5e3b191631829addc5b3e8c37404d8bb92653821de1b9b1c04caa72c47ea2fcde002ce1c6c1c9910f32f71ebf6552c90848dd764ccc8ad191722ffe0d667198f201e41a502b2b73c7fed89dd033444661f7c51f05c29133802f2118013ed3b0119fb1658d32cf927cdefb4f9f23288f7e9c1a4a1d407a14f53f4c63d0481f4f6629855d08125941ce8f20d1c26bbbed8b09782a694dfc2c6c7222b22d05e0aa1f23d1533994db99fff55f581329585f7d8cfb61b79a986a6e7239bc3405d765dd3d3c3f25c6c14f198e499c138cf7cfa85498b19c2428651a7277848d4dc9b588049133ad825ebb6abd84cdf045f3a3bba2000d1607bfde2072d0ac0610373dda9ea78eb755eca239d48cf0207428d94041fd35596169c2773c9350bbd11b3a4a709d31f1420e9c38ffc8a949c404bfe22b2411012bd50b7272163cbba397291cdd4c472a67804795807a93df009600553e7889ce0bdb522c0460cdf125c90b5c12134c4012368fe27fc55d9c7c7960a6534e7d96aa93d034350881aaf51653bb227e22e2ffe4485d0917910e2460ee2e6a86e106ce12b12c65d9fbc313d956b382c610c24cb5bc444b4d6bb5766ad132235955e83dea3b8e722da8e9efc0e5e249649b267bfc572a23e93f424862222fc72b4aa1c21c27a01abd70566de1426263e4d2c5d9d2233d4d75d32986bd9a139916be27194a98ea4480dc3d90413545070d67326456ea3b7a811a83bf1dc9da43803122959015a049424b2beac782d78de9bfec39cdfae9c46601f0a600a8f690b198535c03b6835b74b61fb425947ae4bdeb2d31fe84b0d2153cff8b0393b7f0194e0192bd300f2c4752ba7daf6bdea1282bfadcf0f9075886684154852ee4cde7d1a36ad0e2b372d4af3fabbd96738efcc60b2b09e976dfcf02c623c9de848e1db1b0321de98672ff954b2f501c97dc7b917654c89226e72202eef6cae7860069839da959b69f43b602a26eb90df3a2ebbec0f3d4b65c216fb99b08246d7ce1679bb084fc9b1a7270e46d936eaf98507934f09fc0405b9f49ff6b4fc04c5bdebf1812f75d132309c6c95e3018bbd81c9fbf84e56a35506c51b747af490dd9a84708282c85395a66204504291b319d0a468f78f87306c231a7e4adfae824cb9dd1c5c6049b2787728c0451f7a701a7bf02eabf5582bb752659d8b17ab47ea76e9e5a8d8378e88847b2f699391c417a2497fa9376acad677a24ec1742b03705403618fff333ded572bc0fdcd3660a4ccda7e076e2bc4da31dafb7bbc228f4a32665010f32202960121ca4af76191579128b39c487ed9a55e0f6e953e49d497b7062e0e855e35eba5f834ac5139af119412f5d70f81cbc285eaa6e9ad2d3c2ca28a5023b94ae1b911d0c5c9be8e5d907fabc0e7db00b0c722cc882b627cd4805b01598b814d1144572800486d9e8d4873d8ab8f06d7c0b3eb3b113cfc4024e3841c9326a220ec57c727e0a5a2e4608aaea045ac658c9ca34203b1ba6f1a907e71723d609c174c4e3400ee2b5df1f24ae426519b0cab68ec7ba3738b323984fa990ccafda395f0e957275d90d83ac6c67328ea4117dd826f8d732f5841c62b396e1fbf66e9f6d627d189f6337315b987814450e35c52c649b6e3bfc2e300646ecb1d60b0c6d293a166390e106e90e58298fb13574c3cdc3085d476c798308fd5786634985d1317f9872fa1b863408612a8ba523b289455796802f451596147350b71a72d0f098b4067213a4c21b598cb9225bab9360ee3a080d1e1c6b74ba0c9a9702de9a234116da4383ee02ae8378f02add9572babfbc10db5da06ca394e94258c89190d8f3248e1092b9683a3a37d48d18b839630294f01f5dcbb62eb4eace220013042f1bb08a41b523a45cacad166eed72b3f65e5ac755b9df87229b04921f84f0560109e66e7036feadce1ff8b8bc301855b6a7490f99ac4c75c1fefd6a2d4f364561a7ee187257ff1d936dc73ed7d9e2252a8ec3a197ee5467c9ad8ffc142588231c0e893f027e556dbf02d9690c97201d210c40dc9cddf3129b2ed7855b65fc85dfe043747207a27367f72bbf26dd3c958e08d25afc3c374e4cf813da39982fda82bb027872e8ecc2875326fefdfefa1011f9ba2ac2f06df78b3216aecd150f5a2820dde95b7ed7c374a5ec28269d0366690667dda0250ec18118cf93e2b12dc4f6a67907720c87af1d760345d42d1b508fd7e7023daaaa50d690e8a5b95ccd0367581a18721ef4c62b98d5ef73d6db02c25642fafe23bddb951dabc2d50d0ec1409456f072128d625126713e0cd20c0e9eb1c4ffc56ae42bab37c138290c16caaba20c6c727d4f24ec06b6a78699b0b2f42c06f66eb2c4558138c751538e3034e8995279727b43aa8a2e5efb3cd167697b39735bf981b3dfe404321e7666234276fd1dd9723aaf283f7912972e0cf72c92373d1adf1608224316a0395cf6ca6aa78639c33aef8e9f3480f7c372fec7e9693cba5a3e81fae2acadd819093471b396e19e93004c64cc680e6edc508c0ad2e1c5c406e80f4e5a4b3a62a35e1be0eb32b083f41c147495a838878dcfaeca6dac5800bcd6f7e7454b472253b23b79195d6a1106176aa22e0a6392f22f15cb245623dc15efff3120a017d83f39e6de2b2b483cb852e3f15ca774887f61d563096f218a7285c0699427de7e99e497272d0fd585d872dce9eb09fff5d2415e60174a9e161de70dc5abaa9fe5f08a6d5ce072b1dd0c7286b1f2f9a66a784a9ee185662d44be4df7887269fad906c3615e15db6d4b5e22cf3a401107b948a676d1f235a923562d77706f61ba2b7d3b4beea19a5c0fb81b6dad94b3cd59a9f53c32a9f95e2a16591b843bc65ae77037795c235cdd35a91adfa7b446018963b2b42972ccfbb56c9dc1b3608df27d854a0b6114f6ba302e727756cd731bc25f180fcf1368437f3caad20f3ca951d240cdb340bcdd67700e725adc32bef268a78df7dcf6c5d140ad1df23d29cabb11131a82e2c0c900500f727b0872971be9910c13e0fd015c2d5dd45e1150b79a3cbcd9e61d15ed8d81335a629504546d8b99d29e0bc8bd55fa7f829a528c50ebc0097edb797723a2b17272cd6bc584b73ff608df0a53f22c4406c86fcfbde063e14d28df4ff2c01ba3141037d0ddc2981f44fce576247c007c3ad2f1d9328e10b2f24a0e5c5941faa35372ca3177de71858c1a7adade1b6ea40eb305292fc1acf4d68984257b8662a79972445c9953995e8342554c599454d8d454e7be8c4f21e1c7a2c5baccf918be4572b7fa914c3e66c0033ff474d4698ecf4a2dc19e5967433b84f97bb35aa03d8e7282179ade802a6d775e4494a4bbe11f4272bc65dd0df6446b7bc4dc11c14da572d1fe5e35aca40e542d4e7882bcd11942ff2b367a7f568c585e5cccc021b8c91c4138f045437f5fa9d0d5c895ad8b613b874c22fddda9ad46acbb55c8e10c6f5c69971fd980cf9adcdb1e8c0fc5727ba41a65cd22d5f47f34429beec9a9de9b4cbe3435911f09d200a62d9fc43e103696db79b98be22fd2e194e90b2d18570672319ef9fe3aaa8b705b7ae3fecdfe1402aef868bc2be7577c0350d638a4c10f1163ac63b1ce3d33e6fec17dbc7fbb45d70ca3222b785d8318f62132aaee8fb972d5c0ac153b3e367dd7415dbb4d5924b995d229c7621da2866b029e52cf009c729e7ecbca81f6a6909676dfa0199d89a93dab47e03356711e722f729af5d15c11a3fea86e86d4f678d9d011b857bd20bbc95456cfb0635e0cc3511566e839a46dc96492d4b7a61d76d9af9c2c7480937544517f5ca40ec39604b77640fe843c2647483611e2d68c39f6e581e161ff39eda65ea7e42562dba49ce857b8098d2072d9446199f533a61554d81ec164df1dba2645a9af3da70e4efa2b212ea630280355d896540debd46cf37769bb58c5228a230c6fbeef8eb4c43134bb746550494ec138563d013a7c407307ee476ac49339271f258260137c4ece56b2f82cac4e7293cdfddf64a462fc37cb9523c8bdf8beb386dc5fd82d835d39c8df89070e3536befb5b8517770baa324320996ac5262db50faeb619980cee14c80bc27ffcd6729f97bf906604fd2cd1db41aa7b0338d1248c310eebcb7ac6df69aa65542b7610fc0b17c58a0cf36a9758f5f83a4e079fc057172c7990f659e6be59b3806b9e3e46ecfa7af334feac9612f6ba208d3214f8cce129100cb5330198d03527c3616cd7db535af9fca207988218674fd2ad6549128c1da931ddf6da400f21d6f687010394fcfbfdf0219cf9d221bc768ae273c1cde79dfc02dba3342ed2a3dc76986ae7d2fef9a554707d973a8f848580f07e46cd97f993578a3ddac1300f3533835251d9fae2eda2118315ffa0a100c5f93ff506e29a6f6f57c48befb1cbfdfa68728090f75918d72ea9b08cb6ac123361d86b7a0e6b1c593193b4ff6cc5d7b69d72e77656d4aa3dc4762ed7831b0684b2f6a30dc4298eeb4e187009d6b12bc228727c7578d861095f858609583497b45909f06133c7e4bb67ca307a7311f95f6072e6e71546e690865b71de317a0e2014112477df9e382947fbfa0c46898a2a6a722d8e451c65afb93df4570f1f56d5326138772e80c12cdd8b9ec72c56825efe72070bebbc0e4dca2df9a024d0c6c1f8932a8e9cfc9ff650f9555991c685eab408d49377e5201cd11e85c5395edec9954e2fe907950b3202f651dcaf929da53a46703a24a29adbe61f63fc813bdebf654ffaa459cba7f4740c717b21f99bbbbb13fb2e883232c573ffcd5f35de39038c6bacb5cc119d5d3d895e708d133745e7723c1006d5a2de3c84261a33c60594284ee21c2d55fc5653a465393961b7b76556e0251f4ad3eca31461938f2c74316e8bac3a0c170392aaf64f24e93c5083bd722aea050d8200f8912efd9b5b013f715b44b70a8423dcd808b6d6dc18a7f7f32deb65afa45469800839998d18d2da963c1ffd71515f3fcec52e94308e815fc0723f0197322513cac8db2d4f4eddd531022a279a72145f6555462b94442eec66727ecf5c1f646d2cd705aa888850793b4139b611b03292ed7d65563e23016c9c7270b3bc4a486e8c8e7dae8050529162be099ddf8f92059b6d8ef23ad53e77594a82f940dea4cafc3c3ec948e1d61cf331daf31e4efec01d1069410b9daa40d072292284ed57be47f669a3dddca29a37cb3bb1b62ba9e630b1ff71b165670b046efd9faa12c6e9516ad67d0132fb53841c12642eb6cf63e79fb51e1ecebbf04e1858b57039fd01b61bb56bb1fb78a6a232c32c3e00b465dd7dcd4768f09cde554f807d78f0b9ede7bc4855c01095efc3d655488ce455aa1930212dee4d0dcb5972b498a6db92c632e3be011a3d73c3e2a2e46694bdaaca0a3ae2273a5f3ec6e037ff8c94ed61a0a8fc5f6cd6e17ca104274160df05513cc65cc755a34fbdcfa772c974b95914e307e537884c095eb680d2e8e6c435a47bd6728f0eddb556714a726c1b115da3a9ef91032d1853c079ee9a0e73922bfd14acbbb4e762157911237222c7e6be86cf0f470aa15b0e207a47eb517b1ef5bf22b3985088f1d7e00e3170c53fbe6615fc156fb5e51b7d5133a4838b01679fb7280954d8153b4d0a67293c5633b9d768160e77bb79ab5f90e4d203f63782388d7a7e0613fd80ae259ba272d739bccbbd3b655605f8cac338259045a98ceb7a9933ac8b7a183f0a5a5a7b7248943f46615d32f31fc797248300769a96493575844efd7b02ed58dfc98a7b72324c79ce53c7073c9e1c54d49ea2b1f9a5bc74f466a3dc5d90f805881a6e2772f4a96e1c7290c0b77607af4b6e766734e0c818d9e34e91956e19f8336ce44b72802505b0145820cef8b06f3ef5e2c0a744b8c2c4b27b13db1e8b27248caad272695d8cf660d9e67f0c702145dfeb447209bee7dc5c4b9703a2545cf3b4e4ea557a1ab9fa833e1a5ab0749c1fc382fd87c3e54f5baf0c0cfe6618c99aa1b63472564b32b45639407dd961c026e18239dc9446753b1570a80bfd50949e6275bb723065b99200e081859d6c565177ddb6e75b5d1d8ef8a957466e080e35f456f34b8a994c0f093637eca76a303f5def15ca82b0a13e53137e98555b7e45e0e19503e5c7de6148d97826b8a39d045fd4d0ef4bbbcc47f5d69b0e290c5c7b3afc977239003a6f4cbd779adfaf0453e4ed78eb1f701a1bf508e4ca8405317abec52872bff450ed7c49c081fcb686c05da2ad75a9b71b13cc2c8ddd1660ab7f9c6d3c140c3f08eb3954d6e2a0702a06c80938eb3eb1e865cb26a0c5a49e72075b1d035914bfd9adbd71c4079f82b8d45a776db11b5bc3d85ce85aab8cd39c5f5b2971727eec74d59240e3b42d0bd9c6f44b7fad2a9fe494c69f26a55f0368b8dba9c872eacdea674d1215b633b3daac0b3487db40ac8c52cd8c68dfc7dba36f945e430809954229ef740a5dc20bdda9b2ca3ff38e8d0721ba09c3520ede8539b4fedc712dd6da77b8e478bd2585b82e8b5ca633a30d186cad86111bd54f644374080772036705426cd7a1eef4f138ad87d2257b1c37951d79f11c1424b6a823ed92520d53855af43cc0b537968cae16164d7d82e367c77d2590aa82a0bb40b51e7c3072c6c493003bb216bfc8532ef2bf8abdd3c227dd1b3b67b8a931571a4e69ff7772453f84fe3337e75ea8939924e32c64f343e3c3bc4eefbea4b19207d9d048401a2ec10b9433a5a466b13b6a59d6bf3f6fcbdc7660777640ec6437c75d16dceb16c147920504da58c529b142ef5787a4ef4351a46570a8c5ab3ffbd3882d2928246b061ddf4309d6d7691626726f5b8949dd5dc9325e2ef42920fcbc7b11e069726fb6616f5a1c9d761f1cdbdbc06b7eae7b6aa81a12208872de7ee10ed4e65a72f5b4a21932027538ee0ca43cadae83b79fd22f4beff5fd861fff8f9c99961272a12c2bf9ba0561b75b0cdb615f5dcd517395a1495bd8680f678da8c8d509d272c95f0a166218f411d0779fc253c66634563edb0d129843c6ef53d0f582a0566237249782dc01f2d9e4f3eb239e5c318104fcabbeef264fdd6b0e62c862759b2dcadaea174ef5119bce5ec92a334f93da8abd22cdadc2c23e3179a285f6b300082d3c9fafa5f82538d41960a63fe108f1512953f97a5cf57b99827d8840637672b4a72dc44e124a2eed8ea638b776f8fe64125fbefc77b9bf59b25410e0b16f72f66d4633917977b6a83e3cb6f98d447210906c2dd4968e3873c3bf9a75544b269695dddd7544047c88a995e33c49d3883768f9d489084308ff5b3102a506dc729322618a1d8daf0c690e6d1fd62bba321a8f027d554d4616fc9f1cf5e2bdff59e2d2305c502eb1e865b329925eb30ea5cfd5d082e2ca58b8932125432767f167e557edd913f568f298a54c93da0964a6747eacfef4ed557eeb6f2b49091a07724e897ae8c39c64797289ebc1adb37b0ef472f5ca110722b1b6c4b41b0fa63f7226f35b1250137213da89280ea780b65cd3634b9e611e12e10b46e7424fea0b7259f2177c0e8f14f019c71f07b685267f8d60b78be8ede13b8fa3e6c1fb927e717c9c667b5ce7a8520024e1f9a7d09d459eadfcefaad419f868d430a16ada987213c4e2b490d726506f439bfad56a60d763a08cf6291200bb3da4c525f18940725f00b0806d049c2e86735f1f2bc3382e7e36f4b6e186ddca4c59a3cab44707724c04159196839e9c93f194f6b4bc79236eee3276664919cfecde59fbc95d4d7214de1c25089ab002881f5aec257a91fe18821f5a27e15db5ad001da56fe9e40e4d61ce048ed3270e491c44302fa4483b9ea473089fe2557f9dd47ac00993e54e052fb054190621a9664d2e4dc2cb3e2f01945c5f539d4879c175541952bf0172d46a0006982662abf6a370f425224747b0906fa6f3b782b343d48358ed033672f17ef6d45cd15a5fa47591b8c16e095b578d723fc83ec9371615969cc6d37104435f46c5c8b09b08cea4dbf431f8e200d6b0a88c7244f3dc03e1f4c92e084b721bd6e11aa8c2f9c4c1fbc7260a529721017a35717b79cae7a4ecb6a9fac3212abfdd5d6a46ec713cfce4293fa816c87f9fb0aef87562e17af978c36a5698415f6e820862c9fbbc4be1a652decaac513d5f347b95fdefd36ab1ee1fd56c21373697ab76d41d89f938841912a335a5fa5f9beaf32c8cf2980132b7e9b05c838e72f2d4f5aff71e5bf2560a2abf53f1eced79ba36ec7594931335e20b1879b60a48129de5dc121d577bce58ede0d828d112b72d217e29534619545adff6fbebcd60e3ef0bd155f9ece9999b8f727cb3d8e11d23b269099b050676c1de5119f714725b6fba2c0f4f2b0b336413c06ce4f252295f487ce8fae25676c86347355a7d50c3cccb812add48b59dda55c8178bcdb9871ffdeb3c0dbce8a21c3675febe302379d8827788b002157efc2aab7b2976884b4ffe4cb9ba04e6fc1fa1842e617a72b8c64ee82726111c62fa442f8f4573825db40eb44c17385fd111de2a6d83374503da764563ac27f0a21dd314d6733aee22ad21e61fd2d06833db296a82225872b9edde524c1e6a78131379239bba6802c9621e93e1b01fdd5aa9bb49700f3d723b616b90200f536883792232075f1641165d73732c8432b96371caf5447f5272543a9c4c4152af4db17d9a2552fdf0155f4b1ce90555fc972a90ac20e15d7351faa72bc4bcf0dbae8b4a12ec4fedb9810d1212f0668e6557f3f0ef824317197261433da74c747c724ed45675908866b21ede40a26755426bc0da276c0a3ff2723edc336bb861ad1611211eb092e957a9505f98ee7f4304d10beaf91f854ac00be64d9e5f23691362cf8e09fc79d0b9c3760f8a4ebe9fbb3506802e3b93e4e2179f75547efba5c61a0e048ccdcaeb2b3d54a65ddfe1223669456ee33115f26c7220ee64bc47a346d0440201aefa9af5c439f4d94264dd3c72dbc71d418fabbc72b52950b0a9d7f704f0efb0b444623138623a0761238d2fa63bd5532080cd8172f7d1e6dc00867ed3a31ab6aac38b953f06d4b2ad8b8d4e581d93594f21fb687227975e0690d22d5d1fb4d1cb16d33046d50c55c6f50e2e3e204639e5344c8c72828c3ce4067ac73c83edb61573b8e42bd4baf0e316463e8881da4eec5196010c9c0d5dfe54fae1cca167025b62ccbe5d0f69e8f1a93d19f0b48862ea7b9965728ea0054f24d426223f3560d778a493bc49a20054455966e68cc67ce44faee8720d9cb3695993af069824d9fe5b989b25f74e6ed913b82996a4bd069bcbf5ce7236f6a4985cac3620381b7c4d239ba6c1ab1828cd1c4f400ba4db7a5a25474f726c120ab86455390e689fe3a3dcb4c24b3f4200eed6ce923bf2453de17f230d000cb328b18ed58d92f27b2fd24426ca19ef86e7a303cbdf30ae2c6c55e1a884729903df7ce0a9df710d268684208ae940697397563043b05bbeea29022556e96a4a2b8c7cffcf29941fa245de8369fa78d8c18c715ee4876ce44651e862f93842c719aa8c54d30e3297906594d1832044d39a4b2f0e3ceb13c3fdcca492db3972c2957b6511ed8280837a1843aed492fdbf25f9eab5ad8d7b895e8352da88fa0e44da9371b216773706ed8e357e5c9cb2b91878864114fcfb2292f747650f247248f00de53fbe5b540e20bfb15448259ebd7b4f5cf3ce8156ad01afdb376ee9720b6df116458f88f1375d917cce38761ca284d792a0be505660f9d7f66a499f72f62df0678fbbb9f35b86d3814ae3d4be786b7bbda9ef623ca8e6634c309c14724c171259149f452930ec7a2a78eafa64f24d98ba09d911a6ffeb58e61be95f563ce3bec88ca93f8b87515d3ef795716d2687b15af157e47c907e8fd82feb0272c213c729bfe63847f4b810760ebc59a7f1e445284b748b9d5a65d35664023d725b49bd78f31049673a89e4c8902b8d67a47341aa6e0904558b9bad69d045ed6b090bd1f694c538ab4083a7a01428bdf9ffb02a177b89ac454b95e928bfabee72d995a4ea331298e3fc7d27cab57ff632722064fbac901e2eaabc65042958324eb88c023b1d92f431453c126a275b24f5f87c262dbf315f96a5fc3ba4cea08372dc167e66b26511dcee2c1b03c2fa7a28cd43bf547dd54b14891ee6fc98db517203604b3cf6ac41d2716e00c1890220aea7d7987d2bf09c49f400464410921005651412420c813fceec1492b159f2b7f6101fd9f99cf43f25c30621ef8e75e072c96b337c5450abac715c09c9b17802b37673d37f8c0b398128f79e463aff3f729d47390f777fc3af50039deb5689342b59144cacadbdb1f3c12b9eb3e2554264d53c33ddf64e1684a5f6bc181386f837dd4c9475135e6d121a5f3c31fcbbb52bf38a3dc3eef262677723dfbd7a7d6b44abb5df861ca830038e165a3d0235544ac28dd2840fa4189f31305063220e65358b0f17ee93d07e32888a5bae1c134864af4ea72dd9efd560b9b5c120dfd048288886be69f9c2ff9c8d9820b229b64322cbcd468e61fdc10a39e3dcbcfce41c64adf42d8ad900ca979f4bb5dd8e526872dc87166107f06061a0ead1e1a7f999e45d44bf126d889e8490c2cd2eb37b9e72caedda7f27300f9e59976549dc71fe5495d458c00ef5386b09217084020a8372d40b8531020a65e0632e69497dc1d31d743ab65acf0d4232f424131cac2b55726ac5beb96c0f5eaa9967df3bd08563f69423bbf04b7aa9af9235b6433444477204e741048addf63c4ecff8705a912e27eae99892b63d250347fa70e00cfe9837edc9e875d2417afd092e93030912821a70d67b49b9e77d29aba8651cde4a50721685007f8ea41c5bd441d95f3e8808ad889e1924ca867260eef077917eb896242d175ea16082836ea1879474d0ab84117185a07613775f333021bceb5892d8630f1a247c158c7c09cbd51f9bbe0296226f7b020a1384269306c7bb1416e4010f8e91244d891389c61b8fbc57c1b931c54fbf9ff40909698e7b5d040b46037172b3ee5a21d17ebfff75c07ba084cf02463d762c4f9a3bcef9f59109566734e5720d68460c7ed72711decc44143c6de7863b073cb1e44a7950ab4729eb6b3dd3727d27ef3709801597aa9edfbc88e55b323773be8b96b565c516adff6907bdd45c6f0354c200ffa340e2107a7d8335d4c71af51c960d1c2c45e9c2f36ea4fd08728d7d9393aab13cdd610dc5072d825a3e186ae42c964bb8e4a50cd29de7e04772e4f6f3ca5263ecf9efd0a97bcf859693b29eea2bf8985341e3ce7a6917a24a72d688ab1fc7c18c5d87d5bdc39361ee53d24e7c53f72faee30b33ee4661f42238e127007109359f7f798c04ae588c957955ae31337472324765187ff383fb591e17cc504fadc0341bc0e102944dc9c3cf5fec022ae33f4390a4ed38a8eb6a09681e9b2680b7e31da7b907a67fd6e2d24fd1b7ba8f1427ff156831dd84ff039d729242b149b7fd045e4f7169a79fc3f33f76f810e03d32fb71770a356b94ded16333e31d1c76a30864f7cf92ac583acf384053d51fe909538f631bbb29e9ce32726efabbc1383ccb857a0db0b458f2ac92a26bb2713814c6a13af3f8f6a37c2a720bede1cc43e95f201dbdce41481d960c2b5aefafc087c6cfadad4c274d1aee20e0ff65c722ca586563708830a6c072751381eaf02ee5441658aac913e736ca7210f4c7e2e73933822049237434b8f1d248c705fb0ec7465e016ba28040105f7235d50a60c9889e7e94c7e6d0ead3a4a7621068108a3964e209edc6ce1e69181be98888dd7e8a3699b62da86b632ff124ca0f290a9cd1e2d64dee177537671351169676f6c6013b37b464b5502c957f7ca16481cdce0674cbcaed19c8aaebae164b1ba5b5e3516665bba0867c1635295287d295108592ecd2946226a075ec49433d528d2aea6e38f8752f7ec438dd5d93839fb0f22a4562194ce0a84c4b0b6b13870f18188c0738f7f5da627f6550197484ec16197c7227161ad3a64be577e82f17740ae3890a29f73428ce8fdc3fb9f6975e1a321e416226f3f08f56fd42787267e74b7e6117714ea1319ff60211659dbe578f02393065b97d2971899acc6c252ae0196b3c4cd96e958a8044ee8e146141d15fac64672a8435e15bc34211ba72ac7f77bd0ab71abbf1af21c6aa9078ca3719f4b4cea80cd31df51d080b2a1772911de18a3e3b6c0b8fc6cb791a905ba79a37c98ef82061f2b2b2c2992245fd7272396681f27a06c7d382b32bd42c216ba6bc84bf3959841b031228afddf50372b5d99315a94a8e201ed6d1b5d50bc6d72cd6b2d9623b397c267b7188d337204815f753ad3b57ccb03239da00a42869b369159c0c8591d52c7e7c6d208cfea972b69b8444e8078e4e96f4832d2e9c349680bf7cf1aacb691dffe4c1307a380f7210a6d16ed3a88616e3897dcd72b36e22a0d9a90d25251e217f367a1bb327ab72f6f5651a08b7d585b2a12ca65b014078209cee0950e60cd195208124b0e59e4683a92c286efd4deea76d52510fed1e7bbc53583d5bc3f99af9719c538ca796723a49f6714ac2d1f976a800ce9f8ccfafbb9ef032aa9a551a4b2c74f594907627ff6085a4cc7211ed1f48ad769911f17adb511d083c4edbdcd523ffcbba37425bb6fb66c618248b72e9dea6325db51fff9c0aebbca5c1d3d26133fefd4e79201ad0093785eed3d0a098c4099821762cbdea089d44401f5557f6df92297189c172a46a62764e82fffc0a7e4f2d315d6e2f2ed2b0047c155cf55adab5ad3ab07d72fda8a45c826cc6297afef387bdeca2fb9a1610230548e774b0494c257b39c372af49e9ff3043f92220183da68b253145861d5e20e31d8b5967f1a84b28861c4d8812a75cebf70a5584319194ac721b69d91bbd49b065caff3ea3838c4f2f5e728a6b4789088dc327738713717e717b86329875849a3e88db09b3fb83921eb772d162e537e4e37e6a06b0ea9a7271734eed7753d34575b9837bf18b2701caa90a25747b5770bd23a9d19722cf4c85a54bc16249b19a6dfe3f6c05d6d4a6e78a44475f3c57a1104afe24c9d942e0aed0d22e05a1946379db3810264a3a09dea472cecd330a357b934c211f2e750727520bfd7606bc6090e8e098a768c212b8331ba9a3c6a896a19e42cee35f4bb2937554400b8dd695004814b769064bc4b51e72eaedb1aa6ae23c8e4a5e1dd9137b822326abbaf4642cc2c1d1c3f4b8ebd7f348c738a7894acea280ee050b11090927a9b86a325698ef7d476fd6c39a69edeb72846ea71395d3740df85ffcf23b37c52332e6ed06003535f608634a07abd34272667dcc60d80dbc9b68eb20e1e58fd173c6a26c7a7d6c8d03e8795e19b4a316726db310533752a1755928ccd46877d196f4463d668b4325901f4697bb14894a72b7cb4eb1ce739ab128505910655f3ad65800552ea2ae7c2b7be3607efa77fb1e1de4f246d882fafc17a0742a1c26512d6ad51fafb5c216a4eaf6088966e49a184eb53c2ee517d171033f8cd7396a4445e5e4224e34894c5325252ba274a6247205090684a0087349360fb2df62552b23c3cf47925fdb15440bbb9c4266ef9372ebb716ba8eba21b59e9f1ae70a7ccc2068ec6a0bb94a0d773476596f878e2f72f8d82b48d0f1d8263414c025cba4b1099ef6d6290322c52d169a2becb516684a846b268375f1d759f372ae74503d17a8a5df56ce5feb0230c6d3e24d3dd66f720ee5824e2db5d1de435ee15d6b5d7f1fc50b112af55291d0a7122836d155c05a7496418442efa320bd6f75011a17217eb08ad6cb1e66b1f2460b80bab1844372d7be2a66cfeba31b4f9b9eccbbbb691d6c30933ef3d21346ed9fb993d715610202bbacc155076f7016e7c02a098bed82428e697a59e3d02ff91a7a6b4a17977274932d489f97a6fb93e07709ada3ea65058fb4ee89adba867d2274221894087273c1f7b4182ad9c0dd4ab8d65b87ad16cd6ecd124dbc73f070562b2708246772e884193c4dc68d88181d8baf9f55ce758a3dafc33258a2ec4fe741901007cd7275097331757547e2e48db09b74221205d527131e7786db5ae55491f0cee206674b4a0c63f2b8705ffd975e9b0015d97aab81e0cab94c35956936c3315533f702cb70a28a400aac92276e4049b3a5bba0d325df48ebd33c052520d856741fd0728c2815798b12a030c166fc1d20c85f7707bf104483a34f61e4f8355293f28072387c86d8404a9ff75f126c6e4372f0843be565822f50e3e304b953b5adb5c272f204ae224024102394f912e32ca31b8e041343e0476dceab283c775f383dbd043a3781f91b6616941456122c999f3fe1e69f9419815eadc5a83bb7a84580b97283767afcb61fec5d9aa33e8bc2a3da9854ff9d49a96360a2c3bcb480a6e622721aa71b1983a9f42b7ecd3930f5e05acfde780fce57e471759a4aff81b952203258c834aee0400b39c3a14fd66ca97d9f6ad6c52a0f3b476846f60871e09f200d22051f336e0ce16e929df1bd7156a74d8250e87a69ba9c7612c9af3451f71b31433c02a26dfb7007dbbed8b5776967b7d788f4dac0e3787dad5e759dfd0d2a7253cbd2dcd98fdf9bd06a2e8187af8ad492a66c9c629c8b3ebbc9ef39454ffd72a1b9eb5bc83b7180e91c87f0eddfdafee3919cbc6b1e489677c701e775e65972755b3f6c492c8f4493391c973b9092b24d2e97ded9139cfd319ebd722fcca8722a82fd7bfebb67125ef9acb7673244a4a509a64b40a39bb7e223b1efaedebb729b22dfb2d92cc3493a54c4bca42e7da69243969b4f745bc63d608524277f78724797cd8fe3bd310624b3cf355eb8de6bbdfd51b68ae3bafab7cf1f7b6b5bfd72c4924e7a077ab078ce69867e326fd6c7dc713c226b657d71bfd32128289919545dacea2f8c38eabef9ca72b0392529c52416b6560b6fb67e10b0c072f15c3a578da837576198259f19151a6cf505a0bd86de9842e94125d94046bfcaee28e2721922105aa4c53ec71660bea721a49f54ba3fb3d3ed274ded19a080b8f3b0aa72825981a1aa50ca2b3e90d8dc6cc304d93721a80789b3a5c26187b7847084740aa303ca5aae65c1af02d44a8e2d7d71ea29cacc8be8a39cd02940a9faaf3f023232b958343efa63cfad042896cb595d3e3bb8be5b8df660e2af78f44137e40c0885749edfdd8acdb498f1ec897aafadbf91a14af2687040160931d86dbabd2472d49f41529241eea0156c3ff04cc748c95469eb983f513205b9028e2b421e545a658b4a5ce33b5781dae02dfd660d04e392eeb8961a56fd36c397c1c5cf55ee721326af91b151516baedf9e376fbd42fc66d0d5caaeabb57bec2d3f1861c14372a9ac49e832af7f2823a392ac692c9afc3c864918a30e09165bcd87bf72685772d9638c10e2b0c5c14d6dec276744deb10b0bafa38664ba24d0881f1f5acc4472a5412775b931cc295601c94fcb0db8280707d0cc1b8098629349e11fab099400ce4d88d19fb84ed79e4f7abd5058253ab416fe4547eaf065e9a3295ded6e5b282e1ccd2066a36bbcb093f8399940f79428fe53d0f6be904b5ff8b8c36e8f1772e8f2f0f9b1f8ed1a16134f0fce7bc63e969166513ca962ba16b23bca6489675c614fc84a73df4f4e5a9bf00dd515cf250987cdfd1313c144ef9ae47e6af05743374c7e1eb28dbba8650909b4584e4af4cf9bbeb86d120b3abd992c4eae884359a3975f45ebdb413a4d76cb019c8774a121216f1ba16731b6583190f002a4b972b97d029fb54f13dadafcb305adfa37f776e80bfb43f348cf8529b6f332fc5867798aa31e8d3d822aa06e284904b581d5968018efe08c23fd7bcd9c2aa1def77259b2aab4ac700352fae2c65e8d336c8541fd7b436758673cfeec729c4c2b0172d4e4bbf785214823f52485950554cf7b9ee00ca63820e42a87fdf827138e6c47673e4f2a00404078e9485f406723a4cc6f8f4eccd2aded3894bd1c6a15635c72a3ece203c3efc2ffca8d7d2ef40b82f812298799bf8b9757569014f5e7791569cdc21ec1f792ed2d80d12cf533692c14541d5de48edecd6c9014e1b0d23778506dab9e266b416a577dc3709b3afefd70d220d360a821477ed6bc6742fe17042c5cdf818ec78b95e46c77f4555304e60911e9770cd69605d09f91796d5c187272fba34be5968f561dcd7ef693df0e14660da2ad755a20ae4ea4fc086b3a387372c38c965dd1c6ccf760759604f73b3edc0abfccc511c11b1d76193c6473fe05728cb52c29af6aa6cadc17234bd346a2a52ba3517e12fca7bba737ff5fab8c6472725c92f8e2733126d2242524726519e5595d66c9e78b02c433b2bd3ff5140f72b4520c21284c282e8082f24d6ba251447c72a94dcdfa3294be4e05c337e3b05ad3be542fadc4bdef42afdf0870ec68b35b534bc2996150eb450cf18b85fb68723206a122c7dcc4777dcc2a54d46733f71d6cd2ab6a5632c8feffead2dc28c110fea0e95ae04f79b95cce8ac6f32b26c14826107db14139e906c517b353f9000071b21879e2753d6c3233a3ffc264e65c03f8d19b0e81bb6ae554474c5d9735729c76b1a48b5e767f26070aac6ad05f0366c5866835dd37a69ac251d305ab893f85330bb69e46bfc6af9287900b9a52cfd939d1683aaeb58e459a30e4542ab23566aa90bd3ec007a3aa684c023ca817cbd37fcebe0b72f8af4a65f059ab57500799e4ef1cf7d1003d529213183173f21b5b5abfe9fd1f7aa03a47aeea1bf9da72ac701303b15a86c707fec8824513d6631567a620788d4fb34996e54923f4051cdc7f0b7956e43f41386378d46d36b30987f563dce608e51ac7cdde9d6e541f59a948215ac1c027b9f0165691c8a68d22ea509401b4abd0f2d40bed8e9a4895263045d5531191ac309e2d196d7a54a77a650374d39650b91e020b329c077d6038320af9dd40aa875fca697249aa77852bdc7a192e87f898fab54c01244d0cc4726de31647e18a3caeaf0c9d272e11d97ee4dc9bf6efec3172a28b7f631f753972d55fd6f5de091137da537e484ac7fe1812506d5815026a16bfa29d797db28b729859c256d8ea05939d5661964d0d4df628810e0b82680c380ac90225951c3c7123ff747cf72dbff26b9243c1d493d1724d18cb2f79d0e030bd6f84a2c45da9725112098b9cef703d14b0e379107784971dccbd9de295bae314be83ec10e121726d969843a94a6fe9ec874233aefcbb7cb8073cef4d51ca43df5d66ddb6573e7262b3717db6aa1b947ec418dc6974f347340a9f0ff57d86e1146d365553b310727a8755d7134ab2ef2fcdc31e0ea776afd24b944d863fb338721368a64f0b7672fa3f5c23752b60b7acd414866a2f8a23bdc44071a1a0d2f2491f4b9b6d7f243cf69d53bf43018dca6331338bbf29e066b9d92c1486c64a62574cc43f0954365a0393ea3847d740f35f913518914c7e60c59e10b32e3695af8ea245907fa79d72a50250720558b7ba66be187e4a710df05970b7c7a3d424cf016bb6884fa478726449395ad3eda164adaab51fa3daced07ccb6506c216ae89be327345da189a570004cd7136c02fbad9dff827baa0ca9ecea8462c1199ff666f8cbb4ccd9aa272fc9ef11e826243ca69296bb6483355d3916d77f9c578a31b9bd3946145a49607d39cfabea8c7f50b5a4a1f8fbff911ea3ae396813bf7fb71d97d81313821d772f01c3c45d0ef2891562113e331f58f56c309d8a2759f84b2d94c0e3fb7663303e25433ecd12d73ba95ead74e2e00b860c5fa3967663d83d22b28becc1b6e084085f51c36479e4dd0f61237c7363869cf9d4fa6c56a516add840a8c9dd697ec30a7d5f808fc61baddbbbe1d18d39d30afa403158b57939859e5fee7dd5e9acf6b42fd62bbc35249ebd68fbd3be6b21193cb7d1945d70aa67e507a3a8c0afe0572c66e7344555355e143f538eca9b1a38961c05a77e8fce2bcf7818923d67f876ffaf1e3545f857a7f3de6174a96f6c01f5de9d7e04f09566dae789b65a74eca72f1d14be6dc34fcc503d04cfa070b315e62b95d08ca7190550ee0d9986134486fb0396752810dccd613a52f793b7bcef4af24ebf1ccc70231c2c075bf6758fb729b4c0116370a272b60f845089f70ad3dc0feb4edac325560957d5fe8209269720ea922b27ea0ed1710cebac100bab053a5479a213b37eb5ae410ef655404fd4163b6c4cbdff7ffbbc2f4171e787959b007e2c3261156ac93d6575fcbe16a6469ef23ad9500dc5c9ec4b37f22d2f05f6b839688006fa56c86c46a8daee9cc3172535637d4980bf3eb5accdf13ddcf5e0d33efe49acde626709ec51642d380bc14a83ca4f4743dfb4466f27be8c1264863d81817f20271f2240a012445e255b5721349be7c0547f9bea87f06a3bdc1f0becfec498ce425b8b6d15470ccfe8002724a2405d807ed72914fa72ccbe2027327e966099607419148b65651f4aee40848eb21ee30deccde7c068ce7c5586e4d674ad7626a7808bb7db4d29b45a2cd957286e8d6d2456775d854d4c55eedcfa9f5686b53e100258495319b18fc66119f72f1607643d42ad6dd179dddd15e92ab11563e1e34002dc43a3b5a03d324f4044a523b040ac870128c71dbf2ee24c62403dbde08265f3ba9a530610ab9f1d50d249c55a620aa62e82fec0e723f7aecba0ebf40245a4154600a0b483c27f252d34adf3982278870461d243931f55b748ed1f2e3e32bca5867e503f91f4d60142d01927c8a889ccc22af37a8ad5dabab2688aed42a5d8bdca0c8e5a8e41eea88eb72a5e0f1c89f06e10533aa4ad6eb7ae94c614eb7d6efb580f6378a0690a8fb200874f96966abb6782d018469daceb7a462cb3aa74dc1375501428b585bfd625172b21a03cf0a00a376f33b48e871e92ac648763c83bcdb0dee4134142d87684a303032c69fdc7b50b913bb361d5dc8539fa0eddf77fc932a6f792d5e1dc8a2df72a80d9a5cf49b722966230a5f226f948f542c7186b4bd8f434b5fd92683c6df72cac6decf163d3a304d4df6b0b45e176ebab2f9d7a9bbfab3c36505a185bf1a240e50af7e414266788f17688e1d7f22cb9842041a69e1e9700bfd4420787884720b73953b0b83319ce45d20b1597c9f0b3e514ba4f6d8601a06f201e94474a60bef2edd71abc9ff8e086aff3f6285a6f95061f6d1612a263c0812e77b00cbe9276985bdb09c0f12845600cd48e1d3691b9d52b9d932ac987a9a90c88ae3440b2332395a781fce27f5f3e0b13af32410895bdd7f5e4827b5f1cf858e49904c87728bed336be5c8d50b8021290612d05c862773e1ab7b977eda2995f8dbba5a0e72ee12d68f3fcb717dc0b70b8553b7b2a3ea2b1f2439a87ea1d4ba06b223d0b87220b7f70ebfd2ce2a191af7c07a4c8d20d6cb4515faafa350e4516593e416eb33217055552613477b0c1c1f855af8a1859241ac864c1da3f9f88911ddc637942936fa4410288abfc866daba2d3f1ae0ef5202405aa3a63a2de4011c00f81822613c3f2461afd4864b6c6c7736c73879a16a99b3ac53d4765e803dfa9ae3edd3129ceaa20626b2f667b96eccc4a220addb829ccc24f7161b56a6e9609056c2f772f0e0b7bbf34f3a3da91d1c417d0b696c8be1063b3bd393711b02d6653885f34a423200370c34e99f4705ee92543b60d8f4690c463f4a9747e790663844aebd33e0531fcb99138dd358cd785249cecbfb57d84c272f72cf0620554dd4f9fe9a72360fb2f690bfb1e00ecfde8e36caf518abbb3a36dfc2d38a06e255f02f5274702a8b48ebd31a9f667575e650afff2b9ea823ba53990988f966ddb8710f5ee072926115d9ae8695abcbd7273f61a9e1aeb09b82efa0fe62d68350dc1224b7164c96066a82eb062454a79815f46a5125b3ee90ca92214f6c7e71860c5dfe07b872d2d067a6d07de7f6bea90ba8290250c6bdbc1df16aff34e0a38b0cf26fe767728c487c819ecd7646e6d07188aeb218be6357196a165b1dbeb7281f76aaef1f07d630f1a5a0d6b3be45d0e465e6127b9e9bfedd4511e559a4f1c33db95333c672984cf9a3addff6875f8f7d15804ffe673b6f6981cb29299d06a971e6b8301136497cd6e286313505a73d2beef0a6a22699f79189f9a73e968f8b2e560e087326972afc019226658b0684af0063b7d74b402884bd0907fcf2e3921b9f65bffb7266dfde62b83f5b57de827c7030cce65fb06c2d509445a172fa44a4ba74503d70691f17a99af2512ec57c2391c26f73a42e8f42316d469a09b1e73c1d4c7f6372e6e36e8f422092796ec81cc2698afc5d061579d4038919e786c6406d76f26460d72464acaedffe7a6691c123581ff9d58fb864bf582b0943b3ced6842a1b3a72b8c79a66906f457810de16426af17c89557a04d9587e01d06a15e3e8973a0972da9794f2902a35f632ed379fe3af0690ef6a7558d0b7c2016ccb93898711b272d18a15b7c51d231ba55e3c38d0ee285194848a5da7051cc621ce359400886172beaed25a61c807cb9c28f301f8ed1e6593d78f8806d89146536ae7fd7e6ac50648e34311811c0ff9deef533558f4c6c860a5e74ec3b96ca20d83cb293d1e426481e02662623e1f18715f4ae82c7a0aefa444876d914f6a59039f6508522e6f38b58cd15d6931009485bf4c76622ed084c4aec7f39811fee3212b44f940848272fed3faed65eae4191e27fa75fa85498c159d2eef6de423fef933d0ae0027a7729ff6f8978e1b7249e6ae4f57e03f22cdfd3f16f34638a30aecbcfbe2d6140872d6466880cc45fb4d0290bb46dab9dc7db3ec2535f4a57391d8640cfb5164b57285ee94b0c787b92b8260f3e4eca1bc0a43c5bdc18b179b46bc4e053a4c6aed6bb66e8ac9f2da4c71f20cf864fe8647863a9179a5d4b2002f6601b19645fa5e5fb88fe141873d76665a193a3556f370599e760b3684ac4723eb7d15a50715814f98d10072cf21d555d3ea021adf4f9ae9f4ffb622cc799e8ce620cef71504f95754d003fe3c76551b4a3ccef42435823b3a478e5c7f04aeb989fb9b39a55a1e721044267498d81decf715590457b83216bec906b8cce9cf2e94f9fe4e39964e720ea99237e4d9579e2da0e676be72723ccfba250cb90735d4def6f4f00e41d172a9d861ada74494a252a30405eb8be9241e7fc5db6c2c71c667d116aaecada932c7e3778ad012b9a8a42ee38f3726e2af47f0add85a6b912587a2fc296c96a572b01e2217a502522d58835e45d70d1a19c0037cdf26d0278a71047f9eeb6df35cf78b0274bbf9f991c7146cb4a7363db1d6a4cff77b9c968e4d98fc99d8e6591eb3117fa09b22ed766d1c01c37768fbb9db3a3bac17e57fd90480d1b764d7aa72061ad1139001babe5928f23f64c2d180409f0792bcb745c171e55c9d4d018c729c5de96ba7096a90959d3fb4ccd5b08306de35c5e21f608cd6d26b4d756dd44533cabc9fb2d690d6232109da12fb3d212605446ea759844605d64901d450f27234b3128b2b6e606f80375f7975fd22a97f9b29f173a43e30d2ed93c84ece0d2ec9afc6ae9eafa479feb7a6e90ce09795552b4657d5438160608b60a8667aeb72db11585ab254fd78a538617f3668e05626a19cdd8f3ebb642b412f0f5a70540d454232c9af8bac674d7649458747a244143b374d4e416d7f78f48fbb30a0826ee2d63ef8e3cb7115540eabbcb48c9c10b0ee83d6349d2626330f8ab632417a7220ce0144cca882813a848db18951c9a013d7618117113d0f9bc53ee57536cc720f927652bda96c6d8ac0563dc20b4cff20fe8bf48ac176da7fadb68e59b467724f47ebdf146c3ba7fcb0425748fbe07a9f67609f83cfd70838a8fd2e306d5920f0752c1f06bd56f3bfc5dcbaded92acfe2ba227e9517d07ea2ae0ca6b0ace341ec1448d09cc60695e732bbe508160740493220b9dbe4f3a3e4047a169da34372b9be0cc7671283047458f63f69cc687a945f1b7e576ab0dff5f029c49b7aa4721feaf8a94fb0dc5fd14457eab0f29e8171b80d552603e25a086a93f766228a7222cd5985368b35f08e7824ffa3160435ccdd51a462214583a2949332f859620a90b6d1970d074b49822c00e151d1a25fb9fc345300318cd605cd1ccf3bb40e727f82ff2bc2f3864f9e01661715daa9ca89bf665ee81d1c6a36801bfa20fad90a29683549bb8df523b198fac93c6ce2eb220fb973f558a135e63cdddd49554b72dffb55ef1907b8e31b3a16f1eb84c3e6aad9d92d428586584aea09af1704d252ad3c7e4d56b2737da1dc559c4ede5c9ab8a8378562efeb59c794befea3767c11d706fafdf6098f9e142f6971de98bebe5f9116ee960fefc3ec9345c867e6127289a890f8f3f3db859cfee78c41cd4365b1cf964da25c1426204cd86682db9970c95db60af1fdbd0ee19210a6bf52e06d3a5dd4c4a5aa3b449fc3fa41e635ba3b53d0fc1f286cc5172dccb75f5753838176929985a995578a4e92a8814ccac472781f66b122628938f1febfd186466da5ecee77427e60e606b4bcff53bd987c67e611dde3bcc25b566471588e8c4004686f731dad19104867f4c786c5efa5b672dc46389e9615eab4a3cd705dafae69ada9e2f86e056fc19d43c2efb258231a72077d6a737ee59a8652185083c4fc9dd0abd2e890fbc8228d10735edc0079df5b7b89bce6e5cb171533d5d345d939f38ff4a11d559079b203e33dc1f683717c723a6a382723ec0ebc3ece0ca83e54e30622fd9a779c02a4f9cdf0ab41376d2424ce85e4a04c4afb6060c108a66ca419a6dce1d98da71134ec7edd452e6f3b6b72cf703c56dcfb67a651491a5cc33d63a4b6ca1c38c70b2272b64a1e0332582905ba1b386e42fe4f7b4842415ba74d2d404a7977f00e929e4aac21a0afc1fb9072d7ff9ff694e3f594fbab1807f6073dcafe5e78484ebd803444eae728d2568a72e61056bf406fa303a2d8ce8fe04716a58a5ff403ed08c4013921401584f19f720fd33a84a544cb828ded753fa7c9ccd644833da1173bd15d6ab1b66e563452728ad0e45ee9b724fafb54d00b7642b5fcb84bea527a49bb98581782301e609472f13de09fdca5a0fd7f27c8e3c1447896337ae99ff158063b364e69ef72eaaf4803105277075a012cfdd41f0ad609b5ce3a81271b8b257f3f84d4585d017c7b1e3d2ac8534cd3218a4d40aa745f1ff5e2ddf84df9d53b664a174b32989498057086fa446b62e36fbc55d678b688616852da523f8e89d90fc0d9dbfc2331951563a97addc474775416ad1ea8422fae688a5d4eab8314d8566697e47935ab9add726d5e432b6a214b44734c695e2b83e09ef70d633de4a8393f6fded0f715b29972f4d38c1a92a443b60fee5de90e2587d644e46b2d7798ce714b1b5bbc84d2ac00cf3a59cc07c1a9986f3f59cf7602a69c999f65fa2fd1eba3c19e21cfa555b3115097e8de1ac6a6b055dd172707788b750223a4f96a20886a05b20657b140b6668e9c77f3940c7ac99aa1433a2868c5d90270be97286fb849340c42a0760cef1aafa50bbd3bf63042226e1e8b36aef2fd6b721ff45dc3d493aafb9d01e5e7a3103a07cf98b5fa345e9cde22afe0cc37f75f25acde6215d312e693c6d724711212d70385ac2dda7deb90291681b86664947816ca78c8953b938bda108dd35a037295a42b60e28c8cb1a232d53b2844b7df2f6e2bd9c0deb06d97855787fe5e624aa5f96ab7d0112d8c1f2ed6d3eb771c7411745b6a3a7daa3f8316d0e7eb18881dfdac531ab708c958e0e835c01c88169ffd930d4eec73974ea24339f0a3f59d72f1db89d96ff8b11ff83d00141bd5bf1be66b770764bb2ca047dc58744e45fa7234beb916da2127a189e1ad0bb4290de76d4fca43f256d085f0fa4f356e649d473ed4ad61133771474c1a4cb65e5bd61c78cfb774b895997fed41c49ed1f813727839c3df5b85b885fa74b07bc49b75b0fd084b902dbcb3ef6e71a8065d57ed720f01a9b76ed18075df0226d0f021e3224f2582b032c573817e8bdcb64212c6720c3254a444b0b37bedc7ea0fc23f9aee8e728517203e4c34302e0236342b3e51047e2fe81ea797d3112f9aff57648ef148a5cb2968ca18b6120b156751bc70726e6f6abd0bedb3436b14863ba4a54418dc6ae27625ef53177eec647ee1d8fa72f4e8dc703ca598733a35381cd09e183c90c4295c37fa9af331a8fd466cdc5572f84e175b0de2787075e22458e8cb8d8af804c79e30064809282a94b9b8440a30576d9172f6734b29c69207c9afe124d75a28f5b6e235d1ccb36c553867cba40be3691cf5616c24e80258c2923354d4c620959fbc5c51442e2369e4e298d6d77276531500a0c3fe9095c0f792b57307345494b36232c7e2a65d857b9ef5d0cd72bbdd9a48df3b35c6f2986c56aad7b22e683c0b140bdb9b9b16c888960be2dc72714857ece5fa5cc32ca326031ee99e82bf04185319c639c6f485aebc8eec222e2be178ef41ed1d3a6ce38466d4bb8dde7cf137d95e1168fe0a178b48d4a27472da8dd6536fd82c17584200aa2191c9606a49fa8890ef28352e449c385879b372dd89b03e4e8ac9e9342c330631151a76f54bdc5b9d6932093fb0106f4439956511f3dbc04d428bb25fffda3174c424fac55c5c470947be15399c80eb2b8b573c760a1d99340073017c3e8944029b9a74dfaf8953dd720f84e52a2d9cdb8ef572e819071449567cf2c00349abb91fd7b50e01f78e82ad6a0265ab1ea78b5f8b723db545bb6a81c035f9c39ea514b9ad202402e3158d0a9482b9d71cdb9fedc8720285deb94de77351f4dcec4f19cf534b8ad9546005494a7ebf52ff3607da0c7226c9f54d67aa52631e51fdcae017d4ede19929ed6ba38635c876c31a4c9516724e613af080508f02c49d36397f64f8072b0f0a1edbfa78ebf303f88e2b1dc57242bdca65f18d54197eb080aa7526773f36b848dcdaa004d8ac3e91d23c02db72b9b5bc20b9a86a646083c2bcc606cc15fbffddfe9acaeae1657bab6b488fd672daa4ddc3ee3f39d964f44b666b5dcf7a707dab63e6ece4e6680bba502da1db14b10569eabc9293504d9ece9aca1721890ddf2649c3ade5f71fd14bb63cbe1872925c3b0667c010e8a3e624dd959b78655a53804c361c44dcc206166a5057c50fa328afebd9017ae0468c51e7ab89a786a49de65e0037051133f992dd5b19ad079f47f5fb80b5a2025477583d97d0a88c5024b5f19b298c73103ffd8a44359b722bec5923a73942559f10649cda5282e7f8aa980ae6cad79fc8f02a22dade8e7209ad2f07cd0967c5ea94680631c19c15b5c3faefd549e94348da60906c85f7720be0abd7bbeae25dc2dca4aebc640c7f9a86fa5448a0c2053fce1b34842e7c728eb8a0b369d2038587b093d9669386cf69a9e06bd78b2e722bc94c9e0e180e723d5dc500a85ef098788b24bd06a3a0111c981db7bf81242b40100f5d2c0b9a721809b41bcfa3c67f9a5cc6f842a07adbde9a3f37c3e365d3a3ede84cb7e856729cedc60dfbd967d4e243ea90921f1dd76bb4cbb54a5056b170e4179147511472e703a52ed96134f2de802c6d2e452c801e41b0be652e179e9f991a3238c2de72022b8b5b48e615f2b29e91fb3c55f90f55f81be24cecef14116c743c36bd781856370c6786dc04ae0e48f24c0ed2f0f51221da9c1056e6aa8580de42fec236670e996261164b784ddee02b97671743f849c8434b24298d50969c741414827c091eb1b478d59e14235077f04dd05304a958e1866ea9884bc979b15ab479b4b472c1ee13003f3d45db2e6742274b7fc9076fa02e64bb91dd0ce4c85a18a6db0072097c7f6f706b9f76c818211ee43fe4908db66345d9059d168bd3a71098a1a24733fa713393b9ffbb39d833bfbfeeec372476d287ec7e7f8f16bcc0c2b10b3172d0c1207d4c420f1bb851f3af6825682352344f9588f65c167d9d105607da8c72152b291e8e8d783060b414b43c5746879ba708e8d98a90b355b12f6e32b37300f9955e19258d5ea1cae05d24f6b019062f067a2482e598e7494d08381a23ed726d70bf4fbbc85e3ea56e909b5181a57705fb6fb98c3b956672e146889fff90190197363808878bb3fe16839c6bf7d9388a9590ae6a575dece6d84cba13677d727431fb70eb3c22e44be6b9648d9d3ff8c24a9aafff304ec016efcc46f124a07218c2a42a28ffe2525e41423de8e93d52ed0cf13f6aa1c4383658153ed070157258c3ac89ce01f9e7ca487c8d0bb633aac9e91bde6abf05a678ece89d41823f7229f573951b037d762cd6a34c5e47f87649a3fed670e88a076bb888735468fa7243fb994e17800e978627f141f36bc1519608c15babf422d158a77efbd54af430e67cb5b36a47d096d1af7add8cf711bcdf001904250f4047441220a0bbb6e37298998f1aa71deb166a7924081dc78bd1cf6312ba176d58f00634c8d9f09d83721ac5406d2273e38bd382ad29a53c5b1aaf8c7323d1771d8d98adc0b34663be72e622df3fab7ab7a9156bf6c77ee5e0993f4b777ca19ebafb247ea8b6ea7cfb72e481b2bccf8c522916b9aae7c9cc60f57a8e84689647bf7362d792bebaa89072708b84cb34ab8fb93128d943ef11a05e2daa6e8eacbbc14515e04baa87b5cf5496afa9b4b664bfbd56d3e080743cfa393eedddc0e7711bb15ebb0e9adb8d157296beb6c993b3bd11a5c157372de09d4c9acedd49d24f6a6015c4f0d808d7ea7207e51ed73f681ca2c15a6dce8458bb620b98afc7629fa2153477a819ca3cf9240dd2b5021f8c8e2b80e3564521cb7ded300b30dfee032758888f7e5e623a0b7270f8fc5d736f6bc996559e892dbb261223f87fad18550cf896e417f70302e87259cfc4d6a3b18f421986eeab5badf4fa9fb35477ea3d5f1e58d43d2f9b84c47246c9fdbda29590edaa55ef3077b4053184a262b43633aab3f053b67bdb88b8720af06cef4ad7ff1cc4650c55d735ebdbf1d73e7ca06c16fc39488ead574140725f0676eff98d6eb23d9dec598ab8ab0c2784b398e7f5afad50f85a4e407e8b72861c41d97009785f609b869ce342245dabc9314a99dfc3d64fcae4b17e8f7c4c1a429d18b715fd3a54cc960a2c83a0040ffbae9f90d0283790d6986d4c725b72587880776339948eefed4a3702c04cde1735d465331061f93747cefaf633410a7c42ac450da89dc10191fd55b6388123b705302ba7b558cd9e7abbb44bbc61424c37bd93708ead7b9a7fb73c0d552f2e1ce0ee43cf6fc5580e69f3b22f5df5729807eee17736264f94d91692448b65f2ca0ac8e1b76077550b46bda245e11e5c087203351caed6a4858316241f21294bb4e3815e9cf8e61e73ed2f703c2844392a5bea91eea5a50b7b68901aad3a67e813f28e13dfa34d1a3b19ebf009688b7264295aa43e30ed1894baade055edc49a346a1932ddf95ff9a324b4a2658b2372a8bb951b1469151e34b45143a9bb35e4e7ed87b2f73045ab91f77a2bb3ba0372df303b44fad6aa33d32471e4df3fbfe0c71020ee4c22cf786c9a107a6f2728216173ed4d77a1c00a7a46c8f138a31bdedd3785165b37288aada7d68bc7282d3a279c6f7037097dd1ef4959a54300a828fde0d743234d4de5a072e6ed5695b0726080eca1a96efc19e8fb014924267b9f79f446125f2c5c317ab1916dc874944f5b0597fd1534bb9d1d891eb7ef817bd5f600501cdb89fe93439662246633613e57807c4addb04404b6b1f3bc70c003c6ec4bfc0d147dd5482791bf98b0eae0721749bd50bdc51434dc8ab61f52301a08d3bfe2198260a130a97110408edcf01975b1c9f5f77a26617791e3f4748154df8e496613ac131d40871bd792f4489b28d403950d8d09ae3da144628a868a3e46fee76c07186f1bb8b3eb73e63f9b192b8e59d112a7efcf70f3dffb0e704d4448db69b632681026492355521441b9037225cfaa4a72c0f695cfec127a29ee70439b080bc41e186eab4b3cdacc0003d5055dcdf5c437bdc8dc05655e669d2e8b1ac5a68a88c2d8f7260a793d0de4c8167273261ed12484c60b58d085cbcdc6ae69e48fc21ada41f8bd4367140bf7430f29c2cc3d6ecc105b6418ff199ee275ba9deb1522ff60c7f6214b92383d3983a8729f80f81c7e73f33c215528a139529a5165cf2c5a810204d108b837519121347254c9f06b2d57892cf55cf4360cce3379643c69924046e67150c3ae52522f0e7210a4de8772955a2ab662daf757522be228d3485285fa1c117e53daccf7129521301df18283c51f9eb71236eadc644a4332cc1a1658ef70b33ef450d2d26e4b72c5eba4b078122dd98d29f7a79bc4657ccba7ab7446524f8987a4c4be4f22081030f2254edc64c0da6d8eb2c6a46f11696b58e67f459ac783f34f8e2ed9d60800000e59884838311140cd5d87345f7e2888963100a6a8062dbd905bc20425bd729879fd1b478fb5078c09436fb58f2352394763a0c8c491f72e13d439986a1b721ce8d1137c9f2a9244868648ed4320ed6dffd87f192bc0f44f6939b87d4411723e8d7bba03291f574ed47952459b46645ba79f91b36879c48387bdfc4a757f727158e611f81955d3d5bfc606fd0c73dd3b3d14afe2e7b5376587f7c9dca0d4726116c333d74fed07891a4a8be732fae890e321fb3d5b8feb003f01c1af95c85004c46b428e75a4d70edef27009b2114c8c8a4e5bc76814e11f6a7c361df7cf72ae501878ea911bb49211e21edb2eca756e4e3c3490ca9dc5e061068f3c77d7244d002d1c0b641db9bd776bdef0ae8b3e6216c233f1bc73eb1368d57b542ead1289aed033477ed32b5ec7c49b8024b401e088d938da4793cff45640d755652747848583276179c65ce5c8e4a7f3ad33d59195923cc551c3e259a62e0fe5985872e9193113e0af4e40b1749f2d2463a1a1be45b9d2ef6584f15a65a04055016a72347e17c9b143a479ab3a24c8cb1cf8d18827868647d2edd56dd818b279db6372546a28a297ee785bc9166753a2ed49273967c311082c9bf3ed5c822db05a3a72c6d5f88076e3e4b18d994b892a503369448a41578a03beecdf9418b65b31ab727cd0eca7d0f4d7482772f7deda12e4faf1fea704b377e4563d08594936fd90717f899cddc58a711eb8d32d6c48c65370ff5ff9f197b71bce2aa14de3077b63729e5794af85b035587c06bfcb30162a29a2c223a3af5afc642a47688592e1e172802f10fdcdb88cdf3467b8c22ec0fb31b055d8b2e032e84b5c43d38f297724034dbe4ada4169a4a3d0999af190abe59074107387cab9e78edcd6b49c46bb1a7219a00c7e69358a10c8dbd1d072fe660ca9aa746f9c641265a7283a71b39f8512430a10bbffd69ef59669c1ad59b77926e44814179472ab45c243d4f1193a2c727a70e4e812aea8827b5d27c900792cf105ebb37daded67d6552941d2854d022dd132e18c2230d5c8975b54a9bf41dd80fe3d53e263376fb9d8e1fb6d7b8f0a4e93555fe1dceb7c488321784d81360021db699a2d52abe32bdc1bdde62e1c7c72ddef9ba10a8fbe8a53c79051d5857ce6ce5d17d8d8a667dd8db90fe79df10b7204cf94c3c979f7532e4b855c9bc871582409471e4f9ff2d478fa9dc81248942a144b5ca82e7b8920be3a4fbf827bc71c72791d6364d2ad348716d7a932847a4cc00a46c787fc2100eefe7fb356bec6192bf48f233615588f4ba87a14c5e6f972d89bd0660976c9e12751fef52f957e0be4acd30a2c69d023209a8c339046296c37e2b5ac61cd45509bf58f28842e04c7fab403eff825df9253efbf043abe5b13e406f29aa9c051ed7f555fa0fd5ce0fabe5b5b67501fd681ec127366794afe424114fd8394b97e8a8a2af2232412ebbc4ba33d6775268164ba2fff35d420847233bddea7f771f4ded168432db5b4c2a39142afe296e908e19f436b66a7e99947e3d1409c0420b27894de8605afe7e03e8d3e30fadcbb09755777c617c323ed727784185344bb0f5169e9e2cb756c5ed28d8fdd1024595609a9422f26cb29cd72bc5e2f3f9d6ce0223ff197c3921e08bcf2855d8041d0a8bb92a77ced4812dd3af2d055aa59b6a10095c582f54f4d1c9da4eb58c0b55766244318bf6008229b164060c7647ea033255c14a21b88d0f85ef971d4c9bdcc01dca111887431e27d728c01af17792cacddad60390eb8500e151c83b443e333e1d0025139ada979784ac7ffc875bc9db826d48c30ad59c8adaa42ebeb2ed09a7393937e23503e5aaf72584ba204d4a8ceda62b550dece91f31097e345f19ce2fe7ddc5902cfbe718b151df49a8422d001f0044fd60fbd6babd656dec62c0ef9f0c1656b4426fa1c1b7228c1ac1b28d7b8da361db759c2fc6dad27f6f7c52f7c48083624efec8b915044d77330f0c744fcb24159674b9bb1bd13d43b3e1fbd28076a9f15e0598d9127723d60dc6d14b0ff3765e07493d70e4905a03b42ce391a18f79f4a0ddbaabc753e58c82e6e723ac3ac5727f0fc66a911a577b496ae06aebac0e6f3f907f8fb56109c1600b3671dad1e90fe6636e6673a2b25e9bf84f8b0e2d08e02d471fafb07265d3c8a35b6ea634f6ddaf632d68605a110b9af05cd98337bb157275a0fd884721ee03336c982fe5df7466e92a93c52fcd4e4087102190c5ac86770a93c3c9d136b94ee85f9bb11d0543eb3f7e2f2d66748d5245c41ae82a17df743c82bbe8e72e9e46c65d8c5c4493d0e6932f9fbb74401e585e629c8aac38c2ef31f23a1194f38afcbb675b2335556d298ab0c17fe862498e5882343d967f8593f4bb62d1872cf6dc67910677f247d66552bc2cec8c9ce4328ec8273dec3fa24a8a81168bf434b1399d68d96bc953404e6cffb2444a9f5a179a85601604ac9ec6108f2946872f20f4c1a350fa1acd790b3c0c60caf05b3c27cd30b7c27a9bea0012a18fb9b727422e9772fa9afd373e3957b554426658635479c3bea194fb5c2e8790ad7d572f5edca3a34e7f0efa0901c4cbe26c1f1a29b44a22f2068f0b8c54c9396a5fb4230f7e9648421aa922abf8a3949378cf78866dcaddefedafa3aaffbad6c119427d67b3a4afd817f779f168834cd2c9d63ecf0f3dca48ad052035dd8588b277218fba785355ce6eb222eed18e77fb820998e18212b429f23ec37eec71a58e5c34929b4ace6590cc6ed46f6d04099a8131e8fdb32d2f203b26953c0cd69ba39a7729134792d9fa550a98aaa0d6bcf035a860f503c08600accb2fc70d9c75d3d1d2ae24405dddfbc984248292a5c6c49ca2b195c4a485ee0137042bc33a47162dd7257e332bf60f9a20d445213a745bfa9212a79fcb0561414b144ba814320596c568afc3ce4266a1cecf368d383f546dc334b347a70271f44685e79b4616c13b77254887b12ef72cbe02e764398600833043ca7377dfb8f660c088f43794f34633557f0729d5f04645ba7cfa6f4545a0d818054b58256d01bc097d702feeb0f7170ed58cfbae10630565f222812d96559aec015cff882f203074fd0fc4d1683207265801838c797c3b338a68031178c1475b73e11776eece428d1b7591e0b4112216f93275f19e65a90e34e806304bcfb3305cbcab28ff27b1a873c1b652c618c72f994036d01c8c66b367110a1e4f70d2e1ded909f38e20ca982f1687e0ce6a67244d3995a152e694bc5d75017234aff9434cb746a9ee7dac7987d2fa05a802872fd81c7423f266f1a9f6ddde1274222655328d290c5b846a7431e39648a25aa72afe5896844982a152b37bae630f816187b38d4a096957da934a54a504d3784002e5cad54e18b1cf680e392f943c39ef8499ea5832ccc056e07e63707e0366768215c9653f8dd14688938de69b3296bc04bcc7a0071d665b53052b02c3c4eb4729178bf48aff9330ab549d5e529f486e00f1975b966720e7e7b36ab6d96c92b721212932e88e6626a166a668d8372f8a9342c3514478caf8f08b8cff3f2434d72ff2259afef4cb6d5e3474552b421fcd979db6194b4a5668b403fe0de528266699d89ee07fa644912655e9f73ffa1fae735ac05dfb24731aff8ec4245b12167727e9dd4365e0760c272b50e3a0bf4971167979c80290d2fbae1ed2b1c5be250727a464470432606588c098b61debc32228b86836d502fe2ff5f3ca0dc75209e72c995273d4a5fc0d8ec5a712c04fa976b26f99e567e893459cf5e033e5f5b73723d7bfdd20002d666a660c9354a35d6f7a8034853d49f04a83b5b9641a23d53020c9ca4ae8b359cc6e70353e81fb0f0ed4f2837196ac88fc5b51c88e35672457270194e71dcb18369f3d609155b3b84394cc94b1f0efe6b235bc26a97c53556723821baa73f4837457fc431f2f744c115402ea588504a7dffbd8997b911f82a617575795e94d16b7ce0dfb20f4af9ef28e3846cbcc2fd87ecd7b8cab35016b4725c1ebd2e31cf2d0326741c0c1468c1724b19afcd1fdf808cf978e9bf19453672ad802170e373636d5d038c26c5fda628dccb9ef8da6d31c5a69da40d23ae4f2f8e392e50f539639f06a9e92f7e3a60b840b2e347758a769b31b4d7c30d2b415d140952b0d040a63d8c32bb1977f461841508ac9874261c91064f9590050d29053aa58cdfed6d4a69984c94cc4012185b189e3c2ae946adfd17a093b30b402b72462c8453fda2d779418c56ed615b06b503ee2e305cb91929710b8473b5e091721d25820c19375941a4ea92237bb589776951f83a89d946acdff1aed02677fa72f4e4713924015cfd26c8b06fd62f1dc14fed0773c1ccdd51d53c7e662b968b592ab01cf72be04ebc64b2d768e512e1452af41194c0f65e8d0e84f904af6349727c70f4a05d959a985ce8ae836bd5d954ceaa61178df7d3f143233eeefb7fed0c0e3f1f0d3ecc32989bc3428ed78e6506934308b9d3be9610f20f9892704c48722a1fd7e3ed78225b95b6264cf910c1d8e7b3af54444662b42ef1cbe18412df4ddcbc90fd2e1d3663e2666c2f47d558278f6b2bcce0c81947e344ec11460bf1646ff0b83f21415ab2e4eb0b488770f776d13a2baf5916677b8da331d4aeebae72ae456100c8cf476614539c0f71603f294caae691364264e758ca350262bb1e72477e5fb158c62bd3878610656a430afd522693e90926d983d52667aa4b65e872661a9dc2efead0beebd23df040448f8be226f2d87bd2f77bdf854fb1f315f272dc687e7af2290d23be603eeac10d8f6c6d101adbcbd7170d22f0b0d735071c326d4dfaf7fb37327b51abae9fd5c726da493f141055a8ca5f3c4f4642a174665edb48903729e7fab3bd91d65922077289e8fa3a98263e86572edf20ada4997834d67e70cb78f0dc0bf41c350b13b93479b4443cb30d4ace769a95080c57b79a72bc2add9066dc267b02110ec162e3bd6538eb8bf2ea54386e2d0d3f607b9c2f7277c4ac2fdd91ae3951cfe35fea7574661e734b42da61a0d63f40c3f21ca23d529c5de91f41eca3a6ab5eff80530e654efd9c2ecf8d9c01caff58d889c3b24c7233c123c1466834bf2e30b4a46061281537749304c4fcdede0484028ac68520466fdf6cd42061a356bf074bef99ef56a2bc1292ad564bf3fa2a39d96364490972076ba1443bba46c99d3731789fcd9a40451b599f03a421f27c5cf6d38cc9db5b50b603cbcec20d522a43b43e626e5db81766e69798f612db7b06d481b47a45727cd0b57500b6c9ba613db6f08dccf9f367e0cf950f7afce9d18acde3eb69ed72ec158de3d79f5d9543a707dc72a4e1677308151e190f1f7c79eb135b02e9c22e778f69dfdd61c4785624c7d619a2f6012b8effbbfa0e5c7a9da1188fd1c19f23bc47e9448f02e3e081285945833388194eae85d33823e7e9bc5c9bd097f3d9724a68c3b360bc7e1419c507a6ef21b2fc221a1ff58c7b935a0f0d945f713cee722062ea482adb5ec5a58362c0f29b781582e5dc5a4f1ac7a37ea8ef8aff4cad330bd26a3d671e8317c7e983855a751fe770415bf80f842893b2d859e9e885421446702e19904600a1741ee50b99433dd3ed0e022c984736d8ef760c5083c0cd729b536eeb49f3f6cf5521eb7ed0dac97af4a770638c9502aa313a3d229ab79972c59e2c81376736e6fa311c0a62a35fb4f86008dff20bf70bd44fd95480555872aa9181d985e974508aba2118f3485b5557ef6b892b74d9f853630ec1e4db99729ac9a4f6af5118ab17af813bc35b4e9156cbcd69db1612a0ade66b9a419af33452ad8cdeeb324ae658733b4c8e47f3f356f944543e6a0067882223780d663e7216202665a161cdc07b934126b871731621a000e7ff2f203afe51c95878e8223f436624b536d3bafa64bb8a4c9648cf70ecbc0c241861b7a1c7dbc0d65dfa470028550fcf8368af38fd4dc710c19445c28c12b30df1dc43eabfdba09754b4857262ce8926c74ab5257fddc56928ab5bd7ba57d655109d3c2c462e123ea387cd72fe3d121cbb33b96e6279d295d0b01c0105321ac9524932f3cf7ca70d6826d6729571a15489c80ef4f1c13a1023fc306a4672550def25be6126cd3bd70bcc567206c4cca1c4767896ac37d16e16b3c2e80fee7e413389e998ee416fb6df220672d1d077b68d30b2fbdb164f89080da7079a585e603174cf32a31dbeea943bf972aa9e7acb4ef5c5235ab2cce8ad75ece7fb4bdd7c12bc31fd640b350007f78e7244df3041f3b495136d8dc0b61ebb1fb11ab0e1ace92257c32712843112a463727324b8e8b4d0af9e977bf6b2cc940f208967810acfb4c66e4f9dde90d8bc0a72278cdb1462a344a7059066efb347ad72237e594fb61a04984fdd2f5c1a821472e3f51ef1d0fe76801613fe1f32805364d80ae18f942ed2fde20e76a808a0fd616a669bb5eaac434e247ce811c9e65112796fa3763d85aae33fd98087fcf4c972f0dde48648e4ba21fab38995569d2a466372d36e6f8f95aa89a563d98e1b32587e105e22b96a36369185f2fe38cf4ae48879e73a06d34e0f3583166d193df0728829642871f0f1300994113367259020d31f63b83bdc95c69a3fef5011482e3db94b2f43346996b2aca4f05e1f44086582318545e21974a89b39abdb3032141da16b10306e2b7ad509a3841ec42ea92f5e6c66b6bcf6225f0ebd40b99b0ab4724bdb294eeb1fa426a1ca0660385b67633d28542987ba277c24648e21f2e78d68055f203eddcda7eb58f72b5451dc9faa502dfa55547a6c916ce73028214c50728a70bc032d8f47a5114ee5f28c20c326d2833b53244c8a6db728f0251f2eae72d18c037cb22e82becd0b812d45e0777fb71d8ecce0237025776131f12a989552b7a0ead0d1658fbe1da0c731d3d095684ef652aa562ce397d65bcabab8ad2572d3db902708864ee3e2b1247f4da308a08e377a7b9b5b5cc66ef1a7b79783f0728814738219a6be221a6d3c0282336de4ca40338db909ba069831f078cd9a91722230a357ea5426942b0983fea9052db9c980ead770278a995429aa77b251db23f232aded124292b52b90b6e2ebba89ba50325036ef55c6ca09f25d77422c9864047f392b68bf33b04f3131f3414be88ea9ac9049f32cc72f598a2e07297ce20d2c2a37340d38db761cf0222e18500939633871f82f5efd56ab1bd8c2fbac2f728686301f765bff331bf9898d4b10823aa4877bd5a5f248f9a3cb206002c28672839fa7272b2ed26038e250a869de7c94330b7cbe6b76cf03be4c8254c4b9ca72ff7d1fb34475dfe646a095a9ed48a5fbbc6b3e00ff8253d34b903e9804a12a726b71816ee53a545c5b3e3db2c4bd279bf87016709bb7eeab4777f1a586811d723c71800a1aa8cfc84990e6adf3b292019a0f53f32262b5dd4adfbbfc334c602def51ab42d26dafb3bc31358af51e2072363c25cc6d667cc75d509bd93aca992f490715611b9ce34e805eedfd64e1df3b490562e5b6e2519682bed9a1d23da2728a33595660fee44a4e871cc3702202063844b3993faecfe780efee72deec7749a406b995db71f2e6121eb4079ac4bff88b124d3573d7e14caddd831ac62a297289d3315fe9c8b28f01ab5e8bf37b9bece602935776597bfbccc268a0ad9815475a0a034b7197a0e732497bd8eace9704c786c8902f3446ec677d0dc526123063ef8e93df17a5b9a4397a415224116db4606c51ab15b1ccf737744d5f6d9a9c130ae5000bc5b1713f5bf71e2f20ffad7165e95097dce83ba7da6ecd967f79ed729d47a75b61e4a9f2a3a170986aabe8aafe9c3e24bad89412f0892c657f8c5a72c6eb731ecbb83f016a995f49ca3328b5ffda2089789a4db13e1a0ab8bd5f1908ab3c8b2c0b40e6e1a4b6e17c9ea9369696357e210400b88005c837395446311f83ff2db95162c9268881238a0ed2e11ca0aa8e6ca556888f235e08d3743bc3725e0be63c568c9e27d4d56b57c6752b8dea707255a492f50e2ac559a744531e673cce6e959447f447b4446c177d56c073efc3bf5a515c5c4ad5d999c838e60d728394b9f4a90a88854bd8eea02c49e86aad17b32c95311fa04e4bf0546a5b2b721672c71d1c0d44c77199a4c8f6231dcb2425fa7ddb37cc35fe07504487e5a272c1b4188f604c429c85f290ef0f42240096b6a3d3402d5002a1cc13c0f01d47721be6b0b4c6a8037cc6c1111508d5ea9aa2ca5164ca6983878751c97b4b7e9265fa2d823251d2c1deed327137fc7a7abe4b66cfc50936bc1c58f19c46d449d77218cdd9f9ba28f7e6f0a1e4779fee2545278fed14c0a24b471835c0c1e9750f721ac4a5d03563caf5db74f41fafb31e2eb0daa2f2208109155fc1e7d2804d3f36c17e94d7a118dff55ac1dad8d202435e5f1b758b434b117741b3150b768f1e727663113462f3fa44d9a1e7f114ee3cd4a8327d6214095034af35f816849d2d723cd29f851e16f9a7e93ff8731d39a9565d769fb6239c21daf4537c2b59d9a772357b6fede9a41b807e2a385b7416b8ad72c128b91a44f78345e762faeb8def40867de86c3fe17d813748405bdc19ff4cb8d87e9bfee77bad0c8fddad8742975d1d2752cd03e820b12e3655aa65b7b15922e15ac06cfec5febfe856cf6f9bd3669565d224b723cb45124b8d116d602412155cd9b69e4166871fc6b3733a5de6720ebe70f0e4d4f1d0fdb5cd2a70bec346a168bcd25754856c44764066ae552a60eba5a4c99ce6bd746c805656e47fe628f47b68723018d2cf5e6aab56beebc87266ffd1c432396f66d00eeea28447fe0a8fb9bf1d104fe2fabe85e8507e21cc72d454dadbacc8ce189a582b8a6ebb49cc51d9a3f9a7e25251f03dbf46b29f3f5ea5f7cdbd0b34495a763946b849f601b6cd9c6e3caaa6fff0399269388f9765725b916e7bf6ba72946e55a33bf93beb294b489cb76352e3c7fbf55d24f6348a72ccc3d44f662e859de57479b401703ae17ecfb759e99bf303b274f0502a304472e460c661fe307da614bbfd3bf227265992812d31ad6de0e3f5385fc5bbc98b54ffbe87d16d59ad5b01a397c9985e960c50f0662ffd52417270e934a03af68953c1cfb403f68286465b1363e3611a20475d5019f6ca2550c9be900f13b0dd5872f82093a782b6dd1229fcb27712c5f2acab2ab2f028e7cdc88c8854c25899a550632fef4a8ff1693261aa06bb3af9b8ed18742761f80550271eb5f394e5063e72466be377a51052c66066333a24d5353ddebc1b30109b15eb5f7fb05fcb883c7222f7c4794ce8686bcc3021a1062d53bdb90f8791320de7554c601af4671a2972296234c5eecf872e0ec70f236cf1adc3b6c8e8dc5659c0d7e4c5a8cf2ac73e14a29c1fc63512ffe83d59104dea62e2afba6243608ac1683062be76b98f14c3561b39a47ea80528523d556db362c44da3f50e839dcadd2aaedb4484f7f1573c7245a66d174520c278917f84d8eb8835badeb66d83d166854113667c1d7980c16450e724930765c45cec47120e5445d67a2cfb88e69ee51e9d171a708188bc897224bffe5eb1bcc4db737ce42d4cd3c8763efca82314583aefdccca4154e813e72043b652e31703f670b69ea597ddcf7118b62a98e863ebabbd0f7018e8f90477232b74925251da8a9e7f55cd8890f836e0e71b263c4e1defc258141307cb85f628a2b5cdfb512e332222dd8ca9cd54f5b73d7c0e63ea345fcfd5f462078549d72b554d066d56aba4b1b21bae5130e3c6359df483ec94b2757b0b02c8779eed16eb2147c3c264fe63f62da82649b9c703d6598407c1cde5c2b3e3ba54069514f2ca8257f32c0654135b7fc0c515c549036c90dd71f13c97233f4ecd79b6088987200bcd136c3711801d106e7c9ef7710eadd541186d646fed3c21b6952e866e55a400a5b24c160e6a698a266e02209a8c47c1283aaca9a34263d6d8aea1243ee721fcafd5c9ac0e6346d70bfeb0cc361399ec1ee58249f7c5173d9dbbf6ebfdd58ae761025919a9fe5649138dd15f6d21d0f6bddde3a7f00324ed8ee292ec62e72a72819dd3f513f9ea9eba667cdff4671188fd1fdb5dbeeb9b2940766ce440f0e3fbf09091bc806e6cc784976f8ed4907eb42e0ad4ed7028e59815f6a6c2d326d93d070890f6eca3e36dd0f2356460fcf1d08d5e14424d47ab438e23316b82072047fd6544fd030939f8cebced38832d62ee5d12ad4335f6a7620ee835d79751578319065317e8d8e524a1fc6fa5e7beba31d4ee0f9cd1b057f2055b55801f628f417bb4e30e2baf3f1e71388f1a9a429169a41cf2b12bf5692057851f1a1297299b6655f15eebded10a03f25e3b2a1557823a858f2e6068306ca1ba692497904162c535ca4a0247c0f5a88438a7eba17d63206a5c0756043cf112b660064e772dea9ca5495eb6d2b7fd85a7ef28a5e6e64220d147b390944693316e004176c69d4531e2fe71e242eafb769440026c8fe17d98fb3a60c06a5c2b4a09999140972b3760ef073ff07034f9d02ade1e719e012fb8c3e6ec4bd3287f81d05f0368472e5293ee0e9be96540d5a28dfac3e545f8f431dd8f814d08382922cff62f0cf402bde3b60e96c23a4dcc1c50e120c8372f6118c6e2edbb6c1b5af1d2a4ee4fe6931d1ec29ee8875bc4efaf52c689a1968f9097d4084905c2d027139c33c8add725d98f1bf129d4aecc669a2abf9981eb44b65f4ba6ca60413892533b147ac7972f40dbd8d771b528a8b2d437b21247005667c45452a6e2981251e524dfd8e1c72d9aa4f7c3478bd3c0f1c09e9845fb3ff194b8daf7e2bd8bae2e97d7f851589725f17b584246997f348ddce9a0d507c8cf1bcae81bd932a1c52bab47b2ff501723de028b2f18a308a1b2f07e6c93bde2d96aa99ad2910fb42ca9e3198ede35a36e42554bc84ac6ba02fb18f9506d85f2569e266fb6b5d560cd4c68e289c53400ce9c1db2ec57fc69acec01d6a3a87037dba48a76c86b4035e87fdb32e43045658d99a7199e4f6e55fba34c98a75064fc37170453a346562b0c73fbf50c8cbae724a869a1bb55efbce9dcead4e7960dcd3ac6be918e9366083379278020f98e7688743c75c81e23ed8a3f5f60cd0d49321ca41d036333db7f2652f2a536ebec770eff25c52843694e8f8f736eeec5b9026c3ba9efc945942ebedd2e9a85c1b5e1c53b27b3c7ef188fa223421389253881bbcc1cca14ead33fa54a3467382cbbe1aba95c4dd2a760a042a6edfb4b5558f062c5b1f778349b512b93038eb8c5fe8727059e6697745ca328d146b03e597ee8fb71118943672fd7f1fc3df171c06b24fc06dc4599d0612360ebd65e8a07b941fffad59f240e320d43cebbf0da855f15ce22aee34e68bc0878587007492b6cea5cdbbe2c39ff60307d2005390217042040648d3f82a81d2bbf4a5fa15d950ddd6a770b3eea533ed44c2c4915ee7658b72d4e92d2c69aeec64ef84297d31e545934794e6081ecd3d339f256b0d7383713fbf59a5cef303d15782cbf10fc8f81b681b1bbedee77e94df19bf25596125e972a2a5308382cc7039c8c596ebdb71d06679a8f20f8b19b0f810a4e0dba0c794720b1cd581f5020535290607c26e51eec3a312045db42b20db91e6e604152c6925a97518556a93046693ce4e8500dd05936b7355d1942c0cdada2bab063b268b72dd55d7109f9a823caeb74acccb2190f5a58f0598de9aa1fc82db0119d3383f7231a426376a01de061272c250841a09f2e273b48dfeb848a1ad24590306ce9c37ee2cbc669b535b4d1229f9a26ef7932851a959203226987efc69cd45d1358d72fc805fbb33ace9abff3480b180691eddc9bd42e2ceefd83888a50497ed1c0b729f1e454f4c6fb272fae8b36b232a9a4d2cb7397a46319ea63e6c5870dc75b42a165c7b264051582d8e80a12368f305eddc2a8994748323ed58838658a5634172ae74f4465e8bc4d9faecd0ed51ef3d606a100615dde190c42105df8b16273615226af37cd3cab361c2b5affedff5604ee8708e7a4e861ed2f2d8029b061e1428ead8b631983042238d16d7e9e96234b9b27afb9699719bf8d7af8c0154a81544b5e2218f8dc2f5db1cdf5064edb4110dfd93de006fd1cc5a9c747fd7c7ead94b80628499c1329885e1d4ce44fe080913f1c6c6cea71ee711e634dc268e056172fc29ab1ea5eacd2a7b302ecb593cfb549dafe7aa35d87120d6bf8adf45fd5b72b1969ae0c65951258fee5c18899008c2182080232b31619e4d5e0af6e64be87273c4fbaf4518f02f9a2ad1793f208b3144fd29a365a9e70d0db689329f52507231ddde803a19fa4ad973fa70e3d4749896079bebe1b1d47f3f1cd3e7273c203b06b9c383a22073b46e8150a17b66be8e26f8a89ec574459efe74b19fba2bf7729f19621eb8914dd9c5556a8f00e9f72db9d7df7d97f4e45018ede1c06f7c6268f7bba6428ea87a33d2d6eedfebe4bb2caedb4a1cb8f9dda196168b34906e5269ef5f320f40bf4f5816f3724e1305a6e11f699cabeeb361e1e6eb87c4d00a8a605642ef6122067acde69d671cc11e37e66e666c103ffb5158c8cfab86941a17729842b622457b5989519be127fff0357088b1012ee88d7b492bf1af09f0ec127283867cd4b8d38a14fabcfaba7099db15ea8303f27972fdd13380588fc7e3f53ee5f69edecf98504e27ebb1d60f629bc576340544208e4ab2588a2a51c614027225730261b123065af0e6980a6c5907e59403df0cb12b7b0b9eec6b0654687e7286fc32fafa5badac4267e728e404487db6db51e8b88751fb9108bfd96fe72b2371312ccf16a7abe2dd8e2f99d451661818296ab37a7aa848ffb5afcdde497d4557b1cae154e0f307b97b419bbb093d8a0e8ce8654c3cfbae0952ab2924b180721909ded175964e55ec3777ec88c464aabbdd267b655be4882fe566685c78733398c32e3f48c3bdf8956e3447656c971317edc42474a09471ad509f1532a09a4b30a1efa1f1daf64a57393b23c3b7f71f38bfc4f506d90d5a60689208d8b87c6ff653eb5f7c0b51c80f1372a2472f9c6fedbfcb659b37072ec70706f256b10e72b594b33fee75b25e50f3e1390b52923e7b7cd00969482022a2b4c0d30341ca724e06e0a8e5e3f337415520dcca82c3fca0952bca24241a7be718660e9fc4eb31fb2640b27be3178627db43407ade8b1eb07b65ccc196dd8db3e335850467fc72c0d212df3c119f367ab7e92b6b73af3127f6eee97d8e5688fdce51c22c476472cab8e1abc485960bd4621772631f3d98a84cf213bb7d14a72b3efbe99dcede168bcea5cd7dd2616ab4639442b568d982cfe89f2a07b51c35c11784a0aee67c726f7fd5ae52a629a513d1cf05333839ffcac62b49ce1e8765b3b1821f5ba503103317e4ffe45a758b36876dfc7e67b848d4ab9dba67767f9931c562703706c42f8f8c43c13019cba1f5bb19b490044a31227f0e79013ac9ffabdc44fd7a89ee30ff74de6a7a79851aaa36af6a9076b5c02053e1fa74511609129b1e8f4a4b4472a9e3603b142ffe66ec975b00b5c5b8e0b9d3520f3d0787363c01b63dc5136f513fd8216433ed503d67fc9e31ff15b060558a618f06501a73813ddcec6168bc2af5ce8a9e3fb48432816467e0d8cd821e4361542b461977d1944f1c4ab5108672b5513863cd73e5a5905afa7f6f7212626dfa5cf67a52ed8698bc63810a36367273ca35109e7748b59f06ed5a2bd8612cfec93e34a078ec320890f98581c7c472393081f0cafd8ab8ed7ef912a50b355c363fa59b8653d6d172fa17a2e48e45728e6f9c28499af846617c32cab4ba26e4b227a5d58aabe034de3f074130ef5b6656e1925bb79f376fff10594de90b1ac30ba0ea48895eafc6cee08bdc1d8dc072ee48cec6aab27a11bb700d59ba23861f7864cd0ef70b82b74da40e94dfb0a318b42c5fab91782bb8671fca138c0eb5089472023e7721ade4231c73751d7551729361cc702438f8a3a7468ad66e9d1cb2c4ff8f35133f0d0e73245354770d127268c1c923533f13486f6c5eeeca2754a9611386463c115b65d171591e1939b272f000056ca07ac49ff82516a0d2f2bb445d74f5488b8046ec556d8fe83f420800f96008dd41b55ed892c6e261e06edad17e11829a2e84c32047bb15dc317291722996e7e64589ad9d94b41d76024707bbc00afd44c6a51148ec980fa77d18b872f3ae6dec6cb5940c57570fb512c618710879bebd77c9a8caaf1c8e6002a69b725a71c92cd25354fb5c4d07ff9eec870da2f03192546912767682d47983b32231698094ca0bb84c13ed432816d70fc00269708df602aa795b76a1e79f69982d72588b8dfb2d929a75d5a4c3ffad527eb858f150746f47375617f1ea2e0d1c462c8e9ceea185cb138b399c893b0ed965b097a26a92b4978d1898a039e8fe079c723fd32f2968ab15a58c556e5bd86f90e344512c296075f336bd7509fd1566e472579a421987e208f832aa7ddb2202d72a01cb41452739525d5b951d96e9dfc5722a99b5f550d913f19bb04f9929508ebdbfae165bac9fa4de47470d5ff491e672a225ff25c7894cc5e974b27fd5262a497ca47d1a67e76d5c5b3f9ccca866a372a86113625b4bb53f9492bf0e2e917d70a0e8f4c08897e94e773c05a8e1b512364ebe4e1cee8c8cb4507eb990200576be2572e372fcb935d0f0327efba76612728e8f890634b0657154d6d9c4a221a0dea64f3a3537cdace785db1835e410a5723bc1b784ab4f3f2184a908ea3757ccbaac191c4914b607d2a6be4842446dde06ca397bf74106849b8de7bed14f8c045085db51f093064a3cb0105fdc3bff32729611620e42ced03de666970b6674c0cfed0b15044d6e824347bb3fe4df031072f7d69fb9f953cd8594180b811ee9c9918ea9f966f602fd10ae3cd15ccf70a272eec7b006b17b7e516898b40be27fc6e25c29f891d66925e9c0e0eef76913b207ab6da4762bdca34f8123ecdc05d6379d7774da73b53712cbea188cbc28ff7b4854a63e21281b4343bb81855c56ce42e208a77da4e7f7fd9b1df730e001b427726d21afc9c556a6999cb15a481b056c6d9a5deb200624e82cb210a6fa1acddd7210a5df024e84e51f118e1fc60a160c3cb723dfa09dc6f3690855ee5f42e1e5054ef6d9c04cfafd2ca142ae1de55ea80a288d198a7de59d50c68dc728ed159872796948de5d35295f615ebbc2ba5cde4a74e4f00f0148f26bbba84057a9a18c72a26560977eca8b35028285ad123ccc3dfc3181f985c7ddded0355a093e00017221bb1a703985c9ef94ef4dcce7644d4eef94f0641617470f428ee1f3c8fc9c52206c59ba06b6c6cfc40256621d16a29fd62ff848a7de6eaecacc1939a899921919831bd0745528dec7b2845734c594490e76227ad789af95795e96bb84dad472606bbd50ae12179fd561f5e7488cb82419d0529887ce06aa8fa48e3221047f72cb3ab0c3db2413925344efd56e4ee57d2b0f3ef65a0b72d9298d4ad8f48395729ca41380b89d159787d28051b20425632a278866f3e70b8f04b0c24d7da24f310083d67759fe7978e92fca706d57d62a8e0820ecc6461e972005770ac2e30c36ac87471b168b0e962b9b3df0890494533361d1ccc55b25afb224c8208cfbbb72be6c0c0e9a5c89bcbcdb4e2dea3ae3ea2531ed19b8a40a8352be749c0074fa48551dfe52c041d4bb14e019c15027471e60d88b1e7eb69e3c2fb231f7f4a02d72a9cfde2fb463178b88c84510f458087d53ad193fc63191a9f7940b7754b0082d7bb14fdb2b83dd64e8821d320bc2aabd93ad0733a4a9fb1c30d563825834270595459870d820c88089e55e3e0b8c8a43e39c9f7309f2765903c50e9aed11510e4b324dea1d27b60fc86385afa5b57e469ece2e36ea8aab0e6bd861f297d0dc62884bff0b7b6ac211f0c806b8a7a5d3dc43afe918799fda8e57f6367bbfee165d82a36ec1e21ab313bfb8166b85c4734244f07bde3fc79f5bb085a7232c0ac2723390a41058e50b0f89aab4fdd68f771a925e42ba2c1b03621c8b075bb4d9ef72d95f840fc7015fff0ec78939a08daf33e7f7d12c09d9731e5123919b6f4ebe408a3eca36a17d067c5d172507d08f0cdaa33e54b05db42c06a873179f4834be726ca75c310d129df4ecea23fa8b74648360f0e4a82397141ad48e1f550024c87233cadb406b5ed43cd1fe1e457b5d423f4b5806d0daa9232f5826161387e104726812d84eabe64be491278db03530c9e882b15e3272dfb7e2fe5f158ca238bf7234d4b131d1b5388835eca05312f2e64595fd55a28c0892a319a3b6ed96055f41fb68168f0df554374d82a35b6db4aed6302dee9f3ac2dbc04f2d9739f7834f72468a032f2716b8d5d2c2bfd8bc9a1ff23da0c1ee0c07b69a0c5222371e622d723140f678ad566554ee8291777501ad97208a0440ae73f8f94a82f087a92be27271fba680ce46d2e4e6f06448cbb8aa87994e1e3dfdb5fa68af5eefef3d4aa54c764d476f3a38fb0b8aeae1b1afb713072a7c9b1ad8b0ff8cb9a1ca459e77ba722efc868b8c54b8eedbb2082137b5c131966a9afeebf37abde97e109ce2bf8972457d946131591fe352eae87a952671d8efd8f52869a4e59b0cd049071cc0b072621977ae656c5fd310c36f1624be775f2e3ad9afc0fbd215bbd3f8d7308b280762ab63ab5e7cc7271d6a34a1b37101c9cfbb650ed30e33d0bb14b11387b9387258c28f9b1e9c148b1ecb17b4a81b758cf227fbca8b0088af1e8385b94c603b7235661116defbd2d0689d61a23fe980ec53b9fa3779e316885edab61da3c29572a4302d2f1ba7d72538ba5291ba9c69bc1ecceb6a51d8a86f3275c05bb9df815546e71cf75da219daa39a76605c44d6d536a8041c8bc43488ba79576c63f3fe482017fa6a8613e6c4205f4f756ef1a3e4fc45cc0d4d7e7d024f463f959c258d1cb13f6aa3a23ad8430cc8fa94c130a64db17e2a657c711e7af99855c40892b072dbe8a50e81197e3dd566ea36fa9ea5e0644bd64633bdd7687dcea85410eec25272e00cf1a1ef1893e918830e5fc97b8f331fbd3eacb3a505c2a17d4a50571c725ae998ea498d6316e77cf317a876b81010de4616046d8d43dcbcee95088f861cb620dca50b8d26c7138c1114c4680937402c06dfa8e6479f63fe2623fb9cb65022ca818a00c5a62c1915752674721256f310257df634dcb8a30a94caad5eb060a6b7f578d1d4f14e0c718392bc90b0cf80ad176eb69a4fe8ea5c873a1436d6632f2fbbf0fa4a8b8c1470b6b20571f85eb1dd98d8f3cc4f97e8d05fef3f4197726ddd1dd5471e2f7a5c0e601d6f59555326f635634fe84938daa5b58011dc5d1e6ab5b32ef5d652e6458e0048c15e2eb0b95edcdbd9ae51d021df7d897565a85ac99e04fb06cbb3ac8b858e0909fc1f5cd33af601788ac475e59daf7e89d884648714060456e0eb4d5bb83da8350e0321d51c40f34129b9535f87bb02493c98721fecf88c5448fcfd6f7b4c2b80d4b8badb804dcafa37fba0cbe6c4d2ec119063dabaca96ea0301d8b71983e1bfe66894147671ed9ecceec9bd2a585cad0b1772a836410f7fa197e076f30f6f65a876ae7734abf100c0ef75d89111bd4f60437287ff75e1e1c6946a2ecfd1a044f05e7acb9bd35bf488a50fb6eb2d5a7eb4917295a5c606873838e5555283479d9eef62a2dfdc510b6aa29e24e0515795ba187266de92d50e6ae8e70472117f5e6891ea6aaf9e7721947c93d51e6b5aca7a7872ce27ed00b5676fdae841334f2d5e37cb07a4e8ddef39597cd6f7ba5d92d86172d0911042c50b6e3970f295495b6c764014afb9bf37004dbf4fe4c732edb59338a5952ac3626fd686441d4f9143214da9ddb73133b7d7bea2299a2c144753f15e19ad092b44934d96ac68b67e9e5aa1ed8a69569ec6b970722d506ba827e0487253cc709d03ae30e577ed620261c2091ad09fe945b7f40e16389a146a0866f67218a29df6edd19fa1deb11465ac41a91757869abf01ad15a2f2ac65793dcba07291645acbcf82d713e84f59d4390d9d03c0d304e2b6cc61465de7b64e67405372e70d931b1998284b8db1d1652e8d0037a15f60d73a53663785f90b77c66ec87230d7c4a98bed1773884387c524c522839afbe5779f82fd6c326cd538cd3ec5722262a12fddbaa153475115ad40ab64d4d08b02610c28ad8718565936ae8bb0727378312e023922dff75fe28029da3210e826b93e32ccd47ecd432030b20bf063b21e918c6bf64c3665f2d4a3658cd04f84d07f3408445c5eefc9e6fa76dc1a438c8145a7c2ba364baeb753eb725027c37600a672495139f4c4b47f959f3e0317a6c89fce29ba6ad073934fa2499f27d62fb1713254e4d24123149e16c283ee6e7b01a9b00821d98a2fdc64aeaa90facd55de177fe137ed48f6ac33ddeee4bf697687816e31f00b42eb4677d03f4a146c2096b250868ca6f408541f868dc22f72e706dfa5d0cb37f4d53ed88cc340201248613665bcc4b56f76ec9b078076725ae42fa9da490e6fab3d82487873c33c37ba7ac20ec01b8674c61d90fbc9c56472d40a82805235af499a1f9c2b1f3bb891e1a73d47dfb28a9e5f062caf64a5a372fa93b45e67e1a32b1a5a99e6026201be6dfa440673c7243e90f871aca9dfe83c143e6eb3ad0b367c94297aace419f9600b3506e45c7d43b2aafc609f69e9104c9b2434a48c6eb35aebee05013e7c415c72cb6fc77f0f11f39d49b012c488c472701e2619dc002d31c3bdf93086b8f27d595615ce015bc471f920a1640dafd12c253214789cdbc1cf5b2f135743584dfcb602c04ec2119b4cc1d657e5a0215572a7eeba869c4cbc6a635f1456eda34cabcebef0749a13c0eb9c2a1065f59de172937502d8f29743b4c10b84f4560b6c99fcfdb8cabe5b445c2734579f8d348c72e16d856e99181b15abfa44d99012014f8f433c0e587725ae7edd88dfaf7de82f2447430aa21652b8481a25d02bd5ce244123eb9f775407ce34e0d065e5cd7d7239ba885e73fc4daf0a2d3a9cdefad0c633d8f6d88d3ec509aad24ba2a3349a5ed2ff079c113ba8ad7fa7810eafec395b6edb314206bfb2243ec5b104a255c15cf7899e66412e462a1a3da3f21630bb329f2c39c726679c72186520f376852364680b8ffef421021d9670963cd8087753f45d6e957747315e874c4fc75f9456725e24c53a5d1a299287615e684b152037a6223c56be30a40471a8d142d1c7dc0526e9bd4d64b3ab653d6585ef33dde1fc886e6ef5f5f66b5f572c177665cad872d3b89bdbaa881296124fbe5e0b171ab954cea169bcf78c433a12d03531fc1f2021b7fbb13ea9f377b212fb5d264987452af891719c42bd6494db872cd93e87723603bd433940f0b2e5f77f1570024424962949d967a7804b367a2fb7b7ee39727fba21c740de08247c3e743c52e18e265ceaa5a62451b60e77c29a8958e9ba6354416f0223f98e0b5b8ecb83e31b7a8a56b703f2dbded105e67cadf021d15a5fca24982d7f2c64188140891adf47ff875c33a06231e3bec4050fac92c3459a55d41b8677a44dda172bd63d8119c4155eae35a732244c1e22d784654ea2f644526c0e49ba3730f572837d78e59568e9917b3add618985b6718607c3c7f51876094899921ed577e7f0ca09c020274e73dbbe6fa6af0aaabafb7ccd7b494a49bf72694473ddc04ac6aeeef9db2ef453773ab7b8886361825eaaefe344b488233d724b7aca023a65fafe9bccbfa231df7c256dffae78c292cd7055baa17382125e3327b30122adb79fcb5ae0115ff2affa0f224eb70d39502cd3a4e08bfe970561728c90adcbc9e5c60f562e32f2b70b68c8e41e0f78377757f37b00b9980faff2726f78451b050ee162000320c817e41058ae8f006265b6d1602904b0420d02230d515efd0ebf7cfc3c9d9c658d7a0ed51921f71286fadd16b5562444c270941b72535c665d58292d3ef26b861ef96abaff6199bcc6d6aff6dfacbe25a608f154722f873e5917c31091a707c79736c300e2c4e9bcb83b4c7c37903694761897d33c322fdf7a5fcef250819f335ee5f1cf092de579820864e99709d6b3370b1ca840edff4aaa338880d7698b65e86d4d6fcaf74d9152aed4b244783acd678f2d2072f007507ec1272706e39b1725e09e7964e059989e0f4dceaafbe03af00b8e12608cbd0064209189ef85ea02f4baf347ec99f05805895c5fa39599e4b454fccd1e1f4a77a006be0a846fbde670f1c7e81dda869dfde2c377851bc73b5bb58031722b16144f7d6ad2ceeca1298e76058a1126d37e4aa028da672524c9801d6cc436854132ca696ec581ef96eec34e8f597b791ae7a4e8c9e69f5d3c90e04cb60272547c1dfd5fb3d99f1da04d596e40e9453d6162d3ff2fd91215e8aafcf79d21720fa015eca24ee44b21622749af3858d5dd303c1ec5e94908c27e486328fc074445a660f87dbad04ef94ba185254c8bc3bdf8e5d346aef18a447c4df9eec3a672347b5a81f7674ca8658cee9479a921b9a55fcc94d8770837458f4c5d41cc6772a73028dcf0511c2e4efbfbc0747997c86b726827924fb1ef0679e768af5b4472b89e0fd52da7c4453d35cec71b275455fecea042720db3ea20b15a8d176ccc72a7329d5c152ed7cf28d08adfda5970b2fccdacdac95d51d49b01d9d3a4147d72145e9b9eaca13fa931c0ece268fb8aa709a2e9c79ad8c253c41f7077dd373372f860826f5a1fa40c0b37ce6e04aa87fc7580d30e8f2ddfa9994a7f043ef75f72cd0a7761d851f430d894e63ab18c13985388e865c60abeff19cd572ec99dd9293ee892791bb6e286da930e68d4d7edc67bee9864adffdc80ca703502747f31628854eda853ea9227db85c471275051c5ce681a655f46ba4b324b418ca0451472db323dcfd9fcaa3cb95ce5d0642f13ea60045116275b99c080a0685c9ff31b72410c2f7d3d9dbc34b8ca4dd6e8289f065bf1a73fbea59c5939127a671625967203197c04d8c4be33041bcbce73f17b4cb2a7538b85c21091579aafd0b2f67b334d58df77ad2801746707f04922000f66bd05fd0f03e7623d1fa60ba97377ea26a526c7a0e7c8deb3f327619c9c0022b9ec81df6475753ab549256eb7aae7653f88cafa0763d4b55d81d30bd8cc33837919ada886b2f835835cf3a05a12f74072553cb6996b4da1fa219e58800a8de40cb5d43eb49d8c0619ad782cc36cdf5e3a3adcfe8bb930dcc1cdb05fcfc59eb586ffab49bcfc87e9869e5124fc00073d633ada60134058fe0098a06b17b69645858e7bc586c01a509a5a4c2c9f37ce56325dd78fe91e0d3d2d841cb4cd86186a54cf9ed0abb40cb257757297534f018d677d8b0c50b8e43bac9d519f380a056ba67828d141347d8ad6d08bd6f1fc71df4f31f8c7ae40c74f4b4e1afb0c0acec5c51be5bed6a2d01829517a7419a90afe7204cca6e5af1736f1e0c7c5fa11a0c5d04e3704b45b0bb088060b4e01d345ad7263fc2e3c8d0ee64ae5b9b15bc47c97b9a1ad1b31fd5f154104b6d11423b01d72e639ef6c81fa87a896744bd2587c5bd14f9694f41e043b64c849e8aee2560672943c3ac22e345f64d9bc65e6c800a98d5f022f897308440a59ef4c30b825ca72ebfca802269caa448f38845b917b182b219b5c21917aabb337be15a552171f72fb0f48446c8922c98aecbe3199c131c1f1c920e29322560978e02a3102e724726b20d6c374c34fb088afd30a272da04148b159b810deef1d6878bb2636809072470276da116e71cfc9e5ee3ac27e80324a1aa124e6a4c06baea00594ed2a4330c2767482411dbf0c7d6d8e1e30ceb69c52dab4c372c17a041f3c100a4fe3db66b821f7b6789fa40f1bfb62d3ffb1f1bf4ac91edad66a31f441d5ad1a8318b93209015e1502574620536aa1d030902949a5d8735e673c34fab44d5e18dcb33b50516a2bf69208747b94b701bd569f23c9050e9d92ca7f5b5b55bfa621e06c7347f981453bea2a5005e836161ac886c5693d4320d813cf9b4340e2df13874b4d073d7cba9b75031d07cb0b4e038be15ccfd5f44bca754fd68e49c9026156d7f80c149d3b0b7f346f33e045b8e92122d0a29ccc96ab9dca24184bc36bcf7e2b7772cb02c77fa95d06dbb1640427712463d64f2870fed5eba4baa756cb9b19a8c93f3f88a4dc06ca4041c7b93c8fc652c35d4aa2521c730c14c1a56a5825a928ae7296633f3018c95163eeb9809ce8d2b58d9038c4f948001f4ad288e615e479e05ef588f2170bc2a7d4a492025588820e6199bdaa7b3f6a8fb9493f9511e9f59a7250cd9f0c77c926f0bfea7fc6a46188a8011e5f7e9ef9d36e33f9c6a5d14ac359365b448a66e08d84328732fb0761d8695b6af2dfe36f1d3212fe70d74f2c7e06d6aa6c00343438cc3e3c4de0a0c1b045c8852443b69447c5939716e3965db50b257fc829018367760cc240ab721ce6bc3b205bb673576790d38d46f037cd176da37c4e27ff9565657c2632bdbf3e1badc6c33181874beec64e3d7177193a5772ca9d49a09e97ccea2fc608ce59cc2e46b197b07aae7bd8ab0e5cdc513a29670960f199b084294dcbcf485f49462b2c14222ead7ea4f5152be3c7cd2a8d1ce572291c1a48c4cb7597b10fc535c8dd2025a7054b756f74ee83e06847cb2a4aef581f41cc70b04f01b94f710f204be86725475187f703f27958d628cb44a30fa3435636430abf038c05e31d03a679b23dc3e80d336498ed31d099086e0da8afe9724cc9147eb18f8c0e2955755027f7a1aaa56c7f72f4f2166a40f7bad01f54d32573b598bbea5d1c87cb5c40c4fcd234272e973c9ef6647bd540e2254fe13a6972cdd863f22a9c6235ed4a210f6119157d72e8aef3a3f9d5c2c7f19cf65470c272aec664cfc88715bf5aa65ad57c6f4f229fd8d73b1a16eb888f67756dab1d8b29e5a30a3aeef832e1800e7095f1896b82975d23b05b6fc519371446b23bb18f72dff56f1a8ce4640d268b1570e42cc01b3fdaedf09ff1c91595a33744ff886c2452f3ce4253f341fb6e32987ec134b5e93c3774091a5970431df2cbbffb59f3722195999b2dc201edeca0981dc19491c09c0892c0123bae2246baf0bb85b12772bb1279a7489982f0939bd30728f03887a4730d0e24082a388ece064de34001720aee700e7b3f993af5c7c7195c5762a5292a59cb7ab5984550f480bef002ee7252dba3386f83cde1c403e3db715b8fe54ff84bd5c5f9ba3046061786c6955a72fb330cbc2c6b7dedf8f19beb7e6c0cab3978440754449925627ca1ddde5c4b723bf770e711b93edc10d5b783bbb826a4dcdc5ccdd8d61d6ca3c8115d0639c172817646a45868a102daec7e46c3cf3d6245f9db29a3c0bb81bafae7e2f54eba624a32083c4b2be60bd5fc526f68aefb469b678f0365475953164be1d27885fc09283e6e20d135d69fc95939351308f2ab4e486275ec2c612e4452200d29e03252e8e17d6c740bd80512245743d7fd8b68ff82f7b356e94015e2a5c6735b39e34643dc5f27764d3fe37b02d2ed8d3faadd546d726f54507bd75f7b2a9d9622640e1ce3b02476573729e1acaaa53d9ea9699bb19b3d051fa798f88710c2e66d6032ddcb029f1b3ffae18fe3de3cf1c5c896359fa70768aa0b11a9d587b421dc627288950c44bb704331c6dc41a3e7ae53a4ed94f211c7195b53c6b23841bd34337264962137880def55273bbdf43d7b82ef152067a1585160039f4a6df25dc4675208a145da573612143fca1036e2949ddee58717cb751464798ed01e9438afcf725bdc170ebb9d0c89e9add4224f50e1b948d2ad502b7fee212b0a14eac3545722e435107158dbb0367964c952fc83e5844317e0c27234af735f39ec85190e0272849bc28b2fd2c2d3cd10a55332989ed1a135811acad3bfdd90c373da5e4d60725be984ba42c14856020ead8c8e55ab2f414b18c66066c86f7429f9bb8e856f48bb7e1aebc27a3639425ccb883d727c3fba2a4671f036c0de7055611f6df5c6724cd8bbcaa718aaff170f5b642601880eedf4b8e43441248a55508e5503cf3c21cea37dbca2620a2386d7a7bf8393a91f6d10f95a354c9476b3ecd248fe85bb24b76bbc787b45cc52958d33c4c6f477184d413fce3d15bdfb330905f402f24572b9f62ad70572a3c013d73326c9b4ad1e76a361844fb43021ef374451fdf97229ab63a1cb78891866a762eaf1fef022d812acf5f4b5794f9f390d2458c35df34601a367f601d576ffc9c2bb38e36961770aca9a5da145395c400c360f7a679b723a79e1ffe02b97e9d3206ab24e07ba7aed5c427798620b4176cd624a1784150b32066e34f62c34e626e6027f10c6443fab470b1450984911090c6bd4d7c64b724aa870d9367abf6c9d14e5c57f1dbea5358d9bcacb9a482c9e03b3b023b01372d2a5576d091d8909aba52aa1e7def340a7bb869294b5631234b84c8698125a229d3c63d6ab695c943c933d4f58c68e26838c009ce97e42aff9aa95a514f8c1724feb570c7b4b093af1a1dc6c7e68445fa334d85d048edc22e0803534d221c94fbc3e96bd543d1e2eaf6f16709b501e85e9433f8156d3b02a483cd166bd501947bf20d9d640e07a466781552501e333ae2d22f843980963494e5944e448f1647233b873f6d03ea516aff029a5faf2ef2ded82d4c9eda7aad53807c541bf496c588d02681b26cc020707c51aecd7b28b57449d1710128e17756c467e27b101ce724b2120626c12680fe0bc23575df80900c4686490c9d1aa6686f391bfa1c42e08f1c3581c855ac503471618bf91ffa39cd317be64b49422c0658075e14984cd725d4a688fd745fcfd2534b960864c73901065b503fc221957d6a09bfbc8b2cd72ec5dad58648b5eec23b15348d814316e03f97a0c36df73c5b474cd31c42154722db30a3925a5570553ac0c2fb28ac296e2c9491b3874c73f39524077c734850affe00da5480fab81585cabdd9d38bcbb965aa3df98e8c9b94fd36c6ca75eae72a1d755fac7d3cdacae472fc581447c41eeaf247f74562a6eb20b4b282267402716d54dccd76596c103676102b90bf5aa852cef75aba95378d2bc526c793e6772a9706381020fa11111e5e44c0eaf2c552351f375f15229d3b5ca67237e05d472a30e5b43722cc75b0147569c08aaef63d3604b3751da9666427c83bf94ae61721c413be9273f00b53b4f3ae3044afa465a1dc9bd755e40616e78a40ca74e423a0279dc0c456b38e1c9675d489dba6c6bd232c360864e022c78e9a4799aced6727a4a3d21dcde63c79fcab153d8f05f834968d75166cb2fbb74422d44a7b0d9725ce58d5d6efe236c0ac468a0ed802b70542d1e666ab6b42d8f89d43b38c1b24351546916fe8bd2cf832f4c4bb473e9920ac39e62c4244135530f021f5ce67b33f5f9e0272a9a2173e3218b00e1ab23fdcb50c9496be6a1d8420ae852bdb2ba7234fd539a04d1f2626761e9e77e40fae20d6eaca2377c2d56953335c6b0089172c9bc4998fc0efbb00c4b6716292558e69098a32cbfd808d07d5844fc0253bd72786ac036947d7d6789a0755ad5f664cdb9cc257010869fe427960e34f86d01455791e351f5aa0eca21a740c1196960070b6eecf1a6b42ee211248f16236b2b4a7250cd4e50e52d0a7344e30597c8dd3a5b115bee1c6a07b37321cc9566133772e7e550632f2bb4a1b7dce6367312053d96d82d00e97a87ec8ff5a312df844c72922144d2b8bb0434c2fd75e75ec62be14a8a8136388a345670f5f3d554289c72fd3c90fac095806631dd05cf390f6a5346796888a8586f54be7bfbe16b05e972643d865fd78d37f14338d205d3115982393af7d341439960629e71f72190796d6c1bb47f3312c22d90692b43b67ceddeedb7287f9be800a0f2d7553439687f24a45729f9865f37475f65b0f5277537a94b1845a3b8718e4f4c043d33b0f59b4f174551ea5637c87075932a67c03ecf6b2123eb507e9305c0b6970f2d37cbf172981095d89298c44d024202dff612d68cf20738d2d4248b23195b3f8823dfd672e68c470761c72b96230b7ad8132e2c23acbafc2893c5eeeffc10b8eeb160db729be81e90d64cb9610699b90eedc09f4709c34349ad1eee52edad50a4aeb9725ce1ed7c39ed71b8df5abba626da22dc0fe569a0cbcdab0ec4552b7955de37d936fd4eadc61b70f430d7bbde9cf6d227b0d902d5c5d5d9fba9e889907b8e646272d1b8f5508f48d543323aa5b09db25dffa2d58b2a44dfdfaefc1862ffe7ca8e722d174e82401adda656ac5e47aafb56f52e7f6213a2edc35d122b2841268c187260674d594590b5425e393fcdb24384cafad9074e6ff2d115b93b527b90aaad729cdee2d0a7323d23c7f674eabcba538ef50bf760b700ade2abbc37b71475227277cb6f1f47d56028128e62d51e73ead43d44fa6752f030188a3ccd6cba24e3532e915dfcdceb196f88326f4e94f9d44ca2a68a558dbdacca22afcc5737d5006e7cd10a15787c438344f94cd9dfe1d494322efb0b48346de3bd844696f7eb1b729317529c971e7481336ca4f914040f4283da1e66ccea3b8b3fc40ac13f2be6671eb76c90b46ae35b09f78644dde1fb0c2b04a4e41f0004adef8b0d62f258b433b8187f00648875fcd81575aeb89c604ed1903a8e2f8983ee0293fce2b47eeb435f27f55a6e7b448786f27b52db9856c46181725e9846756f5db03798c2d9fe16546b7972fb4b1544b37d07766ed01cea36fb1e33d841b3226f43a2f066d3fe7295277d190365f6d5b38555ce895738f41af7710dedb4e76c95777138f917ca03a21b7c28a7f72dcb37191ccd2a81bce427d09e0f138c3c7be873886e4bba817116070dd4b9f6537669035a63c0e805fe78a1ed73afaadc2210be85b418b16353d3d865cfe41ff1e8ed5cc3b6faf2a03c163bfa48068831d1e297c17cb5d8714a0807ef1abfa6a26e33cf35274f3f922cb4af69b73179f2d5943d5b584d7a6454e593f63f2e8e3774cf2447f228e4ad0ac84c5f2082df941ebd43fc7e837204105e4eed57ede64ded45729b3f100aa543b7cbb0c40f8bd08e8e5eaf9878dc4c668896500e644a938d6466bfa8f4a849c9d182495764295f473e461977c8d8b0723b0df6ba5fc8ae15ebccb71a8fe05dca3f4f4b127d5c3693b0dc56847b1bfb72b09fb018408dc6d9a33623d7d7b3d6659c7ad4d804883a4644f8ecde2a1bcc25eac9b0c02806122546652865146c60be943e2203e99093a4883535b4f40d1e7259337fe0131f20fbf627dab9ab3847cd5e2f956031dadc0a3563b3477199ac062e754e307d2cad3354cb4efbd4d8cc0c91cb56fc6174b8a9dc87c100247d1771b54750bd5bfb58b3f0d19ca02c914bd8a7b253b35ec9c93b726d131baf5a94729b31518ab57ec4b3fc7032edeffdf2b0b10421afc1d5e7083dee557075c2a52528643ea1ee521fd1325e1aba256a60bedec176aea1ad7cdbcc2843faec66b772213e140a8f07cfd33960e96453090253627f591b2fe7a2c970cfa6d72475ed5e45d262bdc8e02ffa255a047072245cd780c6e977dc552f518fff2a75e596a7664ff9e620fa508ce1d76ea0d0811cee6e4b33c8538951fd5920cb66f8e5db3b725818ac3f106c3bd8ea01bee1fecdb805b7ce0f62d84bcb313e4c53f94852dc72db22dc6d7d64d318fe56bfdceb23b0225a7892ddf6f87cc8a8ac3e5452c6bb511f9fc44e74f57476d95459f95d2943bff1f69f338c7d377eb5446bc7ee0945727e16e34a8a5bd77a607d51ff455c24e8d715efe4b0f5539960b99d0b95ba3b727864e484c29bf0ea82e8665f60a44cdd784e8886adea942f473d59074615d072bc38828de5c6d05b52a59beda25634b8f62f332af409b62016d2949dd9692a31c8084b5bae20bb81c19359b47eac9583d20947d335340c9c0a62f0a32af06f724af0a94bc9bb25c5039587f44e3652fb675a194de63b24b5092da9dc2f9bf6726cf05ec1be23ca5efd81d182d601782c93c7855d36a4977c70864d60e582257298c20f11ec55fad14821628aa0f303d1ffe347ae8b295303fe3af08a0a4d847217ff845b8cd87690d8bd807a28733435498aac4713d1210cd57ae0b403b79f725233257c2f3046f1776fd3d70339c50e80a3cf1e5a434bd6a6717506cb133d72f47e4f2c4f0c1b95aa0b55d1b4e8f0758d713e5fe7985364391bdfedbf664b72063721331f9763aab5f1865953541f69f9bbc1dea829b7d9a56da0f0f4c0440fc1d217775b0317b37358079d6994190fb973bcf61b2c7bc4d927e76727d2316438d0340fb15bbe4d5bf1b11644e453f61e98e45215bac479ac0738a88308ac3aaa5c8f3888fe88ba84661fd8dcbba495480f60820e11f9bbc30d061f92892463f96778c716c9ce3491cafc5bdfadfc254e5d58dd5051c70dbbb47d2f9b6d5b65bb6ef209c04574c0dc3d5457f7eb27dc6fe118461d9cd6865b6de98861161572e89ab03db4e53cad32b0b2f93e60645d7958871ab6ddb1ba1a4429b24b2c7b726c935b438cad35f906eed67a662e3c1190fd6099a46d0423ba710dfead42c2156033d8864ba22bcfed78f0a533530be8c54bbc9006dca003804c78ae3d97847223f32dbc47c0bf789ab08f63f8fa4d5f34059af4b9aaf0ca509623eef3064072971a242465a2e79456b7e61dd11469218fc6f722fd15102b88f9759f3f163d7273310e846fd6e6ae193490ec8da9b01664f741579b0fe19397576999a7877017415babe91d967e6c73c1463dca7582fe8aa1e19f5e0e3ade0dd8f9046cf4cf4eb827d6f03be693c5160b0c100fa5d8431519b7cc31012793578295a0126ef972f1dd3fcf1c10d7197f4408dfde21d0f8ea5b9b13c8aedb991b1bc05cd1d7636686b22dbd91b54a70eb781d51c51b247f9ef2bfb251ddbe2015246c976abc8172fc6c8cfe28fc1539ae9f523cb467c9a61935038c16ba5f79e8bfe640e2fa1e6a94022b1b2e7a0c761b240e4563fbd9c947868f8fd4548480c127335e6888e272b4abfcb338633c1ff9b87cab8e08ceb788c2aa2a4554218be2ed12f108e05372c71be5675ccfeb72adf50ce3666012436da33a7b840b67557b43d802dafa8272dee31e5bb32fa361704385bfe9488d81a98dd6e4263e450ca0f86a81ebd5177262258fb2d68a3cfe292c01207a0cac26e4b1becd57f8ed2df6d797a23b97d5722a5004579c15dc912e49cf1c64f67cef8dd6947827c621770f78fbb8ac247b72d97aa4b34f1bb0755fdfcd684c42699ed59c8072b70058c38066f9f87ad8023c38b9b7c913c871c5cbe74340d45b4fabc04bced1a7a71f890aba472a6b49527220f515bc1063072fb11cce11998f65ea09d24265730a19dec8ec9a574ea19d729677f6d1ce25a3224717095874ff8dbbcdbf69375df62acbc09e190cb61645337956bce6117f8dd69f4f204aaa016d39281fdd2ddcc0ecbcbf5d5bb7a7f735728a72dcebe5edc9465c146892adea3fc0b9f7a74fe531cb22a305f9039f120a19019aec34fa8992f24a1d2d21df6ef14cf72df358bcb7945883edbfd698cde972807f88d0dccd4110c78fe2a51da2d6cc44683d0f9339a21a9b7f7140fa506d718d84d35e971d788c060c09ba1195ee0b03ec5f6b6049b805d04599d5ca1835003d13732d865aaaa2d6362f15c16b11cd357387526a7774aa72b7a456559a2d722616506c1a34b63332056e841966e7e57c00fdcd69ebd54e7ba8025fbcb2da6ff3e094f30a932fb1c37e6e4033e56fd681db14fa26952c2ad4a31eaff1690865e3d93dc09bc79ec44de9f59429c5b49826bfb88bdf3f187719c6621d2c2d2d4f5a64dc48a1284df208b98d4be1e7fbe4776c0f0a0e761fd6b5afc9eb0f42d8720d9ed4e830e267eb62b8923f21ebb599e65bf5ee892ef7927a6f16e9787c6c72f50da718ceb68529c26e83560dc56c5c0b3df62dd66e0164e1570e7a51939a729bc78ebb5fbbad260b856ea03050a5648233d0871a522cbbca87ee4fd2050b450f0b52c0fc6b06baee84f8567655db0aca188d87bc3a8303b13f05065e392d721cd17ec966884ee0da019cd9e5d09bab5c2f7d01c3979cc2b8dcf8340fa78c72ae7f1195836e82560f37885d3c3d8e0e8b2afee47a80eaaa7126efecced1af57879ba553b4dc5b89e2c2f6b9ded2b2ba0e31dd0b31425b97b128e5fc11d2bc310bbce48071823329afa470b6a74298a50d7a1f03c8ac1621bdb0d5afdacbc4460b31579b3478666eaabc86503fbd7ba802879e3a530f91eb6687a195ec143c2279a0d40e4dc0701e07be75463a9b19a09dc50bc910c047adac133a5dcb8d3772a79f1f42ad8119ab28d5527c0f24e6f9589b57071a3578f52d042a40206a58720e412c10094214d9fafeaf6be6bea868141a008875b4b113d415282e15b54572cb4ee611289eae12482052f925f8cfa8f8890356eb99b644f9fb9ba55a255a724d3413a1ee06f63791275d408ecd67f7d8194dc815d72fed858cf43c88c308729ae4c3b1f949b9dab8849492fbbfc642e45601e872843af7356a6225a44b6e72a9fd2c7ab7b0b0fec058260e3e265007276c53baea045e0f009429408b4ee672d96ef8a244d96ca21af9c702a875174a49c39b147b1e9e7b8afe2fb4f4167c728513bbbe13609a61fe996ccccbf04363b2af406a513aadad61f576631b0f7b0acf1a0f2c21e6660a7b54e86aa1bf3f53305188da28970bd6ab01a9e805ad8823b7fb479a3af167f6d6323b2d415c1f10fec0e0504673b25994e60bb79e54d272b3342578f76c70a6770d34c50ec344e8afa22672f5a5542707c427c98816ae72a1584ca8aa80d80ac4c9343a52414e18a0d0572d70607871ca1e72cb516f753e5e3e76809d24d155ef68d837967e6b80a72e3b13848329155f7db1057db66a729b6459e25dfc8e70776cc43005a67f00af8d9319c6b02c165b75b144c62f571ee7afa97235847a0f2796e1e1b3bd9ba6c9a28744cba833e695761cef9b14191b0aa9c1e47ce065bea5ee9ba17ccd5accb3d3764063d4f3d5b4f79e71e3bbbb335833598cc745f4b5fb911dfb5cc6b390d46547656faae417f015d17c67b1524feb559e4fffe658d836fb3a73b2213b01c4c61cf6c1f6ccd851b9eac4bee8b14a9cd283a47f890bc3ab7d10afe2fc9779f9ae044c75542944d88644d1c79935614743f9a7837e89270f05439d102c13adc239d3baea12d99b8943c2c83417ff6a9c684fcd5550b736a67b1bdac381d6f0114270029282915d8448eea48de4137204d245e8a9fffeb9efc8404262601cc4e4b79dec8b4b658d60f4efaefafc97720b72ea291890227407eb366ff9fffb453282beb1e8118e4bbbf3570c7a6a8237511749b5bcae5a05aa66d967703ee6aa73ee7e3ac5ef82be898c64ea8eaf1d72a7c6112c505394412cfc51bcbf8674986c289d921c55521dea3771c584160e727aca577626de675f7e77bd119a35b08c8c1554f97fb89543b5db607e89a8830500b4a59bce84772dd331ca72008c5f2b379181622952069655b5f4b1d7bbef21c8180352cb933ab0e8bc7eb62b5a87466fd754cac782d806c50d1dcd81f85b72055280115204c641053d41d6120b9121b6a0f6a69e1f3698dd4443b831fd833fa6a4a4133d034cff24f16a60415fbb0da03e9c5b2cd4a45938521baa7ac18c247019effb4a435b92d91c0f03d0ce00608c8ac4c9989705fd084a1922a5ed26523d8a873852c0e8a22a7862921dd854ac79bd505a5e3b919f2904b0cce17a5472f2766ad206e981c54237c1aa298fefc39e0dab9485a003c069776679e419e0725c1c3774ccdc7dd41d21a136004949a4278ce0df9ad8585c21c74ca78810ca720741cd59149abbe8a844d9a8d84d8adf81356506140f54b529e8d7559d11e30ae963cf9519c20e66dfa346fa5a73363bcd99fa321c66609307970e9b4c6d00720959816f665178512dafc58c5b6f5c39382bc83edab5b2a358ba8aefd4243b061592aa68d8fb73a616b8c90538d6f60216dcab6dc8a6da7a3489364884c8cb72692c7926affda7655f79ed918460ec3993cf7358a72a1efa6fdd58643d877f0a6e94d42326dec28684ee8bf15254714133226ec10481a0d8ee0626a870f6842d7cc9fdbebcb93b7d34c4781cb56d87c8ed74cab77e735b2572fa473cdec00572ed94bbce17ed1d6b80e3286e9e214b6fb31083c0b1a16b9a0d6ce4a2e2990f72b44ca70c08cc6d9378bdbce9aceb8cdc0022b2bb771ece3da5ff119d9ef8fe3ecbefd25dddf410bbea8519d78d6c123bda67fdff709ebf08ace273564788fb3add8ffda51bacd51748939d32fc5243c393f1dd5aea34ea0a688d04ce894331721ac280a8b08321ef4b68092173a4a3a02511e96ecbcbcff77aed356f77c35b3de4bbfc82a056f36455d678da500bbabb9234e3dc357308da500352c4da3c8f723a9972696e7ee2c2f7ae13b29b9b3c87244bc3b167955197feae0b6f15332172c72b0dadae86c6b5de5779fd445e2b7b156fac2bd210dfb49d9aa2a094cc9b720cb8be826e080feae40743f9be9bcb725b33e6a07670d5e465197ec6c3aeb77280680f221ce90b1ecaa9549c83e8e54ec35c01febb10f21f188be74343972135b5d3c58e6a94b0acb8cca44899e9718cc860f7aedad6e037ffb55e706079125ba568deb975dda96cef6fc681a3afec16a4d1248e6bc4a518c886cf761b83fd72fa5d7b41151235c68f60cc3b084a3c77f6b7680e04548640b192c647933f2a6f3e5aab67d5cb7377f27921e9cec443ed93f0b44a453029e230883f1516a13c23bf339e1f5f7f34680301f6f835ec89eabe8951e7708af1f9afcc5eb858356c72a5f65db1343968f268b9d07e4d145cdae0c1a85f9cc75e489a1dab37b78954723b890379453cc17104552ef60c59969242c00092e792461ad95ce3aaa1ff4739dd15bef6327b892ed2205da3da150558eb8c7aff910b7fa35d6306a23da62572685fa412847f54a7c63bb35f2482e35261f847623360618c15f89735ed7add722f19c1793c202f92732703c7dd574e02409f6eec353d9f45a1e5b621d42c6b7237e11179b43bfdb00d6ea18980a62121c34c137d6113c444096e09b938236f72e7e035523bc768f29999c4f4409c0e2750e8e842618d73e9905ce8fe20f2052b16cd9be156b3c054e2288a78ac3e896099c536663ff0eceb0e1bfa42239cdf217a344562832237c6fc33f17138071f4f75331aa0116592863fc353e1659c68154f34d31c6a0931532dd4d951e976b67880915c41059eea23dd65f66b6308d472b5e85bba9f37164f32b14230c68c81c57a1a824d6af71e354060abed70f45272756cb0ad33f26867a43738d443da2a9aba11b68528e9b466617e5f9a81130b4d8886d705d072cee0f808058614c05b859105e7dd15cdb7b205140af103d74972ff6a349f2b6e30f1c8cac06924b2d7c8acc97aa480efca1a0d519d8faeb686687868834d40b060bb4c90bf07ce929ca1a9fe1690238f8af5ce8c266405d05c69b63fb4cbf119286c963aaf30126892d9e469b31bb209ed6145eb6024020fa66367f89c1396596e7df71e2f95b5e7d12a1fb62e78171f2fb14ac9646ebadd3c1554ecc052ea45197010f7c49d93c228adeb6738b4ef7146faa88ef0774fc77872a7835b3e6e03f4fd0b12299ac7667f49cc5794bf1b04507fff9602a16994877251a8b373dc0b22c1e040050c8956b665f5091e2f055d2c1cb883f7405a161c53905473d52593a97681bf9bda9a0150d4edf92a85459b8f0ffbcef2e3ebd4657253ba3a6e3505e20e702eb8aefd14263c649e2d54c606c8e036dc2621bb137072495a6f0a7fbc99300fff99ed6acafb17a5832243d7369c47d7a9045bfea0ea4804cfe34976f79c9a7e57378e08b430c9e82d0cd344883708cfa6239590cc5372bba0f2db39cdc02f6e633388045eab2d2243df8646be12b79df88274792b912a0442f99a00af75fc4c07b04b0739bbfaff19c883a06384d8464836334150d521c720e9a386cc7b100be86b93dc157a91270d351a350dcbee56fd78212525f57255fc43118b6deb9e30e1f7044072f957c716b44f7598ef9dd40dd9b06a8b7e7264f849ea107c983b42314ac031c7a5a25d466a5d19571da9c27f9ce71f0e5b72bd0425162e499a770bf209c9ee8e5786ab4e19f7042ef2a0a00f1c4059ac146e860dfeb055d2a3b85197a36097b259185e02e7c565a3a9e553f301a017868d727abcca18b32d90469310efd654db6cf1d8fa114d7734ac9f3a13ce3c0e7bec723ec0849105b30de714013802b50c38390cc23b2959df96e18027fd5fb76a16722d559b13947c72c9692c0474ab3a05ce6e141c2785875892e892bebe6566b9728b054a7f1211198291ce4e3de783b2a166ec59e3938351994497d9798c07284d7f391060b0726ba0f4f3bc4886f74489af7e3e2e6babb7263d65e03c82359949e8decfe33ded713a1e921deb56e860b441b706650972f9b624f3fc0a1c9920721b44e38369993dce2b4c8bcb7b59abe1b4eeeb9d33466774de69f1abec993a516d7ba57632412638ebc79c16dc287bcd53c1941d75934c124e7af124e0381038dc1e643015501dcf6de259e7127adb3e51760502255b6c84aee24bd1b6efac72fcc521fc6ce8a964c6cdc94bb22a665e8ec70e93ceaf851df3fd2989fa0a1a639645d809e4a3a8867e758d71c7436900c6fc95b7eff145011fe0346012e7d672d057a193571743a0d847fccbc1bc80198e82fe77984fb3839fbcac48350bdb72e3583ea7250446e7ea2caf5548d6fd47113642341d7c6fc02301782635bef0255f6dd2489b3635015ec257cd2b685c3e74f6302e49a1bffebb8758a1c7031472b8408603ce9b0f3015484e2083261d1218969cc730afaeb3d8050030b173bb6d9df59965bb405329ece6c5420a5ea95705926d1d1f68b74315739e746f4c7272626bd2046feb7bea1eb199fdc7d7dc9a5c0178ee39523eb0200cf30d0248ca720ee0476e776df6e46ead7988851294001da6466c1d6792d6e27467fe14ad15722a9e124ef5c068082ea0a9f5b466b49ba9b7e1fa48a5c19a465c0f7b54262b7258ca7489c9c8ae6c6fea0f849c5806eff9eecee8991ae73e5e56bc4043541a726032473599b31c08eddc91a0ca57aff91608d373aaa646ccb84a6491bade16255a233b9ff986a5ffb480595d9fa74670f98b613aa370e6fa80bc09c2172bd5338a80a68659cac8bc6779ccdb84dca7f307428e208c577888e47604df036ea272616654221f83e46a6f17922b9eebb45604a234da9c5e0630345240376378b42c43cfd2de5df271a183792cb139ee3937800a9028e43f4edca87f05e223329d6c02fd70152e82ba3bfc399ca6aaf73d617a529a38ade2048ef7a562404c1e3966904d29e99c7164103383f806d4c99098c8baa626379b0021e9a08586d113a86e0cb7d74be7440dcb43e5c39dc7de5aa613c84eabf0303aa9645c4a1397c8a113bcedf43136f40f4243e07db6b8bc54f4f3c0dd896251ae8b3cdd25618c0593723b5d4a286c71c238487057bf881573a3420f0a00fa5f5bd0295f5dab0b55e072de12254ea4157a59f3f10a5792bd3580dbc3bdd4a46d13a8984a8f737903bf37ed0343d8cb2179b221ccc14912f0d3cba1eddb9970b700cbd1100e9c91a24b727ba547d8a48eb9884c453526c4e91263c2b5184f3c16439c0d5c660c054a900c0a445fe89ed0b5215c86ba38fb2149aff33260a1e2059fd99512d1a5e0191b722672c4f3a4b1ba992c5e61bffa5c1ea3eb991789eb0bd3a5c06587d5cb88827287b425981b3db7994cb3e77d1509bfd2439f0126f20421396b1d01fe77095443a6034ed59d72e3120bfb4a50a321b19d2838bd402212323dcb735bed1fe33647169b37c6eea04e56acdc7eb4ba59c4b23a494bd050dc480a189c837cdc360d724091980365a0ff755aca5539e1bbdd1b84048ecbb10cbe3c4f0f1efe59f7d46bd0b680e987ec2ce39a1fcb917f822ec7733fa023c490172c3a213ff44d4d6f39a3d575d40544d292c03a8583eb25c92843d2cc191578a83920c639a567d54e3c1b3d39c5055e3db59d2531d95b8f0e9d076e98852809011f941369264201847274e295b8ddbbe883d70a2ca57e48ebc6762d7c310e80b259b399155fede11572d96eb8028b3ead10177dc507d4aa30efac79348377465cd1c35fce116312af2ba1b4f8cf253dc8c6b7292e26658785339d48906bbd7f2c28e3353a882d152f1bdb923db79993bce891f90faa74c8fd135bc7449b886960d068720975d730412b6dfbf63e544f58c85d01e41c6487bda23a5e6f0145843f297ea061a818bf55729ef3be1a8f383653e5e2835ff787117dc96805c8e46b058a5a24847341611b727b99753865b9cef573a4ebcbbf03218e9948875aa1346261f52b7ce112b8897280e62ea4fc2bd3f93be79b34f13ca109943e3f1ada9ce4beb364542abf98711698045fbd1be9be559fa6396bde2c704ba4e6736569dc89ed3626579fa51c9f724b31f672d36aef974cc37c67c8a50f8b06f923f1478ecb93ff1b66c52a0e644663a1831c0c45b2ed8db81ab5cbebbe6082dbb6538a2309e63805741708b605552fed26d5391be0e4ee3e0ec2e8d8b5eb334df8294b7d0f9e17cfd5e3d536f46745d003d7fa6e2028327efffc2991754ce3c0d49ba586daeedcb108043420cd" + ] + }, + "shouldOverrideBuilder": false + } + } } - } + ] }, { - "name": "eth_submitHashrate", - "summary": "Used for submitting mining hashrate.", + "name": "engine_newPayloadV1", + "summary": "Runs execution payload validation", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#engine_newpayloadv1" + }, "params": [ { - "name": "Hashrate", + "name": "Execution payload", "required": true, "schema": { - "$ref": "#/components/schemas/bytes32" - } - }, - { - "name": "ID", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes32" + "$ref": "#/components/schemas/ExecutionPayloadV1" } } ], "result": { - "name": "Success", + "name": "Payload status", "schema": { - "type": "boolean" + "$ref": "#/components/schemas/PayloadStatusV1" } - } - }, - { - "name": "eth_sign", - "summary": "Returns an EIP-191 signature over the provided data.", - "params": [ + }, + "examples": [ { - "name": "Address", - "required": true, - "schema": { - "$ref": "#/components/schemas/address" + "name": "engine_newPayloadV1 example", + "params": [ + { + "name": "Execution payload", + "value": { + "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a", + "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1", + "gasLimit": "0x1c9c380", + "gasUsed": "0x0", + "timestamp": "0x5", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "transactions": [] + } + } + ], + "result": { + "name": "Payload status", + "value": { + "status": "VALID", + "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "validationError": null + } } }, { - "name": "Message", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes" + "name": "engine_newPayloadV1 invalid example", + "params": [ + { + "name": "Execution payload", + "value": { + "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a", + "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1", + "gasLimit": "0x1c9c380", + "gasUsed": "0x0", + "timestamp": "0x5", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "transactions": [] + } + } + ], + "result": { + "name": "Payload status", + "value": { + "status": "INVALID", + "latestValidHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "validationError": "New payload is invalid" + } } } - ], - "result": { - "name": "Signature", - "schema": { - "$ref": "#/components/schemas/bytes65" - } - } + ] }, { - "name": "eth_signTransaction", - "summary": "Returns an RLP encoded transaction signed by the specified account.", + "name": "engine_newPayloadV2", + "summary": "Runs execution payload validation", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_newpayloadv2" + }, "params": [ { - "name": "Transaction", + "name": "Execution payload", "required": true, "schema": { - "$ref": "#/components/schemas/GenericTransaction" + "oneOf": [ + { + "$ref": "#/components/schemas/ExecutionPayloadV1" + }, + { + "$ref": "#/components/schemas/ExecutionPayloadV2" + } + ] } } ], "result": { - "name": "Encoded transaction", + "name": "Payload status", "schema": { - "$ref": "#/components/schemas/bytes" + "$ref": "#/components/schemas/PayloadStatusNoInvalidBlockHash" } - } - }, - { - "name": "eth_getBalance", - "summary": "Returns the balance of the account of given address.", - "params": [ - { - "name": "Address", - "required": true, - "schema": { - "$ref": "#/components/schemas/address" - } - }, + }, + "errors": [ { - "name": "Block", - "required": false, - "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" - } + "code": -32602, + "message": "Invalid params" } ], - "result": { - "name": "Balance", - "schema": { - "$ref": "#/components/schemas/uint" + "examples": [ + { + "name": "engine_newPayloadV2 example", + "params": [ + { + "name": "Execution payload", + "value": { + "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a", + "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14", + "blockNumber": "0x112720f", + "gasLimit": "0x1c9c380", + "gasUsed": "0xbad2e8", + "timestamp": "0x64e7785b", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "transactions": [ + "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90", + "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee", + "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d" + ], + "withdrawals": [ + { + "index": "0xf0", + "validatorIndex": "0xf0", + "address": "0x00000000000000000000000000000000000010f0", + "amount": "0x1" + }, + { + "index": "0xf1", + "validatorIndex": "0xf1", + "address": "0x00000000000000000000000000000000000010f1", + "amount": "0x1" + } + ] + } + } + ], + "result": { + "name": "Payload status", + "value": { + "status": "VALID", + "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "validationError": null + } + } } - } + ] }, { - "name": "eth_getStorageAt", - "summary": "Returns the value from a storage position at a given address.", + "name": "engine_newPayloadV3", + "summary": "Runs execution payload validation", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_newpayloadv3" + }, "params": [ { - "name": "Address", + "name": "Execution payload", "required": true, "schema": { - "$ref": "#/components/schemas/address" + "$ref": "#/components/schemas/ExecutionPayloadV3" } }, { - "name": "Storage slot", + "name": "Expected blob versioned hashes", "required": true, "schema": { - "$ref": "#/components/schemas/uint256" + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } } }, { - "name": "Block", - "required": false, + "name": "Root of the parent beacon block", + "required": true, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/hash32" } } ], "result": { - "name": "Value", + "name": "Payload status", "schema": { - "$ref": "#/components/schemas/bytes" + "$ref": "#/components/schemas/PayloadStatusNoInvalidBlockHash" } - } - }, - { - "name": "eth_getTransactionCount", - "summary": "Returns the number of transactions sent from an address.", - "params": [ + }, + "errors": [ { - "name": "Address", - "required": true, - "schema": { - "$ref": "#/components/schemas/address" - } + "code": -32602, + "message": "Invalid params" }, { - "name": "Block", - "required": false, - "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" - } + "code": -38005, + "message": "Unsupported fork" } ], + "examples": [ + { + "name": "engine_newPayloadV3 example", + "params": [ + { + "name": "Execution payload", + "value": { + "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a", + "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14", + "blockNumber": "0x112720f", + "gasLimit": "0x1c9c380", + "gasUsed": "0xbad2e8", + "timestamp": "0x64e7785b", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "transactions": [ + "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90", + "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee", + "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d" + ], + "withdrawals": [ + { + "index": "0xf0", + "validatorIndex": "0xf0", + "address": "0x00000000000000000000000000000000000010f0", + "amount": "0x1" + }, + { + "index": "0xf1", + "validatorIndex": "0xf1", + "address": "0x00000000000000000000000000000000000010f1", + "amount": "0x1" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + } + }, + { + "name": "Expected blob versioned hashes", + "value": [ + "0x000657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ] + }, + { + "name": "Root of the parent beacon block", + "value": "0x169630f535b4a41330164c6e5c92b1224c0c407f582d407d0ac3d206cd32fd52" + } + ], + "result": { + "name": "Payload status", + "value": { + "status": "VALID", + "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858", + "validationError": null + } + } + } + ] + }, + { + "name": "eth_accounts", + "summary": "Returns a list of addresses owned by client.", + "params": [], "result": { - "name": "Transaction count", + "name": "Accounts", + "schema": { + "title": "Accounts", + "type": "array", + "items": { + "$ref": "#/components/schemas/address" + } + } + } + }, + { + "name": "eth_blockNumber", + "summary": "Returns the number of most recent block.", + "params": [], + "result": { + "name": "Block number", "schema": { "$ref": "#/components/schemas/uint" } } }, { - "name": "eth_getCode", - "summary": "Returns code at a given address.", + "name": "eth_call", + "summary": "Executes a new message call immediately without creating a transaction on the block chain.", "params": [ { - "name": "Address", + "name": "Transaction", "required": true, "schema": { - "$ref": "#/components/schemas/address" + "$ref": "#/components/schemas/GenericTransaction" } }, { "name": "Block", "required": false, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } ], "result": { - "name": "Bytecode", + "name": "Return data", "schema": { "$ref": "#/components/schemas/bytes" } } }, { - "name": "eth_getProof", - "summary": "Returns the merkle proof for a given account and optionally some storage keys.", - "params": [ - { - "name": "Address", - "required": true, - "schema": { - "$ref": "#/components/schemas/address" - } - }, + "name": "eth_chainId", + "summary": "Returns the chain ID of the current network.", + "params": [], + "result": { + "name": "Chain ID", + "schema": { + "$ref": "#/components/schemas/uint" + } + } + }, + { + "name": "eth_coinbase", + "summary": "Returns the client coinbase address.", + "params": [], + "result": { + "name": "Coinbase address", + "schema": { + "$ref": "#/components/schemas/address" + } + } + }, + { + "name": "eth_createAccessList", + "summary": "Generates an access list for a transaction.", + "params": [ { - "name": "StorageKeys", + "name": "Transaction", "required": true, "schema": { - "title": "Storage keys", - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" - } + "$ref": "#/components/schemas/GenericTransaction" } }, { "name": "Block", - "required": true, + "required": false, "schema": { "$ref": "#/components/schemas/BlockNumberOrTag" } } ], "result": { - "name": "Account", + "name": "Gas used", "schema": { - "$ref": "#/components/schemas/AccountProof" + "title": "Access list result", + "type": "object", + "additionalProperties": false, + "properties": { + "accessList": { + "title": "accessList", + "$ref": "#/components/schemas/AccessList" + }, + "error": { + "title": "error", + "type": "string" + }, + "gasUsed": { + "title": "Gas used", + "$ref": "#/components/schemas/uint" + } + } } } }, { - "name": "eth_sendTransaction", - "summary": "Signs and submits a transaction.", + "name": "eth_estimateGas", + "summary": "Generates and returns an estimate of how much gas is necessary to allow the transaction to complete.", "params": [ { "name": "Transaction", @@ -816,56 +1530,153 @@ "schema": { "$ref": "#/components/schemas/GenericTransaction" } + }, + { + "name": "Block", + "required": false, + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTag" + } } ], "result": { - "name": "Transaction hash", + "name": "Gas used", "schema": { - "$ref": "#/components/schemas/hash32" + "$ref": "#/components/schemas/uint" } } }, { - "name": "eth_sendRawTransaction", - "summary": "Submits a raw transaction.", + "name": "eth_feeHistory", + "summary": "Transaction fee history", + "description": "Returns transaction base fee per gas and effective priority fee per gas for the requested/supported block range.", "params": [ { - "name": "Transaction", + "name": "blockCount", + "description": "Requested range of blocks. Clients will return less than the requested range if not all blocks are available.", "required": true, "schema": { - "$ref": "#/components/schemas/bytes" + "$ref": "#/components/schemas/uint" + } + }, + { + "name": "newestBlock", + "description": "Highest block of the requested range.", + "required": true, + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTag" + } + }, + { + "name": "rewardPercentiles", + "description": "A monotonically increasing list of percentile values. For each block in the requested range, the transactions will be sorted in ascending order by effective tip per gas and the coresponding effective tip for the percentile will be determined, accounting for gas consumed.", + "required": true, + "schema": { + "title": "rewardPercentiles", + "type": "array", + "items": { + "title": "rewardPercentile", + "description": "Floating point value between 0 and 100.", + "type": "number" + } } } ], "result": { - "name": "Transaction hash", + "name": "feeHistoryResult", + "description": "Fee history for the returned block range. This can be a subsection of the requested range if not all blocks are available.", "schema": { - "$ref": "#/components/schemas/hash32" + "title": "feeHistoryResults", + "description": "Fee history results.", + "type": "object", + "required": [ + "oldestBlock", + "baseFeePerGas", + "gasUsedRatio" + ], + "additionalProperties": false, + "properties": { + "oldestBlock": { + "title": "oldestBlock", + "description": "Lowest number block of returned range.", + "$ref": "#/components/schemas/uint" + }, + "baseFeePerGas": { + "title": "baseFeePerGasArray", + "description": "An array of block base fees per gas. This includes the next block after the newest of the returned range, because this value can be derived from the newest block. Zeroes are returned for pre-EIP-1559 blocks.", + "type": "array", + "items": { + "$ref": "#/components/schemas/uint" + } + }, + "gasUsedRatio": { + "title": "gasUsedRatio", + "description": "An array of block gas used ratios. These are calculated as the ratio of gasUsed and gasLimit.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ratio" + } + }, + "reward": { + "title": "rewardArray", + "description": "A two-dimensional array of effective priority fees per gas at the requested block percentiles.", + "type": "array", + "items": { + "title": "rewardPercentile", + "description": "An array of effective priority fee per gas data points from a single block. All zeroes are returned if the block is empty.", + "type": "array", + "items": { + "title": "rewardPercentile", + "description": "A given percentile sample of effective priority fees per gas from a single block in ascending order, weighted by gas used. Zeroes are returned if the block is empty.", + "$ref": "#/components/schemas/uint" + } + } + } + } } } }, { - "name": "eth_getTransactionByHash", - "summary": "Returns the information about a transaction requested by transaction hash.", + "name": "eth_gasPrice", + "summary": "Returns the current price per gas in wei.", + "params": [], + "result": { + "name": "Gas price", + "schema": { + "title": "Gas price", + "$ref": "#/components/schemas/uint" + } + } + }, + { + "name": "eth_getBalance", + "summary": "Returns the balance of the account of given address.", "params": [ { - "name": "Transaction hash", + "name": "Address", "required": true, "schema": { - "$ref": "#/components/schemas/hash32" + "$ref": "#/components/schemas/address" + } + }, + { + "name": "Block", + "required": false, + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } ], "result": { - "name": "Transaction information", + "name": "Balance", "schema": { - "$ref": "#/components/schemas/TransactionInfo" + "$ref": "#/components/schemas/uint" } } }, { - "name": "eth_getTransactionByBlockHashAndIndex", - "summary": "Returns information about a transaction by block hash and transaction index position.", + "name": "eth_getBlockByHash", + "summary": "Returns information about a block by hash.", "params": [ { "name": "Block hash", @@ -875,23 +1686,31 @@ } }, { - "name": "Transaction index", + "name": "Hydrated transactions", "required": true, "schema": { - "$ref": "#/components/schemas/uint" + "title": "hydrated", + "type": "boolean" } } ], "result": { - "name": "Transaction information", + "name": "Block information", "schema": { - "$ref": "#/components/schemas/TransactionInfo" + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "$ref": "#/components/schemas/Block" + } + ] } } }, { - "name": "eth_getTransactionByBlockNumberAndIndex", - "summary": "Returns information about a transaction by block number and transaction index position.", + "name": "eth_getBlockByNumber", + "summary": "Returns information about a block by number.", "params": [ { "name": "Block", @@ -901,688 +1720,2171 @@ } }, { - "name": "Transaction index", + "name": "Hydrated transactions", "required": true, "schema": { - "$ref": "#/components/schemas/uint" + "title": "hydrated", + "type": "boolean" } } ], "result": { - "name": "Transaction information", + "name": "Block information", "schema": { - "$ref": "#/components/schemas/TransactionInfo" + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "$ref": "#/components/schemas/Block" + } + ] } } }, { - "name": "eth_getTransactionReceipt", - "summary": "Returns the receipt of a transaction by transaction hash.", + "name": "eth_getBlockReceipts", + "summary": "Returns the receipts of a block by number or hash.", "params": [ { - "name": "Transaction hash", + "name": "Block", + "required": true, "schema": { - "$ref": "#/components/schemas/hash32" + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } ], "result": { - "name": "Receipt Information", + "name": "Receipts information", "schema": { - "$ref": "#/components/schemas/ReceiptInfo" + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "title": "Receipts information", + "type": "array", + "items": { + "$ref": "#/components/schemas/ReceiptInfo" + } + } + ] } } }, { - "name": "debug_getRawHeader", - "summary": "Returns an RLP-encoded header.", + "name": "eth_getBlockTransactionCountByHash", + "summary": "Returns the number of transactions in a block from a block matching the given block hash.", "params": [ { - "name": "Block", - "required": true, + "name": "Block hash", "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/hash32" } } ], "result": { - "name": "Header RLP", + "name": "Transaction count", "schema": { - "$ref": "#/components/schemas/bytes" + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "title": "Transaction count", + "$ref": "#/components/schemas/uint" + } + ] } } }, { - "name": "debug_getRawBlock", - "summary": "Returns an RLP-encoded block.", + "name": "eth_getBlockTransactionCountByNumber", + "summary": "Returns the number of transactions in a block matching the given block number.", "params": [ { "name": "Block", - "required": true, "schema": { "$ref": "#/components/schemas/BlockNumberOrTag" } } ], "result": { - "name": "Block RLP", + "name": "Transaction count", "schema": { - "$ref": "#/components/schemas/bytes" - } - } + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "title": "Transaction count", + "$ref": "#/components/schemas/uint" + } + ] + } + } }, { - "name": "debug_getRawTransaction", - "summary": "Returns an array of EIP-2718 binary-encoded transactions.", + "name": "eth_getCode", + "summary": "Returns code at a given address.", "params": [ { - "name": "Transaction hash", + "name": "Address", "required": true, "schema": { - "$ref": "#/components/schemas/hash32" + "$ref": "#/components/schemas/address" + } + }, + { + "name": "Block", + "required": false, + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } ], "result": { - "name": "EIP-2718 binary-encoded transaction", + "name": "Bytecode", "schema": { "$ref": "#/components/schemas/bytes" } } }, { - "name": "debug_getRawReceipts", - "summary": "Returns an array of EIP-2718 binary-encoded receipts.", + "name": "eth_getFilterChanges", + "summary": "Polling method for a filter, which returns an array of logs which occurred since last poll.", + "params": [ + { + "name": "Filter Identifier", + "schema": { + "$ref": "#/components/schemas/uint" + } + } + ], + "result": { + "name": "Log objects", + "schema": { + "$ref": "#/components/schemas/FilterResults" + } + } + }, + { + "name": "eth_getFilterLogs", + "summary": "Returns an array of all logs matching filter with given id.", + "params": [ + { + "name": "Filter Identifier", + "schema": { + "$ref": "#/components/schemas/uint" + } + } + ], + "result": { + "name": "Log objects", + "schema": { + "$ref": "#/components/schemas/FilterResults" + } + } + }, + { + "name": "eth_getLogs", + "summary": "Returns an array of all logs matching filter with given id.", "params": [ + { + "name": "Filter", + "schema": { + "$ref": "#/components/schemas/Filter" + } + } + ], + "result": { + "name": "Log objects", + "schema": { + "$ref": "#/components/schemas/FilterResults" + } + } + }, + { + "name": "eth_getProof", + "summary": "Returns the merkle proof for a given account and optionally some storage keys.", + "params": [ + { + "name": "Address", + "required": true, + "schema": { + "$ref": "#/components/schemas/address" + } + }, + { + "name": "StorageKeys", + "required": true, + "schema": { + "title": "Storage keys", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytesMax32" + } + } + }, { "name": "Block", "required": true, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } ], "result": { - "name": "Receipts", + "name": "Account", "schema": { - "title": "Receipt array", - "type": "array", - "items": { - "$ref": "#/components/schemas/bytes" + "$ref": "#/components/schemas/AccountProof" + } + } + }, + { + "name": "eth_getStorageAt", + "summary": "Returns the value from a storage position at a given address.", + "params": [ + { + "name": "Address", + "required": true, + "schema": { + "$ref": "#/components/schemas/address" + } + }, + { + "name": "Storage slot", + "required": true, + "schema": { + "$ref": "#/components/schemas/uint256" + } + }, + { + "name": "Block", + "required": false, + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } + ], + "result": { + "name": "Value", + "schema": { + "$ref": "#/components/schemas/bytes" + } } }, { - "name": "debug_getBadBlocks", - "summary": "Returns an array of recent bad blocks that the client has seen on the network.", - "params": [], + "name": "eth_getTransactionByBlockHashAndIndex", + "summary": "Returns information about a transaction by block hash and transaction index position.", + "params": [ + { + "name": "Block hash", + "required": true, + "schema": { + "$ref": "#/components/schemas/hash32" + } + }, + { + "name": "Transaction index", + "required": true, + "schema": { + "$ref": "#/components/schemas/uint" + } + } + ], "result": { - "name": "Blocks", + "name": "Transaction information", "schema": { - "title": "Bad block array", - "type": "array", - "items": { - "$ref": "#/components/schemas/BadBlock" + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "$ref": "#/components/schemas/TransactionInfo" + } + ] + } + } + }, + { + "name": "eth_getTransactionByBlockNumberAndIndex", + "summary": "Returns information about a transaction by block number and transaction index position.", + "params": [ + { + "name": "Block", + "required": true, + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTag" + } + }, + { + "name": "Transaction index", + "required": true, + "schema": { + "$ref": "#/components/schemas/uint" } } + ], + "result": { + "name": "Transaction information", + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "$ref": "#/components/schemas/TransactionInfo" + } + ] + } } - } - ], - "components": { - "schemas": { - "address": { - "title": "hex encoded address", - "type": "string", - "pattern": "^0x[0-9,a-f,A-F]{40}$" - }, - "addresses": { - "title": "hex encoded address", - "type": "array", - "items": { - "$ref": "#/components/schemas/address" + }, + { + "name": "eth_getTransactionByHash", + "summary": "Returns the information about a transaction requested by transaction hash.", + "params": [ + { + "name": "Transaction hash", + "required": true, + "schema": { + "$ref": "#/components/schemas/hash32" + } } - }, - "byte": { - "title": "hex encoded byte", - "type": "string", - "pattern": "^0x([0-9,a-f,A-F]?){1,2}$" - }, - "bytes": { - "title": "hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]*$" - }, - "bytes8": { - "title": "8 hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]{16}$" - }, - "bytes32": { - "title": "32 hex encoded bytes", - "type": "string", - "pattern": "^0x([0-9a-f][0-9a-f]){0,32}$" - }, - "bytes256": { - "title": "256 hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]{512}$" - }, - "bytes65": { - "title": "65 hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]{512}$" - }, - "uint": { - "title": "hex encoded unsigned integer", + ], + "result": { + "name": "Transaction information", + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "$ref": "#/components/schemas/TransactionInfo" + } + ] + } + } + }, + { + "name": "eth_getTransactionCount", + "summary": "Returns the number of transactions sent from an address.", + "params": [ + { + "name": "Address", + "required": true, + "schema": { + "$ref": "#/components/schemas/address" + } + }, + { + "name": "Block", + "required": false, + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" + } + } + ], + "result": { + "name": "Transaction count", + "schema": { + "$ref": "#/components/schemas/uint" + } + } + }, + { + "name": "eth_getTransactionReceipt", + "summary": "Returns the receipt of a transaction by transaction hash.", + "params": [ + { + "name": "Transaction hash", + "required": true, + "schema": { + "$ref": "#/components/schemas/hash32" + } + } + ], + "result": { + "name": "Receipt information", + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "$ref": "#/components/schemas/ReceiptInfo" + } + ] + } + } + }, + { + "name": "eth_getUncleCountByBlockHash", + "summary": "Returns the number of uncles in a block from a block matching the given block hash.", + "params": [ + { + "name": "Block hash", + "schema": { + "$ref": "#/components/schemas/hash32" + } + } + ], + "result": { + "name": "Uncle count", + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "title": "Uncle count", + "$ref": "#/components/schemas/uint" + } + ] + } + } + }, + { + "name": "eth_getUncleCountByBlockNumber", + "summary": "Returns the number of transactions in a block matching the given block number.", + "params": [ + { + "name": "Block", + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTag" + } + } + ], + "result": { + "name": "Uncle count", + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "title": "Uncle count", + "$ref": "#/components/schemas/uint" + } + ] + } + } + }, + { + "name": "eth_maxPriorityFeePerGas", + "summary": "Returns the current maxPriorityFeePerGas per gas in wei.", + "params": [], + "result": { + "name": "Max priority fee per gas", + "schema": { + "title": "Max priority fee per gas", + "$ref": "#/components/schemas/uint" + } + } + }, + { + "name": "eth_newBlockFilter", + "summary": "Creates a filter in the node, to notify when a new block arrives.", + "params": [], + "result": { + "name": "Filter Identifier", + "schema": { + "$ref": "#/components/schemas/uint" + } + } + }, + { + "name": "eth_newFilter", + "summary": "Creates a filter object, based on filter options, to notify when the state changes (logs).", + "params": [ + { + "name": "Filter", + "schema": { + "$ref": "#/components/schemas/Filter" + } + } + ], + "result": { + "name": "Filter Identifier", + "schema": { + "$ref": "#/components/schemas/uint" + } + } + }, + { + "name": "eth_newPendingTransactionFilter", + "summary": "Creates a filter in the node, to notify when new pending transactions arrive.", + "params": [], + "result": { + "name": "Filter Identifier", + "schema": { + "$ref": "#/components/schemas/uint" + } + } + }, + { + "name": "eth_sendRawTransaction", + "summary": "Submits a raw transaction. For EIP-4844 transactions, the raw form must be the network form. This means it includes the blobs, KZG commitments, and KZG proofs.", + "params": [ + { + "name": "Transaction", + "required": true, + "schema": { + "$ref": "#/components/schemas/bytes" + } + } + ], + "result": { + "name": "Transaction hash", + "schema": { + "$ref": "#/components/schemas/hash32" + } + } + }, + { + "name": "eth_sendTransaction", + "summary": "Signs and submits a transaction.", + "params": [ + { + "name": "Transaction", + "required": true, + "schema": { + "$ref": "#/components/schemas/GenericTransaction" + } + } + ], + "result": { + "name": "Transaction hash", + "schema": { + "$ref": "#/components/schemas/hash32" + } + } + }, + { + "name": "eth_sign", + "summary": "Returns an EIP-191 signature over the provided data.", + "params": [ + { + "name": "Address", + "required": true, + "schema": { + "$ref": "#/components/schemas/address" + } + }, + { + "name": "Message", + "required": true, + "schema": { + "$ref": "#/components/schemas/bytes" + } + } + ], + "result": { + "name": "Signature", + "schema": { + "$ref": "#/components/schemas/bytes65" + } + } + }, + { + "name": "eth_signTransaction", + "summary": "Returns an RLP encoded transaction signed by the specified account.", + "params": [ + { + "name": "Transaction", + "required": true, + "schema": { + "$ref": "#/components/schemas/GenericTransaction" + } + } + ], + "result": { + "name": "Encoded transaction", + "schema": { + "$ref": "#/components/schemas/bytes" + } + } + }, + { + "name": "eth_syncing", + "summary": "Returns an object with data about the sync status or false.", + "params": [], + "result": { + "name": "Syncing status", + "schema": { + "$ref": "#/components/schemas/SyncingStatus" + } + } + }, + { + "name": "eth_uninstallFilter", + "summary": "Uninstalls a filter with given id.", + "params": [ + { + "name": "Filter Identifier", + "schema": { + "$ref": "#/components/schemas/uint" + } + } + ], + "result": { + "name": "Success", + "schema": { + "type": "boolean" + } + } + } + ], + "components": { + "schemas": { + "address": { + "title": "hex encoded address", + "type": "string", + "pattern": "^0x[0-9,a-f,A-F]{40}$" + }, + "addresses": { + "title": "hex encoded address", + "type": "array", + "items": { + "$ref": "#/components/schemas/address" + } + }, + "byte": { + "title": "hex encoded byte", + "type": "string", + "pattern": "^0x([0-9,a-f,A-F]?){1,2}$" + }, + "bytes": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]*$" + }, + "bytesMax32": { + "title": "32 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{0,64}$" + }, + "bytes8": { + "title": "8 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{16}$" + }, + "bytes32": { + "title": "32 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "bytes48": { + "title": "48 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{96}$" + }, + "bytes256": { + "title": "256 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{512}$" + }, + "bytes65": { + "title": "65 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{130}$" + }, + "ratio": { + "title": "normalized ratio", + "type": "number", + "minimum": 0, + "maximum": 1 + }, + "uint": { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x([1-9a-f]+[0-9a-f]*|0)$" + }, + "uint64": { + "title": "hex encoded 64 bit unsigned integer", + "type": "string", + "pattern": "^0x([1-9a-f]+[0-9a-f]{0,15})|0$" + }, + "uint256": { + "title": "hex encoded 256 bit unsigned integer", + "type": "string", + "pattern": "^0x([1-9a-f]+[0-9a-f]{0,31})|0$" + }, + "hash32": { + "title": "32 byte hex value", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "notFound": { + "title": "Not Found (null)", + "type": "null" + }, + "Block": { + "title": "Block object", + "type": "object", + "required": [ + "hash", + "parentHash", + "sha3Uncles", + "miner", + "stateRoot", + "transactionsRoot", + "receiptsRoot", + "logsBloom", + "number", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "mixHash", + "nonce", + "size", + "transactions", + "uncles" + ], + "additionalProperties": false, + "properties": { + "hash": { + "title": "Hash", + "$ref": "#/components/schemas/hash32" + }, + "parentHash": { + "title": "Parent block hash", + "$ref": "#/components/schemas/hash32" + }, + "sha3Uncles": { + "title": "Ommers hash", + "$ref": "#/components/schemas/hash32" + }, + "miner": { + "title": "Coinbase", + "$ref": "#/components/schemas/address" + }, + "stateRoot": { + "title": "State root", + "$ref": "#/components/schemas/hash32" + }, + "transactionsRoot": { + "title": "Transactions root", + "$ref": "#/components/schemas/hash32" + }, + "receiptsRoot": { + "title": "Receipts root", + "$ref": "#/components/schemas/hash32" + }, + "logsBloom": { + "title": "Bloom filter", + "$ref": "#/components/schemas/bytes256" + }, + "difficulty": { + "title": "Difficulty", + "$ref": "#/components/schemas/uint" + }, + "number": { + "title": "Number", + "$ref": "#/components/schemas/uint" + }, + "gasLimit": { + "title": "Gas limit", + "$ref": "#/components/schemas/uint" + }, + "gasUsed": { + "title": "Gas used", + "$ref": "#/components/schemas/uint" + }, + "timestamp": { + "title": "Timestamp", + "$ref": "#/components/schemas/uint" + }, + "extraData": { + "title": "Extra data", + "$ref": "#/components/schemas/bytes" + }, + "mixHash": { + "title": "Mix hash", + "$ref": "#/components/schemas/hash32" + }, + "nonce": { + "title": "Nonce", + "$ref": "#/components/schemas/bytes8" + }, + "totalDifficulty": { + "title": "Total difficulty", + "$ref": "#/components/schemas/uint" + }, + "baseFeePerGas": { + "title": "Base fee per gas", + "$ref": "#/components/schemas/uint" + }, + "withdrawalsRoot": { + "title": "Withdrawals root", + "$ref": "#/components/schemas/hash32" + }, + "blobGasUsed": { + "title": "Blob gas used", + "$ref": "#/components/schemas/uint" + }, + "excessBlobGas": { + "title": "Excess blob gas", + "$ref": "#/components/schemas/uint" + }, + "parentBeaconBlockRoot": { + "title": "Parent Beacon Block Root", + "$ref": "#/components/schemas/hash32" + }, + "size": { + "title": "Block size", + "$ref": "#/components/schemas/uint" + }, + "transactions": { + "anyOf": [ + { + "title": "Transaction hashes", + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + }, + { + "title": "Full transactions", + "type": "array", + "items": { + "$ref": "#/components/schemas/TransactionInfo" + } + } + ] + }, + "withdrawals": { + "title": "Withdrawals", + "type": "array", + "items": { + "$ref": "#/components/schemas/Withdrawal" + } + }, + "uncles": { + "title": "Uncles", + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + } + } + }, + "BlockTag": { + "title": "Block tag", "type": "string", - "pattern": "^0x([1-9a-f]+[0-9a-f]*|0)$" + "enum": [ + "earliest", + "finalized", + "safe", + "latest", + "pending" + ], + "description": "`earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error" + }, + "BlockNumberOrTag": { + "title": "Block number or tag", + "oneOf": [ + { + "title": "Block number", + "$ref": "#/components/schemas/uint" + }, + { + "title": "Block tag", + "$ref": "#/components/schemas/BlockTag" + } + ] + }, + "BlockNumberOrTagOrHash": { + "title": "Block number, tag, or block hash", + "anyOf": [ + { + "title": "Block number", + "$ref": "#/components/schemas/uint" + }, + { + "title": "Block tag", + "$ref": "#/components/schemas/BlockTag" + }, + { + "title": "Block hash", + "$ref": "#/components/schemas/hash32" + } + ] + }, + "BadBlock": { + "title": "Bad block", + "type": "object", + "required": [ + "block", + "hash", + "rlp" + ], + "additionalProperties": false, + "properties": { + "block": { + "title": "Block", + "$ref": "#/components/schemas/Block" + }, + "hash": { + "title": "Hash", + "$ref": "#/components/schemas/hash32" + }, + "rlp": { + "title": "RLP", + "$ref": "#/components/schemas/bytes" + } + } + }, + "SyncingStatus": { + "title": "Syncing status", + "oneOf": [ + { + "title": "Syncing progress", + "type": "object", + "additionalProperties": false, + "properties": { + "startingBlock": { + "title": "Starting block", + "$ref": "#/components/schemas/uint" + }, + "currentBlock": { + "title": "Current block", + "$ref": "#/components/schemas/uint" + }, + "highestBlock": { + "title": "Highest block", + "$ref": "#/components/schemas/uint" + } + } + }, + { + "title": "Not syncing", + "description": "Should always return false if not syncing.", + "type": "boolean" + } + ] + }, + "FilterResults": { + "title": "Filter results", + "oneOf": [ + { + "title": "new block hashes", + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + }, + { + "title": "new transaction hashes", + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + }, + { + "title": "new logs", + "type": "array", + "items": { + "$ref": "#/components/schemas/Log" + } + } + ] + }, + "Filter": { + "title": "filter", + "type": "object", + "additionalProperties": false, + "properties": { + "fromBlock": { + "title": "from block", + "$ref": "#/components/schemas/uint" + }, + "toBlock": { + "title": "to block", + "$ref": "#/components/schemas/uint" + }, + "address": { + "title": "Address(es)", + "oneOf": [ + { + "title": "Address", + "$ref": "#/components/schemas/address" + }, + { + "title": "Addresses", + "$ref": "#/components/schemas/addresses" + } + ] + }, + "topics": { + "title": "Topics", + "$ref": "#/components/schemas/FilterTopics" + } + } + }, + "FilterTopics": { + "title": "Filter Topics", + "type": "array", + "items": { + "$ref": "#/components/schemas/FilterTopic" + } + }, + "FilterTopic": { + "title": "Filter Topic List Entry", + "oneOf": [ + { + "title": "Any Topic Match", + "type": "null" + }, + { + "title": "Single Topic Match", + "$ref": "#/components/schemas/bytes32" + }, + { + "title": "Multiple Topic Match", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes32" + } + } + ] + }, + "Log": { + "title": "log", + "type": "object", + "required": [ + "transactionHash" + ], + "additionalProperties": false, + "properties": { + "removed": { + "title": "removed", + "type": "boolean" + }, + "logIndex": { + "title": "log index", + "$ref": "#/components/schemas/uint" + }, + "transactionIndex": { + "title": "transaction index", + "$ref": "#/components/schemas/uint" + }, + "transactionHash": { + "title": "transaction hash", + "$ref": "#/components/schemas/hash32" + }, + "blockHash": { + "title": "block hash", + "$ref": "#/components/schemas/hash32" + }, + "blockNumber": { + "title": "block number", + "$ref": "#/components/schemas/uint" + }, + "address": { + "title": "address", + "$ref": "#/components/schemas/address" + }, + "data": { + "title": "data", + "$ref": "#/components/schemas/bytes" + }, + "topics": { + "title": "topics", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes32" + } + } + } + }, + "ReceiptInfo": { + "type": "object", + "title": "Receipt information", + "required": [ + "blockHash", + "blockNumber", + "from", + "cumulativeGasUsed", + "gasUsed", + "logs", + "logsBloom", + "transactionHash", + "transactionIndex", + "effectiveGasPrice" + ], + "additionalProperties": false, + "properties": { + "type": { + "title": "type", + "$ref": "#/components/schemas/byte" + }, + "transactionHash": { + "title": "transaction hash", + "$ref": "#/components/schemas/hash32" + }, + "transactionIndex": { + "title": "transaction index", + "$ref": "#/components/schemas/uint" + }, + "blockHash": { + "title": "block hash", + "$ref": "#/components/schemas/hash32" + }, + "blockNumber": { + "title": "block number", + "$ref": "#/components/schemas/uint" + }, + "from": { + "title": "from", + "$ref": "#/components/schemas/address" + }, + "to": { + "title": "to", + "description": "Address of the receiver or null in a contract creation transaction.", + "oneOf": [ + { + "title": "Contract Creation (null)", + "type": "null" + }, + { + "title": "Recipient Address", + "$ref": "#/components/schemas/address" + } + ] + }, + "cumulativeGasUsed": { + "title": "cumulative gas used", + "description": "The sum of gas used by this transaction and all preceding transactions in the same block.", + "$ref": "#/components/schemas/uint" + }, + "gasUsed": { + "title": "gas used", + "description": "The amount of gas used for this specific transaction alone.", + "$ref": "#/components/schemas/uint" + }, + "blobGasUsed": { + "title": "blob gas used", + "description": "The amount of blob gas used for this specific transaction. Only specified for blob transactions as defined by EIP-4844.", + "$ref": "#/components/schemas/uint" + }, + "contractAddress": { + "title": "contract address", + "description": "The contract address created, if the transaction was a contract creation, otherwise null.", + "oneOf": [ + { + "$ref": "#/components/schemas/address" + }, + { + "name": null, + "type": "null" + } + ] + }, + "logs": { + "title": "logs", + "type": "array", + "items": { + "$ref": "#/components/schemas/Log" + } + }, + "logsBloom": { + "title": "logs bloom", + "$ref": "#/components/schemas/bytes256" + }, + "root": { + "title": "state root", + "description": "The post-transaction state root. Only specified for transactions included before the Byzantium upgrade.", + "$ref": "#/components/schemas/hash32" + }, + "status": { + "title": "status", + "description": "Either 1 (success) or 0 (failure). Only specified for transactions included after the Byzantium upgrade.", + "$ref": "#/components/schemas/uint" + }, + "effectiveGasPrice": { + "title": "effective gas price", + "description": "The actual value per gas deducted from the sender's account. Before EIP-1559, this is equal to the transaction's gas price. After, it is equal to baseFeePerGas + min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas).", + "$ref": "#/components/schemas/uint" + }, + "blobGasPrice": { + "title": "blob gas price", + "description": "The actual value per gas deducted from the sender's account for blob gas. Only specified for blob transactions as defined by EIP-4844.", + "$ref": "#/components/schemas/uint" + } + } }, - "uint64": { - "title": "hex encoded unsigned integer", - "type": "string", - "pattern": "^0x([1-9a-f][0-9a-f]{0,15})|0$" + "AccountProof": { + "title": "Account proof", + "type": "object", + "required": [ + "address", + "accountProof", + "balance", + "codeHash", + "nonce", + "storageHash", + "storageProof" + ], + "additionalProperties": false, + "properties": { + "address": { + "title": "address", + "$ref": "#/components/schemas/address" + }, + "accountProof": { + "title": "accountProof", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes" + } + }, + "balance": { + "title": "balance", + "$ref": "#/components/schemas/uint256" + }, + "codeHash": { + "title": "codeHash", + "$ref": "#/components/schemas/hash32" + }, + "nonce": { + "title": "nonce", + "$ref": "#/components/schemas/uint64" + }, + "storageHash": { + "title": "storageHash", + "$ref": "#/components/schemas/hash32" + }, + "storageProof": { + "title": "Storage proofs", + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageProof" + } + } + } }, - "uint256": { - "title": "hex encoded unsigned integer", - "type": "string", - "pattern": "^0x[0-9a-f]{0,64}$" + "StorageProof": { + "title": "Storage proof", + "type": "object", + "required": [ + "key", + "value", + "proof" + ], + "additionalProperties": false, + "properties": { + "key": { + "title": "key", + "$ref": "#/components/schemas/bytesMax32" + }, + "value": { + "title": "value", + "$ref": "#/components/schemas/uint256" + }, + "proof": { + "title": "proof", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes" + } + } + } }, - "hash32": { - "title": "32 byte hex value", - "type": "string", - "pattern": "^0x([0-9a-f][0-9a-f]){0,32}$" + "Transaction4844Unsigned": { + "type": "object", + "title": "EIP-4844 transaction.", + "required": [ + "type", + "nonce", + "to", + "gas", + "value", + "input", + "maxPriorityFeePerGas", + "maxFeePerGas", + "maxFeePerBlobGas", + "accessList", + "blobVersionedHashes", + "chainId" + ], + "properties": { + "type": { + "title": "type", + "$ref": "#/components/schemas/byte" + }, + "nonce": { + "title": "nonce", + "$ref": "#/components/schemas/uint" + }, + "to": { + "title": "to address", + "$ref": "#/components/schemas/address" + }, + "gas": { + "title": "gas limit", + "$ref": "#/components/schemas/uint" + }, + "value": { + "title": "value", + "$ref": "#/components/schemas/uint" + }, + "input": { + "title": "input data", + "$ref": "#/components/schemas/bytes" + }, + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", + "$ref": "#/components/schemas/uint" + }, + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", + "$ref": "#/components/schemas/uint" + }, + "maxFeePerBlobGas": { + "title": "max fee per blob gas", + "description": "The maximum total fee per gas the sender is willing to pay for blob gas in wei", + "$ref": "#/components/schemas/uint" + }, + "accessList": { + "title": "accessList", + "description": "EIP-2930 access list", + "$ref": "#/components/schemas/AccessList" + }, + "blobVersionedHashes": { + "title": "blobVersionedHashes", + "description": "List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.", + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + }, + "chainId": { + "title": "chainId", + "description": "Chain ID that this transaction is valid on.", + "$ref": "#/components/schemas/uint" + } + } }, - "Block": { - "title": "Block object", + "AccessListEntry": { + "title": "Access list entry", + "type": "object", + "additionalProperties": false, + "properties": { + "address": { + "$ref": "#/components/schemas/address" + }, + "storageKeys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + } + } + }, + "AccessList": { + "title": "Access list", + "type": "array", + "items": { + "$ref": "#/components/schemas/AccessListEntry" + } + }, + "Transaction1559Unsigned": { "type": "object", + "title": "EIP-1559 transaction.", "required": [ - "parentHash", - "sha3Uncles", - "miner", - "stateRoot", - "transactionsRoot", - "receiptsRoot", - "logsBloom", - "number", - "gasLimit", - "gasUsed", - "timestamp", - "extraData", - "mixHash", + "type", "nonce", - "size", - "transactions", - "uncles" + "gas", + "value", + "input", + "maxFeePerGas", + "maxPriorityFeePerGas", + "gasPrice", + "chainId", + "accessList" ], "properties": { - "parentHash": { - "title": "Parent block hash", - "$ref": "#/components/schemas/hash32" + "type": { + "title": "type", + "type": "string", + "pattern": "^0x2$" }, - "sha3Uncles": { - "title": "Ommers hash", - "$ref": "#/components/schemas/hash32" + "nonce": { + "title": "nonce", + "$ref": "#/components/schemas/uint" }, - "miner": { - "title": "Coinbase", - "$ref": "#/components/schemas/address" + "to": { + "title": "to address", + "oneOf": [ + { + "title": "Contract Creation (null)", + "type": "null" + }, + { + "title": "Address", + "$ref": "#/components/schemas/address" + } + ] }, - "stateRoot": { - "title": "State root", - "$ref": "#/components/schemas/hash32" + "gas": { + "title": "gas limit", + "$ref": "#/components/schemas/uint" }, - "transactionsRoot": { - "title": "Transactions root", - "$ref": "#/components/schemas/hash32" + "value": { + "title": "value", + "$ref": "#/components/schemas/uint" }, - "receiptsRoot": { - "title": "Receipts root", - "$ref": "#/components/schemas/hash32" + "input": { + "title": "input data", + "$ref": "#/components/schemas/bytes" }, - "logsBloom": { - "title": "Bloom filter", - "$ref": "#/components/schemas/bytes256" + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", + "$ref": "#/components/schemas/uint" }, - "difficulty": { - "title": "Difficulty", - "$ref": "#/components/schemas/bytes" + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", + "$ref": "#/components/schemas/uint" }, - "number": { - "title": "Number", + "gasPrice": { + "title": "gas price", + "description": "The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.", "$ref": "#/components/schemas/uint" }, - "gasLimit": { - "title": "Gas limit", + "accessList": { + "title": "accessList", + "description": "EIP-2930 access list", + "$ref": "#/components/schemas/AccessList" + }, + "chainId": { + "title": "chainId", + "description": "Chain ID that this transaction is valid on.", + "$ref": "#/components/schemas/uint" + } + } + }, + "Transaction2930Unsigned": { + "type": "object", + "title": "EIP-2930 transaction.", + "required": [ + "type", + "nonce", + "gas", + "value", + "input", + "gasPrice", + "chainId", + "accessList" + ], + "properties": { + "type": { + "title": "type", + "type": "string", + "pattern": "^0x1$" + }, + "nonce": { + "title": "nonce", "$ref": "#/components/schemas/uint" }, - "gasUsed": { - "title": "Gas used", + "to": { + "title": "to address", + "oneOf": [ + { + "title": "Contract Creation (null)", + "type": "null" + }, + { + "title": "Address", + "$ref": "#/components/schemas/address" + } + ] + }, + "gas": { + "title": "gas limit", "$ref": "#/components/schemas/uint" }, - "timestamp": { - "title": "Timestamp", + "value": { + "title": "value", "$ref": "#/components/schemas/uint" }, - "extraData": { - "title": "Extra data", + "input": { + "title": "input data", "$ref": "#/components/schemas/bytes" }, - "mixHash": { - "title": "Mix hash", - "$ref": "#/components/schemas/hash32" + "gasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", + "$ref": "#/components/schemas/uint" + }, + "accessList": { + "title": "accessList", + "description": "EIP-2930 access list", + "$ref": "#/components/schemas/AccessList" + }, + "chainId": { + "title": "chainId", + "description": "Chain ID that this transaction is valid on.", + "$ref": "#/components/schemas/uint" + } + } + }, + "TransactionLegacyUnsigned": { + "type": "object", + "title": "Legacy transaction.", + "required": [ + "type", + "nonce", + "gas", + "value", + "input", + "gasPrice" + ], + "properties": { + "type": { + "title": "type", + "type": "string", + "pattern": "^0x0$" }, "nonce": { - "title": "Nonce", - "$ref": "#/components/schemas/bytes8" + "title": "nonce", + "$ref": "#/components/schemas/uint" }, - "totalDifficulty": { - "title": "Total difficult", + "to": { + "title": "to address", + "oneOf": [ + { + "title": "Contract Creation (null)", + "type": "null" + }, + { + "title": "Address", + "$ref": "#/components/schemas/address" + } + ] + }, + "gas": { + "title": "gas limit", "$ref": "#/components/schemas/uint" }, - "baseFeePerGas": { - "title": "Base fee per gas", + "value": { + "title": "value", "$ref": "#/components/schemas/uint" }, - "size": { - "title": "Block size", + "input": { + "title": "input data", + "$ref": "#/components/schemas/bytes" + }, + "gasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", "$ref": "#/components/schemas/uint" }, - "transactions": { - "anyOf": [ - { - "title": "Transaction hashes", - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" - } + "chainId": { + "title": "chainId", + "description": "Chain ID that this transaction is valid on.", + "$ref": "#/components/schemas/uint" + } + } + }, + "TransactionUnsigned": { + "oneOf": [ + { + "$ref": "#/components/schemas/Transaction4844Unsigned" + }, + { + "$ref": "#/components/schemas/Transaction1559Unsigned" + }, + { + "$ref": "#/components/schemas/Transaction2930Unsigned" + }, + { + "$ref": "#/components/schemas/TransactionLegacyUnsigned" + } + ] + }, + "Transaction4844Signed": { + "title": "Signed 4844 Transaction", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Transaction4844Unsigned" + }, + { + "title": "EIP-4844 transaction signature properties.", + "required": [ + "yParity", + "r", + "s" + ], + "properties": { + "yParity": { + "title": "yParity", + "description": "The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.", + "$ref": "#/components/schemas/uint" + }, + "r": { + "title": "r", + "$ref": "#/components/schemas/uint" + }, + "s": { + "title": "s", + "$ref": "#/components/schemas/uint" + } + } + } + ] + }, + "Transaction1559Signed": { + "title": "Signed 1559 Transaction", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Transaction1559Unsigned" + }, + { + "title": "EIP-1559 transaction signature properties.", + "required": [ + "yParity", + "r", + "s" + ], + "properties": { + "yParity": { + "title": "yParity", + "description": "The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.", + "$ref": "#/components/schemas/uint" }, - { - "title": "Full transactions", - "type": "array", - "items": { - "$ref": "#/components/schemas/TransactionSigned" - } + "v": { + "title": "v", + "description": "For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.", + "$ref": "#/components/schemas/uint" + }, + "r": { + "title": "r", + "$ref": "#/components/schemas/uint" + }, + "s": { + "title": "s", + "$ref": "#/components/schemas/uint" } - ] - }, - "uncles": { - "title": "Uncles", - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" } } - } - }, - "BlockTag": { - "title": "Block tag", - "type": "string", - "enum": [ - "earliest", - "finalized", - "safe", - "latest", - "pending" - ], - "description": "`earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error" + ] }, - "BlockNumberOrTag": { - "title": "Block number or tag", - "oneOf": [ + "Transaction2930Signed": { + "title": "Signed 2930 Transaction", + "type": "object", + "allOf": [ { - "title": "Block number", - "$ref": "#/components/schemas/uint" + "$ref": "#/components/schemas/Transaction2930Unsigned" }, { - "title": "Block tag", - "$ref": "#/components/schemas/BlockTag" + "title": "EIP-2930 transaction signature properties.", + "required": [ + "yParity", + "r", + "s" + ], + "properties": { + "yParity": { + "title": "yParity", + "description": "The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.", + "$ref": "#/components/schemas/uint" + }, + "v": { + "title": "v", + "description": "For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.", + "$ref": "#/components/schemas/uint" + }, + "r": { + "title": "r", + "$ref": "#/components/schemas/uint" + }, + "s": { + "title": "s", + "$ref": "#/components/schemas/uint" + } + } } ] }, - "BadBlock": { - "title": "Bad block", + "TransactionLegacySigned": { + "title": "Signed Legacy Transaction", "type": "object", - "required": [ - "block", - "hash", - "rlp" - ], - "properties": { - "block": { - "title": "Block", - "$ref": "#/components/schemas/bytes" - }, - "hash": { - "title": "Hash", - "$ref": "#/components/schemas/hash32" + "allOf": [ + { + "$ref": "#/components/schemas/TransactionLegacyUnsigned" }, - "rlp": { - "title": "RLP", - "$ref": "#/components/schemas/bytes" + { + "title": "Legacy transaction signature properties.", + "required": [ + "v", + "r", + "s" + ], + "properties": { + "v": { + "title": "v", + "$ref": "#/components/schemas/uint" + }, + "r": { + "title": "r", + "$ref": "#/components/schemas/uint" + }, + "s": { + "title": "s", + "$ref": "#/components/schemas/uint" + } + } } - } + ] }, - "SyncingStatus": { - "title": "Syncing status", + "TransactionSigned": { "oneOf": [ { - "title": "Syncing progress", - "type": "object", + "$ref": "#/components/schemas/Transaction4844Signed" + }, + { + "$ref": "#/components/schemas/Transaction1559Signed" + }, + { + "$ref": "#/components/schemas/Transaction2930Signed" + }, + { + "$ref": "#/components/schemas/TransactionLegacySigned" + } + ] + }, + "TransactionInfo": { + "type": "object", + "title": "Transaction information", + "allOf": [ + { + "title": "Contextual information", + "required": [ + "blockHash", + "blockNumber", + "from", + "hash", + "transactionIndex" + ], + "unevaluatedProperties": false, "properties": { - "startingBlock": { - "title": "Starting block", - "$ref": "#/components/schemas/uint" + "blockHash": { + "title": "block hash", + "$ref": "#/components/schemas/hash32" }, - "currentBlock": { - "title": "Current block", + "blockNumber": { + "title": "block number", "$ref": "#/components/schemas/uint" }, - "highestBlock": { - "title": "Highest block", + "from": { + "title": "from address", + "$ref": "#/components/schemas/address" + }, + "hash": { + "title": "transaction hash", + "$ref": "#/components/schemas/hash32" + }, + "transactionIndex": { + "title": "transaction index", "$ref": "#/components/schemas/uint" } } }, - { - "title": "Not syncing", - "description": "Should always return false if not syncing.", - "type": "boolean" - } - ] - }, - "FilterResults": { - "title": "Filter results", - "oneOf": [ - { - "title": "new block hashes", + { + "$ref": "#/components/schemas/TransactionSigned" + } + ] + }, + "GenericTransaction": { + "type": "object", + "title": "Transaction object generic to all types", + "additionalProperties": false, + "properties": { + "type": { + "title": "type", + "$ref": "#/components/schemas/byte" + }, + "nonce": { + "title": "nonce", + "$ref": "#/components/schemas/uint" + }, + "to": { + "title": "to address", + "oneOf": [ + { + "title": "Contract Creation (null)", + "type": "null" + }, + { + "title": "Address", + "$ref": "#/components/schemas/address" + } + ] + }, + "from": { + "title": "from address", + "$ref": "#/components/schemas/address" + }, + "gas": { + "title": "gas limit", + "$ref": "#/components/schemas/uint" + }, + "value": { + "title": "value", + "$ref": "#/components/schemas/uint" + }, + "input": { + "title": "input data", + "$ref": "#/components/schemas/bytes" + }, + "gasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", + "$ref": "#/components/schemas/uint" + }, + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", + "$ref": "#/components/schemas/uint" + }, + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", + "$ref": "#/components/schemas/uint" + }, + "maxFeePerBlobGas": { + "title": "max fee per blob gas", + "description": "The maximum total fee per gas the sender is willing to pay for blob gas in wei", + "$ref": "#/components/schemas/uint" + }, + "accessList": { + "title": "accessList", + "description": "EIP-2930 access list", + "$ref": "#/components/schemas/AccessList" + }, + "blobVersionedHashes": { + "title": "blobVersionedHashes", + "description": "List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.", "type": "array", "items": { "$ref": "#/components/schemas/hash32" } }, - { - "title": "new transaction hashes", + "blobs": { + "title": "blobs", + "description": "Raw blob data.", "type": "array", "items": { - "$ref": "#/components/schemas/hash32" + "$ref": "#/components/schemas/bytes" } }, - { - "title": "new logs", - "type": "array", - "items": { - "$ref": "#/components/schemas/Log" - } + "chainId": { + "title": "chainId", + "description": "Chain ID that this transaction is valid on.", + "$ref": "#/components/schemas/uint" } - ] + } }, - "Filter": { - "title": "filter", + "Withdrawal": { "type": "object", + "title": "Validator withdrawal", + "required": [ + "index", + "validatorIndex", + "address", + "amount" + ], + "additionalProperties": false, "properties": { - "fromBlock": { - "title": "from block", - "$ref": "#/components/schemas/uint" + "index": { + "title": "index of withdrawal", + "$ref": "#/components/schemas/uint64" }, - "toBlock": { - "title": "to block", - "$ref": "#/components/schemas/uint" + "validatorIndex": { + "title": "index of validator that generated withdrawal", + "$ref": "#/components/schemas/uint64" }, "address": { - "title": "Address(es)", - "oneOf": [ - { - "title": "Address", - "$ref": "#/components/schemas/address" - }, - { - "title": "Addresses", - "$ref": "#/components/schemas/addresses" - } - ] + "title": "recipient address for withdrawal value", + "$ref": "#/components/schemas/address" }, - "topics": { - "title": "Topics", - "$ref": "#/components/schemas/FilterTopics" + "amount": { + "title": "value contained in withdrawal", + "$ref": "#/components/schemas/uint256" } } }, - "FilterTopics": { - "title": "Filter Topics", - "type": "array", - "items": { - "$ref": "#/components/schemas/FilterTopic" - } - }, - "FilterTopic": { - "title": "Filter Topic List Entry", - "oneOf": [ - { - "title": "Any Topic Match", - "type": "null" - }, - { - "title": "Single Topic Match", - "$ref": "#/components/schemas/bytes32" - }, - { - "title": "Multiple Topic Match", - "type": "array", - "items": { - "$ref": "#/components/schemas/bytes32" - } - } - ] - }, - "Log": { - "title": "log", + "ForkchoiceStateV1": { + "title": "Forkchoice state object V1", "type": "object", "required": [ - "transactionHash" + "headBlockHash", + "safeBlockHash", + "finalizedBlockHash" ], "properties": { - "removed": { - "title": "removed", - "type": "boolean" - }, - "logIndex": { - "title": "log index", - "$ref": "#/components/schemas/uint" - }, - "transactionIndex": { - "title": "transaction index", - "$ref": "#/components/schemas/uint" - }, - "transactionHash": { - "title": "transaction hash", + "headBlockHash": { + "title": "Head block hash", "$ref": "#/components/schemas/hash32" }, - "blockHash": { - "title": "block hash", + "safeBlockHash": { + "title": "Safe block hash", "$ref": "#/components/schemas/hash32" }, - "blockNumber": { - "title": "block number", - "$ref": "#/components/schemas/uint" - }, - "address": { - "title": "address", - "$ref": "#/components/schemas/address" - }, - "data": { - "title": "data", - "$ref": "#/components/schemas/bytes" - }, - "topics": { - "title": "topics", - "type": "array", - "items": { - "$ref": "#/components/schemas/bytes32" - } + "finalizedBlockHash": { + "title": "Finalized block hash", + "$ref": "#/components/schemas/hash32" } } }, - "ReceiptInfo": { + "ForkchoiceUpdatedResponseV1": { + "title": "Forkchoice updated response", "type": "object", - "title": "Receipt info", "required": [ - "blockHash", - "blockNumber", - "from", - "cumulativeGasUsed", - "gasUsed", - "logs", - "logsBloom", - "transactionHash", - "transactionIndex", - "effectiveGasPrice" + "payloadStatus" ], "properties": { - "transactionHash": { - "title": "transaction hash", - "$ref": "#/components/schemas/hash32" - }, - "transactionIndex": { - "title": "transaction index", - "$ref": "#/components/schemas/uint" - }, - "blockHash": { - "title": "block hash", - "$ref": "#/components/schemas/hash32" + "payloadStatus": { + "title": "Payload status", + "$ref": "#/components/schemas/RestrictedPayloadStatusV1" }, - "blockNumber": { - "title": "block number", - "$ref": "#/components/schemas/uint" + "payloadId": { + "title": "Payload id", + "$ref": "#/components/schemas/bytes8" + } + } + }, + "PayloadAttributesV1": { + "title": "Payload attributes object V1", + "type": "object", + "required": [ + "timestamp", + "prevRandao", + "suggestedFeeRecipient" + ], + "properties": { + "timestamp": { + "title": "Timestamp", + "$ref": "#/components/schemas/uint64" }, - "from": { - "title": "from", - "$ref": "#/components/schemas/address" + "prevRandao": { + "title": "Previous randao value", + "$ref": "#/components/schemas/bytes32" }, - "to": { - "title": "to", - "description": "Address of the receiver or null in a contract creation transaction.", + "suggestedFeeRecipient": { + "title": "Suggested fee recipient", "$ref": "#/components/schemas/address" + } + } + }, + "PayloadAttributesV2": { + "title": "Payload attributes object V2", + "type": "object", + "required": [ + "timestamp", + "prevRandao", + "suggestedFeeRecipient", + "withdrawals" + ], + "properties": { + "timestamp": { + "$ref": "#/components/schemas/PayloadAttributesV1/properties/timestamp" }, - "cumulativeGasUsed": { - "title": "cumulative gas used", - "description": "The sum of gas used by this transaction and all preceding transactions in the same block.", - "$ref": "#/components/schemas/uint" - }, - "gasUsed": { - "title": "gas used", - "description": "The amount of gas used for this specific transaction alone.", - "$ref": "#/components/schemas/uint" + "prevRandao": { + "$ref": "#/components/schemas/PayloadAttributesV1/properties/prevRandao" }, - "contractAddress": { - "title": "contract address", - "description": "The contract address created, if the transaction was a contract creation, otherwise null.", - "oneOf": [ - { - "$ref": "#/components/schemas/address" - }, - { - "name": null, - "type": "null" - } - ] + "suggestedFeeRecipient": { + "$ref": "#/components/schemas/PayloadAttributesV1/properties/suggestedFeeRecipient" }, - "logs": { - "title": "logs", + "withdrawals": { + "title": "Withdrawals", "type": "array", "items": { - "$ref": "#/components/schemas/Log" + "$ref": "#/components/schemas/WithdrawalV1" } + } + } + }, + "PayloadAttributesV3": { + "title": "Payload attributes object V3", + "type": "object", + "required": [ + "timestamp", + "prevRandao", + "suggestedFeeRecipient", + "withdrawals", + "parentBeaconBlockRoot" + ], + "properties": { + "timestamp": { + "$ref": "#/components/schemas/PayloadAttributesV2/properties/timestamp" }, - "logsBloom": { - "title": "logs bloom", - "$ref": "#/components/schemas/bytes256" + "prevRandao": { + "$ref": "#/components/schemas/PayloadAttributesV2/properties/prevRandao" }, - "root": { - "title": "state root", - "description": "The post-transaction state root. Only specified for transactions included before the Byzantium upgrade.", - "$ref": "#/components/schemas/bytes32" + "suggestedFeeRecipient": { + "$ref": "#/components/schemas/PayloadAttributesV2/properties/suggestedFeeRecipient" }, - "status": { - "title": "status", - "description": "Either 1 (success) or 0 (failure). Only specified for transactions included after the Byzantium upgrade.", - "$ref": "#/components/schemas/uint" + "withdrawals": { + "$ref": "#/components/schemas/PayloadAttributesV2/properties/withdrawals" }, - "effectiveGasPrice": { - "title": "effective gas price", - "description": "The actual value per gas deducted from the senders account. Before EIP-1559, this is equal to the transaction's gas price. After, it is equal to baseFeePerGas + min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas).", - "$ref": "#/components/schemas/uint" + "parentBeaconBlockRoot": { + "title": "Parent beacon block root", + "$ref": "#/components/schemas/hash32" } } }, - "AccountProof": { - "title": "Account proof", + "PayloadStatusV1": { + "title": "Payload status object V1", "type": "object", "required": [ - "address", - "accountProof", - "balance", - "codeHash", - "nonce", - "storageHash", - "storageProof" + "status" ], "properties": { - "address": { - "title": "address", - "$ref": "#/components/schemas/address" - }, - "accountProof": { - "title": "accountProof", - "type": "array", - "items": { - "$ref": "#/components/schemas/bytes" - } - }, - "balance": { - "title": "balance", - "$ref": "#/components/schemas/uint256" + "status": { + "title": "Payload validation status", + "type": "string", + "enum": [ + "VALID", + "INVALID", + "SYNCING", + "ACCEPTED", + "INVALID_BLOCK_HASH" + ] }, - "codeHash": { - "title": "codeHash", + "latestValidHash": { + "title": "The hash of the most recent valid block", "$ref": "#/components/schemas/hash32" }, - "nonce": { - "title": "nonce", - "$ref": "#/components/schemas/uint64" + "validationError": { + "title": "Validation error message", + "type": "string" + } + } + }, + "RestrictedPayloadStatusV1": { + "$ref": "#/components/schemas/PayloadStatusV1", + "properties": { + "status": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/status", + "description": "Set of possible values is restricted to VALID, INVALID, SYNCING", + "enum": [ + "VALID", + "INVALID", + "SYNCING" + ] + }, + "latestValidHash": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/latestValidHash" }, - "storageHash": { - "title": "storageHash", - "$ref": "#/components/schemas/hash32" + "validationError": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/validationError" + } + } + }, + "PayloadStatusNoInvalidBlockHash": { + "$ref": "#/components/schemas/PayloadStatusV1", + "title": "Payload status object deprecating INVALID_BLOCK_HASH status", + "properties": { + "status": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/status", + "enum": [ + "VALID", + "INVALID", + "SYNCING", + "ACCEPTED" + ] }, - "storageProof": { - "title": "storageProof", - "type": "array", - "items": { - "$ref": "#/components/schemas/StorageProof" - } + "latestValidHash": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/latestValidHash" + }, + "validationError": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/validationError" } } }, - "StorageProof": { - "title": "Storage proof", + "ExecutionPayloadV1": { + "title": "Execution payload object V1", "type": "object", "required": [ - "key", - "value", - "proof" + "parentHash", + "feeRecipient", + "stateRoot", + "receiptsRoot", + "logsBloom", + "prevRandao", + "blockNumber", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "baseFeePerGas", + "blockHash", + "transactions" ], "properties": { - "key": { - "title": "key", + "parentHash": { + "title": "Parent block hash", "$ref": "#/components/schemas/hash32" }, - "value": { - "title": "value", + "feeRecipient": { + "title": "Recipient of transaction priority fees", + "$ref": "#/components/schemas/address" + }, + "stateRoot": { + "title": "State root", + "$ref": "#/components/schemas/hash32" + }, + "receiptsRoot": { + "title": "Receipts root", + "$ref": "#/components/schemas/hash32" + }, + "logsBloom": { + "title": "Bloom filter", + "$ref": "#/components/schemas/bytes256" + }, + "prevRandao": { + "title": "Previous randao value", + "$ref": "#/components/schemas/bytes32" + }, + "blockNumber": { + "title": "Block number", + "$ref": "#/components/schemas/uint64" + }, + "gasLimit": { + "title": "Gas limit", + "$ref": "#/components/schemas/uint64" + }, + "gasUsed": { + "title": "Gas used", + "$ref": "#/components/schemas/uint64" + }, + "timestamp": { + "title": "Timestamp", + "$ref": "#/components/schemas/uint64" + }, + "extraData": { + "title": "Extra data", + "$ref": "#/components/schemas/bytesMax32" + }, + "baseFeePerGas": { + "title": "Base fee per gas", "$ref": "#/components/schemas/uint256" }, - "proof": { - "title": "proof", + "blockHash": { + "title": "Block hash", + "$ref": "#/components/schemas/hash32" + }, + "transactions": { + "title": "Transactions", "type": "array", "items": { "$ref": "#/components/schemas/bytes" @@ -1590,410 +3892,258 @@ } } }, - "AccessListEntry": { - "title": "Access list entry", + "WithdrawalV1": { + "title": "Withdrawal object V1", "type": "object", + "required": [ + "index", + "validatorIndex", + "address", + "amount" + ], "properties": { + "index": { + "title": "Withdrawal index", + "$ref": "#/components/schemas/uint64" + }, + "validatorIndex": { + "title": "Validator index", + "$ref": "#/components/schemas/uint64" + }, "address": { + "title": "Withdrawal address", "$ref": "#/components/schemas/address" }, - "storageKeys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" - } + "amount": { + "title": "Withdrawal amount", + "$ref": "#/components/schemas/uint64" } } }, - "AccessList": { - "title": "Access list", - "type": "array", - "items": { - "$ref": "#/components/schemas/AccessListEntry" - } - }, - "Transaction1559Unsigned": { + "ExecutionPayloadV2": { + "title": "Execution payload object V2", "type": "object", - "title": "EIP-1559 transaction.", "required": [ - "type", - "nonce", - "gas", - "value", - "input", - "maxFeePerGas", - "maxPriorityFeePerGas", - "chainId", - "accessList" + "parentHash", + "feeRecipient", + "stateRoot", + "receiptsRoot", + "logsBloom", + "prevRandao", + "blockNumber", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "baseFeePerGas", + "blockHash", + "transactions", + "withdrawals" ], "properties": { - "type": { - "title": "type", - "$ref": "#/components/schemas/byte" + "parentHash": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/parentHash" }, - "nonce": { - "title": "nonce", - "$ref": "#/components/schemas/uint" + "feeRecipient": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/feeRecipient" }, - "to": { - "title": "to address", - "$ref": "#/components/schemas/address" + "stateRoot": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/stateRoot" }, - "gas": { - "title": "gas limit", - "$ref": "#/components/schemas/uint" + "receiptsRoot": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/receiptsRoot" }, - "value": { - "title": "value", - "$ref": "#/components/schemas/uint" + "logsBloom": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/logsBloom" }, - "input": { - "title": "input data", - "$ref": "#/components/schemas/bytes" + "prevRandao": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/prevRandao" }, - "maxPriorityFeePerGas": { - "title": "max priority fee per gas", - "description": "Maximum fee per gas the sender is willing to pay to miners in wei", - "$ref": "#/components/schemas/uint" + "blockNumber": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/blockNumber" }, - "maxFeePerGas": { - "title": "max fee per gas", - "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", - "$ref": "#/components/schemas/uint" + "gasLimit": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/gasLimit" }, - "accessList": { - "title": "accessList", - "description": "EIP-2930 access list", - "$ref": "#/components/schemas/AccessList" + "gasUsed": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/gasUsed" }, - "chainId": { - "title": "chainId", - "description": "Chain ID that this transaction is valid on.", - "$ref": "#/components/schemas/uint" + "timestamp": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/timestamp" + }, + "extraData": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/extraData" + }, + "baseFeePerGas": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/baseFeePerGas" + }, + "blockHash": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/blockHash" + }, + "transactions": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/transactions" + }, + "withdrawals": { + "title": "Withdrawals", + "type": "array", + "items": { + "$ref": "#/components/schemas/WithdrawalV1" + } } } }, - "Transaction2930Unsigned": { + "ExecutionPayloadV3": { + "title": "Execution payload object V3", "type": "object", - "title": "EIP-2930 transaction.", "required": [ - "type", - "nonce", - "gas", - "value", - "input", - "gasPrice", - "chainId", - "accessList" + "parentHash", + "feeRecipient", + "stateRoot", + "receiptsRoot", + "logsBloom", + "prevRandao", + "blockNumber", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "baseFeePerGas", + "blockHash", + "transactions", + "withdrawals", + "blobGasUsed", + "excessBlobGas" ], "properties": { - "type": { - "title": "type", - "$ref": "#/components/schemas/byte" - }, - "nonce": { - "title": "nonce", - "$ref": "#/components/schemas/uint" - }, - "to": { - "title": "to address", - "$ref": "#/components/schemas/address" + "parentHash": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/parentHash" }, - "gas": { - "title": "gas limit", - "$ref": "#/components/schemas/uint" + "feeRecipient": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/feeRecipient" }, - "value": { - "title": "value", - "$ref": "#/components/schemas/uint" + "stateRoot": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/stateRoot" }, - "input": { - "title": "input data", - "$ref": "#/components/schemas/bytes" + "receiptsRoot": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/receiptsRoot" }, - "gasPrice": { - "title": "gas price", - "description": "The gas price willing to be paid by the sender in wei", - "$ref": "#/components/schemas/uint" + "logsBloom": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/logsBloom" }, - "accessList": { - "title": "accessList", - "description": "EIP-2930 access list", - "$ref": "#/components/schemas/AccessList" + "prevRandao": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/prevRandao" }, - "chainId": { - "title": "chainId", - "description": "Chain ID that this transaction is valid on.", - "$ref": "#/components/schemas/uint" - } - } - }, - "TransactionLegacyUnsigned": { - "type": "object", - "title": "Legacy transaction.", - "required": [ - "type", - "nonce", - "gas", - "value", - "input", - "gasPrice" - ], - "properties": { - "type": { - "title": "type", - "$ref": "#/components/schemas/byte" + "blockNumber": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/blockNumber" }, - "nonce": { - "title": "nonce", - "$ref": "#/components/schemas/uint" + "gasLimit": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/gasLimit" }, - "to": { - "title": "to address", - "$ref": "#/components/schemas/address" + "gasUsed": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/gasUsed" }, - "gas": { - "title": "gas limit", - "$ref": "#/components/schemas/uint" + "timestamp": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/timestamp" }, - "value": { - "title": "value", - "$ref": "#/components/schemas/uint" + "extraData": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/extraData" }, - "input": { - "title": "input data", - "$ref": "#/components/schemas/bytes" + "baseFeePerGas": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/baseFeePerGas" }, - "gasPrice": { - "title": "gas price", - "description": "The gas price willing to be paid by the sender in wei", - "$ref": "#/components/schemas/uint" + "blockHash": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/blockHash" }, - "chainId": { - "title": "chainId", - "description": "Chain ID that this transaction is valid on.", - "$ref": "#/components/schemas/uint" - } - } - }, - "TransactionUnsigned": { - "oneOf": [ - { - "$ref": "#/components/schemas/Transaction1559Unsigned" + "transactions": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/transactions" }, - { - "$ref": "#/components/schemas/Transaction2930Unsigned" + "withdrawals": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/withdrawals" }, - { - "$ref": "#/components/schemas/TransactionLegacyUnsigned" - } - ] - }, - "Transaction1559Signed": { - "title": "Signed 1559 Transaction", - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Transaction1559Unsigned" + "blobGasUsed": { + "title": "Blob gas used", + "$ref": "#/components/schemas/uint64" }, - { - "title": "EIP-1559 transaction signature properties.", - "required": [ - "yParity", - "r", - "s" - ], - "properties": { - "yParity": { - "title": "yParity", - "description": "The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.", - "$ref": "#/components/schemas/uint" - }, - "r": { - "title": "r", - "$ref": "#/components/schemas/uint" - }, - "s": { - "title": "s", - "$ref": "#/components/schemas/uint" - } - } + "excessBlobGas": { + "title": "Excess blob gas", + "$ref": "#/components/schemas/uint64" } - ] + } }, - "Transaction2930Signed": { - "title": "Signed 2930 Transaction", + "ExecutionPayloadBodyV1": { + "title": "Execution payload body object V1", "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Transaction2930Unsigned" + "required": [ + "transactions" + ], + "properties": { + "transactions": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/transactions" }, - { - "title": "EIP-2930 transaction signature properties.", - "required": [ - "yParity", - "r", - "s" + "withdrawals": { + "title": "Withdrawals", + "type": [ + "array", + "null" ], - "properties": { - "yParity": { - "title": "yParity", - "description": "The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.", - "$ref": "#/components/schemas/uint" - }, - "r": { - "title": "r", - "$ref": "#/components/schemas/uint" - }, - "s": { - "title": "s", - "$ref": "#/components/schemas/uint" - } + "items": { + "$ref": "#/components/schemas/WithdrawalV1" } } - ] + } }, - "TransactionLegacySigned": { - "title": "Signed Legacy Transaction", + "BlobsBundleV1": { + "title": "Blobs bundle object V1", "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/TransactionLegacyUnsigned" - }, - { - "title": "Legacy transaction signature properties.", - "required": [ - "v", - "r", - "s" - ], - "properties": { - "v": { - "title": "v", - "$ref": "#/components/schemas/uint" - }, - "r": { - "title": "r", - "$ref": "#/components/schemas/uint" - }, - "s": { - "title": "s", - "$ref": "#/components/schemas/uint" - } + "required": [ + "commitments", + "proofs", + "blobs" + ], + "properties": { + "commitments": { + "title": "Commitments", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes48" } - } - ] - }, - "TransactionSigned": { - "oneOf": [ - { - "$ref": "#/components/schemas/Transaction1559Signed" - }, - { - "$ref": "#/components/schemas/Transaction2930Signed" }, - { - "$ref": "#/components/schemas/TransactionLegacySigned" - } - ] - }, - "TransactionInfo": { - "type": "object", - "title": "Transaction information", - "allOf": [ - { - "title": "Contextual information", - "required": [ - "blockHash", - "blockNumber", - "from", - "hash", - "transactionIndex" - ], - "properties": { - "blockHash": { - "title": "block hash", - "$ref": "#/components/schemas/hash32" - }, - "blockNumber": { - "title": "block number", - "$ref": "#/components/schemas/uint" - }, - "from": { - "title": "from address", - "$ref": "#/components/schemas/address" - }, - "hash": { - "title": "transaction hash", - "$ref": "#/components/schemas/hash32" - }, - "transactionIndex": { - "title": "transaction index", - "$ref": "#/components/schemas/uint" - } + "proofs": { + "title": "Proofs", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes48" } }, - { - "$ref": "#/components/schemas/TransactionSigned" + "blobs": { + "title": "Blobs", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes" + } } - ] + } }, - "GenericTransaction": { + "TransitionConfigurationV1": { + "title": "Transition configuration object", "type": "object", - "title": "Transaction object generic to all types", + "required": [ + "terminalTotalDifficulty", + "terminalBlockHash", + "terminalBlockNumber" + ], "properties": { - "type": { - "title": "type", - "$ref": "#/components/schemas/byte" - }, - "nonce": { - "title": "nonce", - "$ref": "#/components/schemas/uint" - }, - "to": { - "title": "to address", - "$ref": "#/components/schemas/address" - }, - "from": { - "title": "from address", - "$ref": "#/components/schemas/address" - }, - "gas": { - "title": "gas limit", - "$ref": "#/components/schemas/uint" - }, - "value": { - "title": "value", - "$ref": "#/components/schemas/uint" - }, - "input": { - "title": "input data", - "$ref": "#/components/schemas/bytes" - }, - "gasPrice": { - "title": "gas price", - "description": "The gas price willing to be paid by the sender in wei", - "$ref": "#/components/schemas/uint" - }, - "maxPriorityFeePerGas": { - "title": "max priority fee per gas", - "description": "Maximum fee per gas the sender is willing to pay to miners in wei", - "$ref": "#/components/schemas/uint" - }, - "maxFeePerGas": { - "title": "max fee per gas", - "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", - "$ref": "#/components/schemas/uint" + "terminalTotalDifficulty": { + "title": "Terminal total difficulty", + "$ref": "#/components/schemas/uint256" }, - "accessList": { - "title": "accessList", - "description": "EIP-2930 access list", - "$ref": "#/components/schemas/AccessList" + "terminalBlockHash": { + "title": "Terminal block hash", + "$ref": "#/components/schemas/hash32" }, - "chainId": { - "title": "chainId", - "description": "Chain ID that this transaction is valid on.", - "$ref": "#/components/schemas/uint" + "terminalBlockNumber": { + "title": "Terminal block number", + "$ref": "#/components/schemas/uint64" } } }