From 76608a231cc6770ed492fe7b0f69a168d4eeca6c Mon Sep 17 00:00:00 2001 From: AntonD3 <74021421+AntonD3@users.noreply.github.com> Date: Thu, 8 Feb 2024 12:43:20 +0100 Subject: [PATCH] feat: protocol 20(vm 1.4.1 + fee model) integration (#258) * Update system contracts * Update zksync-era, make it compiles * Fix bootloader debug data, SC build scripts, rebuild SC * Fix tests * cargo fmt * Update rust in workflows * Small refactoring * Fix e2e tests * Use latest zksync-era * Update SC repo link * Implement some review improvements * Reuse zksync-era functionality for fee params * Update fee params in e2e tests * Extend gas info * Update comment --------- Co-authored-by: Nicolas Villanueva --- .github/workflows/checks.yaml | 4 +- .github/workflows/docs.yaml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/tests.yaml | 2 +- .gitignore | 3 +- Cargo.lock | 3292 +++++++++-------- Cargo.toml | 18 +- e2e-tests/test/zks-apis.test.ts | 6 +- etc/system-contracts/SystemConfig.json | 26 +- etc/system-contracts/VERSION.md | 10 +- .../bootloader/bootloader.yul | 365 +- .../bootloader/test_infra/Cargo.lock | 3102 ++++++++++++---- .../bootloader/test_infra/Cargo.toml | 12 +- .../bootloader/test_infra/rust-toolchain | 1 + .../bootloader/test_infra/src/hook.rs | 15 +- .../bootloader/test_infra/src/main.rs | 115 +- .../test_infra/src/test_count_tracer.rs | 18 +- .../bootloader/test_infra/src/tracer.rs | 116 +- .../bootloader/tests/README.md | 2 +- .../tests/bootloader/bootloader_test.yul | 48 + .../bootloader/tests/utils/test_utils.yul | 30 +- .../contracts/BootloaderUtilities.sol | 8 +- etc/system-contracts/contracts/Constants.sol | 8 +- .../contracts/ContractDeployer.sol | 7 +- .../contracts/ImmutableSimulator.sol | 4 +- .../contracts/KnownCodesStorage.sol | 1 - .../contracts/L1Messenger.sol | 4 +- etc/system-contracts/contracts/L2EthToken.sol | 2 +- .../contracts/MsgValueSimulator.sol | 12 +- .../contracts/NonceHolder.sol | 16 +- .../contracts/SystemContext.sol | 12 +- .../contracts/interfaces/IComplexUpgrader.sol | 5 + .../contracts/interfaces/ICompressor.sol | 6 + .../interfaces/IKnownCodesStorage.sol | 6 + .../contracts/interfaces/IL1Messenger.sol | 5 + .../contracts/interfaces/ISystemContext.sol | 1 + .../interfaces/ISystemContextDeprecated.sol | 1 + .../contracts/interfaces/ISystemContract.sol | 13 +- .../contracts/libraries/TransactionHelper.sol | 2 +- .../contracts/precompiles/Ecrecover.yul | 2 +- .../contracts/precompiles/Keccak256.yul | 127 +- .../test-contracts/Keccak256Mock.yul | 99 + .../contracts/test-contracts/AlwaysRevert.sol | 9 + .../contracts/test-contracts/Callable.sol | 19 - .../contracts/test-contracts/DummyUpgrade.sol | 11 - .../test-contracts/EventWriterTest.sol | 31 - .../test-contracts/ExtraAbiCaller.zasm | 60 + .../contracts/test-contracts/KeccakTest.sol | 171 + .../contracts/test-contracts/MockContract.sol | 68 + .../test-contracts/MockERC20Approve.sol | 16 - .../test-contracts/MockKnownCodesStorage.sol | 19 - .../test-contracts/MockL1Messenger.sol | 16 - .../test-contracts/NotSystemCaller.sol | 30 - .../contracts/test-contracts/SystemCaller.sol | 65 +- .../test-contracts/TestSystemContract.sol | 137 - .../TestSystemContractHelper.sol | 108 - etc/system-contracts/hardhat.config.ts | 21 +- etc/system-contracts/package.json | 64 +- .../scripts/calculate-hashes.ts | 53 +- etc/system-contracts/scripts/compile-yul.ts | 117 +- etc/system-contracts/scripts/compile-zasm.ts | 33 + etc/system-contracts/scripts/constants.ts | 559 +-- .../scripts/deploy-preimages.ts | 75 +- .../scripts/preprocess-bootloader.ts | 243 ++ .../scripts/preprocess-system-contracts.ts | 50 + etc/system-contracts/scripts/process.ts | 274 -- etc/system-contracts/scripts/quick-setup.sh | 15 - etc/system-contracts/scripts/utils.ts | 288 +- etc/system-contracts/yarn.lock | 2571 +++---------- rust-toolchain.toml | 2 +- scripts/refresh_contracts.sh | 8 +- src/bootloader_debug.rs | 13 +- src/deps/contracts/AccountCodeStorage.json | 6 +- src/deps/contracts/BootloaderUtilities.json | 6 +- src/deps/contracts/ComplexUpgrader.json | 6 +- src/deps/contracts/Compressor.json | 6 +- src/deps/contracts/ContractDeployer.json | 6 +- src/deps/contracts/DefaultAccount.json | 6 +- .../contracts/DefaultAccountNoSecurity.json | 6 +- src/deps/contracts/EcAdd.yul.zbin | Bin 6304 -> 4576 bytes src/deps/contracts/EcMul.yul.zbin | Bin 9952 -> 6944 bytes src/deps/contracts/Ecrecover.yul.zbin | Bin 544 -> 544 bytes src/deps/contracts/EmptyContract.json | 6 +- src/deps/contracts/EventWriter.yul.zbin | Bin 800 -> 736 bytes src/deps/contracts/ImmutableSimulator.json | 6 +- src/deps/contracts/Keccak256.yul.zbin | Bin 992 -> 480 bytes src/deps/contracts/KnownCodesStorage.json | 6 +- src/deps/contracts/L1Messenger.json | 6 +- src/deps/contracts/L2EthToken.json | 6 +- src/deps/contracts/MsgValueSimulator.json | 6 +- src/deps/contracts/NonceHolder.json | 6 +- src/deps/contracts/SHA256.yul.zbin | Bin 736 -> 736 bytes src/deps/contracts/SystemContext.json | 6 +- src/deps/contracts/fee_estimate.yul.zbin | Bin 79136 -> 66848 bytes .../fee_estimate_impersonating.yul.zbin | Bin 78944 -> 66784 bytes src/deps/contracts/gas_test.yul.zbin | Bin 78112 -> 65312 bytes src/deps/contracts/playground_batch.yul.zbin | Bin 79456 -> 67040 bytes src/deps/contracts/proved_batch.yul.zbin | Bin 79008 -> 65824 bytes .../proved_batch_impersonating.yul.zbin | Bin 79648 -> 65120 bytes src/fork.rs | 1 + src/namespaces/debug.rs | 563 +-- src/namespaces/eth.rs | 165 + src/namespaces/mod.rs | 5 +- src/namespaces/zks.rs | 111 + src/node/config.rs | 2 +- src/node/debug.rs | 3 +- src/node/eth.rs | 19 +- src/node/evm.rs | 3 +- src/node/fee_model.rs | 35 + src/node/hardhat.rs | 3 +- src/node/in_memory.rs | 142 +- src/node/in_memory_ext.rs | 2 +- src/node/mod.rs | 1 + src/node/zks.rs | 12 +- src/system_contracts.rs | 18 +- src/utils.rs | 74 +- 116 files changed, 7055 insertions(+), 6870 deletions(-) create mode 100644 etc/system-contracts/bootloader/test_infra/rust-toolchain create mode 100644 etc/system-contracts/contracts/precompiles/test-contracts/Keccak256Mock.yul create mode 100644 etc/system-contracts/contracts/test-contracts/AlwaysRevert.sol delete mode 100644 etc/system-contracts/contracts/test-contracts/Callable.sol delete mode 100644 etc/system-contracts/contracts/test-contracts/DummyUpgrade.sol delete mode 100644 etc/system-contracts/contracts/test-contracts/EventWriterTest.sol create mode 100644 etc/system-contracts/contracts/test-contracts/ExtraAbiCaller.zasm create mode 100644 etc/system-contracts/contracts/test-contracts/KeccakTest.sol create mode 100644 etc/system-contracts/contracts/test-contracts/MockContract.sol delete mode 100644 etc/system-contracts/contracts/test-contracts/MockERC20Approve.sol delete mode 100644 etc/system-contracts/contracts/test-contracts/MockKnownCodesStorage.sol delete mode 100644 etc/system-contracts/contracts/test-contracts/MockL1Messenger.sol delete mode 100644 etc/system-contracts/contracts/test-contracts/NotSystemCaller.sol delete mode 100644 etc/system-contracts/contracts/test-contracts/TestSystemContract.sol delete mode 100644 etc/system-contracts/contracts/test-contracts/TestSystemContractHelper.sol create mode 100644 etc/system-contracts/scripts/compile-zasm.ts create mode 100644 etc/system-contracts/scripts/preprocess-bootloader.ts create mode 100644 etc/system-contracts/scripts/preprocess-system-contracts.ts delete mode 100644 etc/system-contracts/scripts/process.ts delete mode 100755 etc/system-contracts/scripts/quick-setup.sh create mode 100644 src/namespaces/eth.rs create mode 100644 src/namespaces/zks.rs create mode 100644 src/node/fee_model.rs diff --git a/.github/workflows/checks.yaml b/.github/workflows/checks.yaml index f25074c6..ebccd602 100644 --- a/.github/workflows/checks.yaml +++ b/.github/workflows/checks.yaml @@ -19,7 +19,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2023-07-23 + toolchain: nightly-2023-08-21 components: rustfmt, clippy - uses: actions/setup-node@v3 @@ -44,7 +44,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2023-07-23 + toolchain: nightly-2023-08-21 - name: Build Code run: make all diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 2a4eef9d..4e8ceeba 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -33,7 +33,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2023-07-21 + toolchain: nightly-2023-08-21 - name: Setup Pages uses: actions/configure-pages@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 58a05941..2a15775a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -48,7 +48,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2023-07-21 + toolchain: nightly-2023-08-21 - name: Install target run: rustup target add ${{ matrix.arch }} diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 8d785306..973f28b1 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -24,7 +24,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2023-07-21 + toolchain: nightly-2023-08-21 - name: Install cargo-nextest run: cargo install cargo-nextest diff --git a/.gitignore b/.gitignore index 106a7b11..ee37a199 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,10 @@ /target etc/system-contracts/.yarn etc/system-contracts/node_modules +etc/system-contracts/contracts-preprocessed etc/system-contracts/cache-zk etc/system-contracts/artifacts-zk -etc/system-contracts/typechain-types +etc/system-contracts/typechain etc/system-contracts/.yarnrc.yml etc/system-contracts/bootloader/build diff --git a/Cargo.lock b/Cargo.lock index 09ddd0f8..ef5b8cb3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,12 +14,12 @@ dependencies = [ [[package]] name = "actix-codec" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "617a8268e3537fe1d8c9ead925fca49ef6400927ee7bc26750e90ecee14ce4b8" +checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 1.3.2", - "bytes 1.5.0", + "bitflags 2.4.2", + "bytes", "futures-core", "futures-sink", "memchr", @@ -31,9 +31,9 @@ dependencies = [ [[package]] name = "actix-cors" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b340e9cfa5b08690aae90fb61beb44e9b06f44fe3d0f93781aaa58cfba86245e" +checksum = "0346d8c1f762b41b458ed3145eea914966bb9ad20b9be0d6d463b20d45586370" dependencies = [ "actix-utils", "actix-web", @@ -46,19 +46,19 @@ dependencies = [ [[package]] name = "actix-http" -version = "3.4.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92ef85799cba03f76e4f7c10f533e66d87c9a7e7055f3391f09000ad8351bc9" +checksum = "d223b13fd481fc0d1f83bb12659ae774d9e3601814c68a0bc539731698cca743" dependencies = [ "actix-codec", "actix-rt", "actix-service", "actix-utils", - "ahash 0.8.6", - "base64 0.21.5", - "bitflags 2.4.1", + "ahash 0.8.7", + "base64 0.21.7", + "bitflags 2.4.2", "brotli", - "bytes 1.5.0", + "bytes", "bytestring", "derive_more", "encoding_rs", @@ -80,7 +80,7 @@ dependencies = [ "tokio", "tokio-util 0.7.10", "tracing", - "zstd 0.12.4", + "zstd 0.13.0", ] [[package]] @@ -89,15 +89,15 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ - "quote 1.0.33", - "syn 2.0.39", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "actix-router" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799" +checksum = "d22475596539443685426b6bdadb926ad0ecaefdfc5fb05e5e3441f15463c511" dependencies = [ "bytestring", "http", @@ -128,7 +128,7 @@ dependencies = [ "actix-utils", "futures-core", "futures-util", - "mio 0.8.9", + "mio", "socket2 0.5.5", "tokio", "tracing", @@ -157,9 +157,9 @@ dependencies = [ [[package]] name = "actix-web" -version = "4.4.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4a5b5e29603ca8c94a77c65cf874718ceb60292c5a5c3e5f4ace041af462b9" +checksum = "43a6556ddebb638c2358714d853257ed226ece6023ef9364f23f0c70737ea984" dependencies = [ "actix-codec", "actix-http", @@ -170,8 +170,8 @@ dependencies = [ "actix-service", "actix-utils", "actix-web-codegen", - "ahash 0.8.6", - "bytes 1.5.0", + "ahash 0.8.7", + "bytes", "bytestring", "cfg-if 1.0.0", "cookie", @@ -202,9 +202,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb1f50ebbb30eca122b188319a4398b3f7bb4a8cdf50ecfb73bfc6a3c3ce54f5" dependencies = [ "actix-router", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -240,18 +240,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ "crypto-common", - "generic-array 0.14.7", -] - -[[package]] -name = "aes" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" -dependencies = [ - "aes-soft", - "aesni", - "cipher 0.2.5", + "generic-array", ] [[package]] @@ -261,22 +250,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" dependencies = [ "cfg-if 1.0.0", - "cipher 0.4.4", + "cipher", "cpufeatures", ] -[[package]] -name = "aes-ctr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7729c3cde54d67063be556aeac75a81330d802f0259500ca40cb52967f975763" -dependencies = [ - "aes-soft", - "aesni", - "cipher 0.2.5", - "ctr 0.6.0", -] - [[package]] name = "aes-gcm" version = "0.10.3" @@ -284,52 +261,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ "aead", - "aes 0.8.3", - "cipher 0.4.4", - "ctr 0.9.2", + "aes", + "cipher", + "ctr", "ghash", "subtle", ] -[[package]] -name = "aes-soft" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" -dependencies = [ - "cipher 0.2.5", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aesni" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" -dependencies = [ - "cipher 0.2.5", - "opaque-debug 0.3.0", -] - [[package]] name = "ahash" version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.12", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if 1.0.0", - "getrandom 0.2.11", + "getrandom 0.2.12", "once_cell", "version_check", "zerocopy", @@ -359,6 +316,12 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -380,14 +343,14 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] name = "anstream" -version = "0.6.4" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" dependencies = [ "anstyle", "anstyle-parse", @@ -399,43 +362,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "arr_macro" @@ -454,7 +417,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0609c78bd572f4edc74310dfb63a01f5609d53fa8b4dd7c4d98aef3b3e8d72d1" dependencies = [ "proc-macro-hack", - "quote 1.0.33", + "quote 1.0.35", "syn 1.0.109", ] @@ -496,9 +459,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" +checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c" dependencies = [ "brotli", "flate2", @@ -512,11 +475,13 @@ dependencies = [ [[package]] name = "async-lock" -version = "2.8.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ - "event-listener", + "event-listener 4.0.3", + "event-listener-strategy", + "pin-project-lite", ] [[package]] @@ -536,20 +501,20 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -558,20 +523,30 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "pharos", "rustc_version", ] [[package]] name = "atoi" -version = "0.4.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616896e05fc0e2649463a93a15183c6a16bf03413a7af88ef1285ddedfa9cda5" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" dependencies = [ "num-traits", ] +[[package]] +name = "atomic-write-file" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436" +dependencies = [ + "nix", + "rand 0.8.5", +] + [[package]] name = "atty" version = "0.2.14" @@ -580,28 +555,18 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi 0.1.19", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] name = "auto_impl" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" -dependencies = [ - "proc-macro-error", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 1.0.109", -] - -[[package]] -name = "autocfg" -version = "0.1.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" +checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" dependencies = [ - "autocfg 1.1.0", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -619,7 +584,7 @@ dependencies = [ "async-trait", "axum-core", "bitflags 1.3.2", - "bytes 1.5.0", + "bytes", "futures-util", "http", "http-body", @@ -648,7 +613,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" dependencies = [ "async-trait", - "bytes 1.5.0", + "bytes", "futures-util", "http", "http-body", @@ -658,18 +623,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "backon" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c1a6197b2120bb2185a267f6515038558b019e92b832bb0320e96d66268dcf9" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "pin-project", - "tokio", -] - [[package]] name = "backtrace" version = "0.3.69" @@ -705,9 +658,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64ct" @@ -742,7 +695,7 @@ dependencies = [ "byteorder", "cfg-if 1.0.0", "crossbeam 0.7.3", - "futures 0.3.29", + "futures 0.3.30", "hex", "lazy_static", "num_cpus", @@ -765,7 +718,7 @@ dependencies = [ "byteorder", "cfg-if 1.0.0", "crossbeam 0.7.3", - "futures 0.3.29", + "futures 0.3.30", "hex", "lazy_static", "num_cpus", @@ -788,6 +741,18 @@ dependencies = [ "serde", ] +[[package]] +name = "bigdecimal" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa" +dependencies = [ + "num-bigint 0.4.4", + "num-integer", + "num-traits", + "serde", +] + [[package]] name = "bincode" version = "1.3.3" @@ -810,12 +775,12 @@ dependencies = [ "lazycell", "peeking_take_while", "prettyplease", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "regex", "rustc-hash", "shlex", - "syn 2.0.39", + "syn 2.0.48", ] [[package]] @@ -844,9 +809,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +dependencies = [ + "serde", +] [[package]] name = "bitmaps" @@ -887,9 +855,9 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" dependencies = [ - "crypto-mac 0.8.0", + "crypto-mac", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -951,26 +919,14 @@ dependencies = [ "constant_time_eq", ] -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding 0.1.5", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - [[package]] name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "block-padding 0.2.1", - "generic-array 0.14.7", + "block-padding", + "generic-array", ] [[package]] @@ -979,26 +935,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "block-modes" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0" -dependencies = [ - "block-padding 0.2.1", - "cipher 0.2.5", -] - -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", + "generic-array", ] [[package]] @@ -1022,14 +959,14 @@ dependencies = [ [[package]] name = "boojum" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#1588de7669b016df3f81f7139a1a4b131840e48b" +source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#93b5e0f0dbff0a9b606d9025e207c8405c141bd9" dependencies = [ "arrayvec 0.7.4", "bincode", "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "const_format", "convert_case 0.6.0", - "crossbeam 0.8.2", + "crossbeam 0.8.4", "crypto-bigint 0.5.5", "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-boojum.git?branch=main)", "derivative", @@ -1050,6 +987,30 @@ dependencies = [ "unroll", ] +[[package]] +name = "borsh" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d4d6dafc1a3bb54687538972158f07b2c948bc57d5890df22c0739098b3028" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4918709cc4dd777ad2b6303ed03cb37f3ca0ccede8c1b0d28ac6db8f4710e0" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.2", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", + "syn_derive", +] + [[package]] name = "brotli" version = "3.4.0" @@ -1094,9 +1055,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" dependencies = [ "memchr", "serde", @@ -1115,10 +1076,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] -name = "byte-tools" -version = "0.3.1" +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] [[package]] name = "bytecount" @@ -1132,16 +1109,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - [[package]] name = "bytes" version = "1.5.0" @@ -1157,7 +1124,7 @@ version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72" dependencies = [ - "bytes 1.5.0", + "bytes", ] [[package]] @@ -1192,9 +1159,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" +checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d" dependencies = [ "serde", ] @@ -1257,6 +1224,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chacha20" version = "0.9.1" @@ -1264,7 +1237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if 1.0.0", - "cipher 0.4.4", + "cipher", "cpufeatures", ] @@ -1276,16 +1249,16 @@ checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", "chacha20", - "cipher 0.4.4", + "cipher", "poly1305", "zeroize", ] [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1293,16 +1266,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.48.5", -] - -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array 0.14.7", + "windows-targets 0.52.0", ] [[package]] @@ -1319,15 +1283,29 @@ dependencies = [ [[package]] name = "circuit_definitions" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#d2e3670e0c5115b7cc7cc24e6d3dbdd17a214aad" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#de2ecad62ac8c12777e576dca20311ad8ec770d1" dependencies = [ - "crossbeam 0.8.2", + "crossbeam 0.8.4", "derivative", "seq-macro", "serde", "snark_wrapper", "zk_evm 1.4.0", - "zkevm_circuits", + "zkevm_circuits 1.4.0", +] + +[[package]] +name = "circuit_definitions" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1#d4e9215d4fe8f4d311e1c01a9b561e4d04cb426b" +dependencies = [ + "crossbeam 0.8.4", + "derivative", + "seq-macro", + "serde", + "snark_wrapper", + "zk_evm 1.4.1", + "zkevm_circuits 1.4.1", ] [[package]] @@ -1340,9 +1318,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" dependencies = [ "glob", "libc", @@ -1366,9 +1344,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.10" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" +checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" dependencies = [ "clap_builder", "clap_derive", @@ -1376,9 +1354,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.9" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" +checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" dependencies = [ "anstream", "anstyle", @@ -1393,9 +1371,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -1404,15 +1382,6 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "codegen" version = "0.1.0" @@ -1447,8 +1416,8 @@ dependencies = [ "bs58", "coins-core", "digest 0.10.7", - "hmac 0.12.1", - "k256 0.13.2", + "hmac", + "k256 0.13.3", "serde", "sha2 0.10.8", "thiserror", @@ -1462,7 +1431,7 @@ checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" dependencies = [ "bitvec 1.0.1", "coins-bip32", - "hmac 0.12.1", + "hmac", "once_cell", "pbkdf2 0.12.2", "rand 0.8.5", @@ -1476,11 +1445,11 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "bech32", "bs58", "digest 0.10.7", - "generic-array 0.14.7", + "generic-array", "hex", "ripemd", "serde", @@ -1498,23 +1467,26 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "colored" -version = "2.0.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" dependencies = [ - "is-terminal", "lazy_static", "windows-sys 0.48.0", ] [[package]] -name = "combine" -version = "4.6.6" +name = "compile-fmt" +version = "0.1.0" +source = "git+https://github.com/slowli/compile-fmt.git?rev=c6a41c846c9a6f70cdba4b44c9f3922242ffcf12#c6a41c846c9a6f70cdba4b44c9f3922242ffcf12" + +[[package]] +name = "concurrent-queue" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ - "bytes 1.5.0", - "memchr", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1532,9 +1504,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const_format" @@ -1551,8 +1523,8 @@ version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "unicode-xid 0.2.4", ] @@ -1590,9 +1562,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -1600,33 +1572,33 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crc" -version = "2.1.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23" +checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" dependencies = [ "crc-catalog", ] [[package]] name = "crc-catalog" -version = "1.1.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" @@ -1653,16 +1625,15 @@ dependencies = [ [[package]] name = "crossbeam" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-channel 0.5.8", - "crossbeam-deque 0.8.3", - "crossbeam-epoch 0.9.15", - "crossbeam-queue 0.3.8", - "crossbeam-utils 0.8.16", + "crossbeam-channel 0.5.11", + "crossbeam-deque 0.8.5", + "crossbeam-epoch 0.9.18", + "crossbeam-queue 0.3.11", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1677,12 +1648,11 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.8" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.16", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1698,13 +1668,12 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch 0.9.15", - "crossbeam-utils 0.8.16", + "crossbeam-epoch 0.9.18", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1713,26 +1682,22 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ - "autocfg 1.1.0", + "autocfg", "cfg-if 0.1.10", "crossbeam-utils 0.7.2", "lazy_static", "maybe-uninit", - "memoffset 0.5.6", + "memoffset", "scopeguard", ] [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg 1.1.0", - "cfg-if 1.0.0", - "crossbeam-utils 0.8.16", - "memoffset 0.9.0", - "scopeguard", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1748,12 +1713,11 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.8" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.16", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1762,19 +1726,16 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg 1.1.0", + "autocfg", "cfg-if 0.1.10", "lazy_static", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if 1.0.0", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crunchy" @@ -1788,7 +1749,7 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ - "generic-array 0.14.7", + "generic-array", "rand_core 0.6.4", "subtle", "zeroize", @@ -1800,7 +1761,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ - "generic-array 0.14.7", + "generic-array", "rand_core 0.6.4", "subtle", "zeroize", @@ -1812,7 +1773,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.7", + "generic-array", "rand_core 0.6.4", "typenum", ] @@ -1823,28 +1784,18 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.7", - "subtle", -] - -[[package]] -name = "crypto-mac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" -dependencies = [ - "generic-array 0.14.7", + "generic-array", "subtle", ] [[package]] name = "cs_derive" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#1588de7669b016df3f81f7139a1a4b131840e48b" +source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#93b5e0f0dbff0a9b606d9025e207c8405c141bd9" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -1854,37 +1805,58 @@ version = "0.1.0" source = "git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3#ed8ab8984cae05d00d9d62196753c8d40df47c7d" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "serde", "syn 1.0.109", ] [[package]] name = "ctr" -version = "0.6.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.2.5", + "cipher", ] [[package]] -name = "ctr" -version = "0.9.2" +name = "ctrlc" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b" dependencies = [ - "cipher 0.4.4", + "nix", + "windows-sys 0.52.0", ] [[package]] -name = "ctrlc" -version = "3.4.1" +name = "curl" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e95fbd621905b854affdc67943b043a0fbb6ed7385fd5a25650d19a8a6cfdf" +checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" dependencies = [ - "nix", + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2 0.4.10", + "winapi", +] + +[[package]] +name = "curl-sys" +version = "0.4.71+curl-8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7b12a7ab780395666cb576203dc3ed6e01513754939a600b85196ccf5356bc5" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", "windows-sys 0.48.0", ] @@ -1911,9 +1883,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -1934,8 +1906,8 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "strsim 0.10.0", "syn 1.0.109", ] @@ -1947,7 +1919,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ "darling_core", - "quote 1.0.33", + "quote 1.0.35", "syn 1.0.109", ] @@ -1977,7 +1949,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ "serde", - "uuid 1.6.1", + "uuid 1.7.0", ] [[package]] @@ -2003,9 +1975,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", "serde", @@ -2017,8 +1989,8 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -2029,8 +2001,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case 0.4.0", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "rustc_version", "syn 1.0.109", ] @@ -2041,22 +2013,13 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - [[package]] name = "digest" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.7", + "generic-array", ] [[package]] @@ -2071,22 +2034,13 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - [[package]] name = "dirs" version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ - "dirs-sys 0.4.1", + "dirs-sys", ] [[package]] @@ -2099,17 +2053,6 @@ dependencies = [ "dirs-sys-next", ] -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi 0.3.9", -] - [[package]] name = "dirs-sys" version = "0.4.1" @@ -2130,14 +2073,14 @@ checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", "redox_users", - "winapi 0.3.9", + "winapi", ] [[package]] -name = "dotenv" -version = "0.15.0" +name = "dotenvy" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "dtoa" @@ -2222,7 +2165,7 @@ dependencies = [ "der 0.6.1", "digest 0.10.7", "ff 0.12.1", - "generic-array 0.14.7", + "generic-array", "group 0.12.1", "pkcs8 0.9.0", "rand_core 0.6.4", @@ -2241,7 +2184,7 @@ dependencies = [ "crypto-bigint 0.5.5", "digest 0.10.7", "ff 0.13.0", - "generic-array 0.14.7", + "generic-array", "group 0.13.0", "pkcs8 0.10.2", "rand_core 0.6.4", @@ -2252,9 +2195,9 @@ dependencies = [ [[package]] name = "elsa" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714f766f3556b44e7e4776ad133fcc3445a489517c25c704ace411bb14790194" +checksum = "d98e71ae4df57d214182a2e5cb90230c0192c6ddfcaa05c36453d46a54713e10" dependencies = [ "stable_deref_trait", ] @@ -2283,10 +2226,10 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" dependencies = [ - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "hex", - "k256 0.13.2", + "k256 0.13.3", "log", "rand 0.8.5", "rlp", @@ -2295,6 +2238,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "env_filter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +dependencies = [ + "log", + "regex", +] + [[package]] name = "env_logger" version = "0.9.3" @@ -2310,9 +2263,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "humantime", "is-terminal", @@ -2321,6 +2274,19 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e7cf40684ae96ade6232ed84582f40ce0a66efcd43a5117aef610534f8e0b8" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + [[package]] name = "envy" version = "0.4.2" @@ -2341,17 +2307,17 @@ name = "era_test_node" version = "0.1.0-alpha.14" dependencies = [ "anyhow", - "bigdecimal", + "bigdecimal 0.2.2", "chrono", - "clap 4.4.10", + "clap 4.4.18", "colored", "ethabi 16.0.0", "ethers", "eyre", - "futures 0.3.29", + "futures 0.3.30", "hex", "httptest", - "indexmap 2.1.0", + "indexmap 2.2.2", "itertools 0.10.5", "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", "jsonrpc-core-client", @@ -2401,20 +2367,31 @@ dependencies = [ "version_check", ] +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if 1.0.0", + "home", + "windows-sys 0.48.0", +] + [[package]] name = "eth-keystore" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" dependencies = [ - "aes 0.8.3", - "ctr 0.9.2", + "aes", + "ctr", "digest 0.10.7", "hex", - "hmac 0.12.1", + "hmac", "pbkdf2 0.11.0", "rand 0.8.5", - "scrypt 0.10.0", + "scrypt", "serde", "serde_json", "sha2 0.10.8", @@ -2515,9 +2492,9 @@ dependencies = [ [[package]] name = "ethers" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5344eea9b20effb5efeaad29418215c4d27017639fd1f908260f59cbbd226e" +checksum = "6c7cd562832e2ff584fa844cd2f6e5d4f35bbe11b28c7c9b8df957b2e1d0c701" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -2531,9 +2508,9 @@ dependencies = [ [[package]] name = "ethers-addressbook" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c405f24ea3a517899ba7985385c43dc4a7eb1209af3b1e0a1a32d7dcc7f8d09" +checksum = "35dc9a249c066d17e8947ff52a4116406163cf92c7f0763cb8c001760b26403f" dependencies = [ "ethers-core", "once_cell", @@ -2543,9 +2520,9 @@ dependencies = [ [[package]] name = "ethers-contract" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0111ead599d17a7bff6985fd5756f39ca7033edc79a31b23026a8d5d64fa95cd" +checksum = "43304317c7f776876e47f2f637859f6d0701c1ec7930a150f169d5fbe7d76f5a" dependencies = [ "const-hex", "ethers-contract-abigen", @@ -2562,9 +2539,9 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51258120c6b47ea9d9bec0d90f9e8af71c977fbefbef8213c91bfed385fe45eb" +checksum = "f9f96502317bf34f6d71a3e3d270defaa9485d754d789e15a8e04a84161c95eb" dependencies = [ "Inflector", "const-hex", @@ -2573,49 +2550,49 @@ dependencies = [ "ethers-etherscan", "eyre", "prettyplease", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "regex", "reqwest", "serde", "serde_json", - "syn 2.0.39", - "toml 0.8.8", + "syn 2.0.48", + "toml 0.8.2", "walkdir", ] [[package]] name = "ethers-contract-derive" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936e7a0f1197cee2b62dc89f63eff3201dbf87c283ff7e18d86d38f83b845483" +checksum = "452ff6b0a64507ce8d67ffd48b1da3b42f03680dcf5382244e9c93822cbbf5de" dependencies = [ "Inflector", "const-hex", "ethers-contract-abigen", "ethers-core", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "serde_json", - "syn 2.0.39", + "syn 2.0.48", ] [[package]] name = "ethers-core" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f03e0bdc216eeb9e355b90cf610ef6c5bb8aca631f97b5ae9980ce34ea7878d" +checksum = "aab3cef6cc1c9fd7f787043c81ad3052eff2b96a3878ef1526aa446311bdbfc9" dependencies = [ "arrayvec 0.7.4", - "bytes 1.5.0", + "bytes", "cargo_metadata 0.18.1", "chrono", "const-hex", "elliptic-curve 0.13.8", "ethabi 18.0.0", - "generic-array 0.14.7", - "k256 0.13.2", - "num_enum 0.7.1", + "generic-array", + "k256 0.13.3", + "num_enum 0.7.2", "once_cell", "open-fastrlp", "rand 0.8.5", @@ -2623,7 +2600,7 @@ dependencies = [ "serde", "serde_json", "strum 0.25.0", - "syn 2.0.39", + "syn 2.0.48", "tempfile", "thiserror", "tiny-keccak 2.0.2", @@ -2632,9 +2609,9 @@ dependencies = [ [[package]] name = "ethers-etherscan" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abbac2c890bdbe0f1b8e549a53b00e2c4c1de86bb077c1094d1f38cdf9381a56" +checksum = "16d45b981f5fa769e1d0343ebc2a44cfa88c9bc312eb681b676318b40cef6fb1" dependencies = [ "chrono", "ethers-core", @@ -2648,9 +2625,9 @@ dependencies = [ [[package]] name = "ethers-middleware" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681ece6eb1d10f7cf4f873059a77c04ff1de4f35c63dd7bccde8f438374fcb93" +checksum = "145211f34342487ef83a597c1e69f0d3e01512217a7c72cc8a25931854c7dca0" dependencies = [ "async-trait", "auto_impl", @@ -2675,14 +2652,14 @@ dependencies = [ [[package]] name = "ethers-providers" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25d6c0c9455d93d4990c06e049abf9b30daf148cf461ee939c11d88907c60816" +checksum = "fb6b15393996e3b8a78ef1332d6483c11d839042c17be58decc92fa8b1c3508a" dependencies = [ "async-trait", "auto_impl", - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "const-hex", "enr", "ethers-core", @@ -2712,9 +2689,9 @@ dependencies = [ [[package]] name = "ethers-signers" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb1b714e227bbd2d8c53528adb580b203009728b17d0d0e4119353aa9bc5532" +checksum = "b3b125a103b56aef008af5d5fb48191984aa326b50bfd2557d231dc499833de3" dependencies = [ "async-trait", "coins-bip32", @@ -2731,13 +2708,13 @@ dependencies = [ [[package]] name = "ethers-solc" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64f710586d147864cff66540a6d64518b9ff37d73ef827fee430538265b595f" +checksum = "d21df08582e0a43005018a858cc9b465c5fff9cf4056651be64f844e57d1f55f" dependencies = [ "cfg-if 1.0.0", "const-hex", - "dirs 5.0.1", + "dirs", "dunce", "ethers-core", "glob", @@ -2768,28 +2745,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] -name = "eyre" -version = "0.6.9" +name = "event-listener" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f656be11ddf91bd709454d15d5bd896fbaf4cc3314e69349e4d1569f5b46cd" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ - "indenter", - "once_cell", + "concurrent-queue", + "parking", + "pin-project-lite", ] [[package]] -name = "fake-simd" -version = "0.1.2" +name = "event-listener-strategy" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.3", + "pin-project-lite", +] [[package]] -name = "fastrand" -version = "1.9.0" +name = "eyre" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" dependencies = [ - "instant", + "indenter", + "once_cell", ] [[package]] @@ -2840,17 +2823,17 @@ dependencies = [ "num-bigint 0.4.4", "num-integer", "num-traits", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "serde", "syn 1.0.109", ] [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" [[package]] name = "findshlibs" @@ -2861,7 +2844,7 @@ dependencies = [ "cc", "lazy_static", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2916,6 +2899,17 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "futures-core", + "futures-sink", + "spin 0.9.8", +] + [[package]] name = "fnv" version = "1.0.7" @@ -2979,7 +2973,7 @@ dependencies = [ [[package]] name = "franklin-crypto" version = "0.0.5" -source = "git+https://github.com/matter-labs/franklin-crypto?branch=snark_wrapper#a9e29acd73245bd3b670b62b4d481ece06d43803" +source = "git+https://github.com/matter-labs/franklin-crypto?branch=snark_wrapper#2546c63b91b59bdb0ad342d26f03fb57477550b2" dependencies = [ "arr_macro", "bellman_ce 0.3.2 (git+https://github.com/matter-labs/bellman?branch=snark-wrapper)", @@ -3015,7 +3009,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3024,22 +3018,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags 1.3.2", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - [[package]] name = "funty" version = "1.1.0" @@ -3060,9 +3038,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -3075,9 +3053,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -3085,15 +3063,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -3103,20 +3081,20 @@ dependencies = [ [[package]] name = "futures-intrusive" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.11.2", + "parking_lot 0.12.1", ] [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-locks" @@ -3130,26 +3108,26 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" @@ -3163,9 +3141,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures 0.1.31", "futures-channel", @@ -3189,15 +3167,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -3222,9 +3191,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if 1.0.0", "libc", @@ -3237,7 +3206,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ - "opaque-debug 0.3.0", + "opaque-debug", "polyval", ] @@ -3260,17 +3229,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" dependencies = [ "aho-corasick", - "bstr 1.8.0", + "bstr 1.9.0", "log", - "regex-automata 0.4.3", + "regex-automata 0.4.5", "regex-syntax 0.8.2", ] [[package]] name = "gloo-net" -version = "0.3.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66b4e3c7d9ed8d315fd6b97c8b1f74a7c6ecbbc2320e65ae7ed38b7068cc620" +checksum = "43aaa242d1239a8822c15c645f02166398da4f8b5c4bae795c1f5b44e9eee173" dependencies = [ "futures-channel", "futures-core", @@ -3301,9 +3270,9 @@ dependencies = [ [[package]] name = "gloo-utils" -version = "0.1.7" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" dependencies = [ "js-sys", "serde", @@ -3319,7 +3288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1087f1fbd2dd3f58c17c7574ddd99cd61cbbbc2c4dc81114b8687209b196cb" dependencies = [ "async-trait", - "base64 0.21.5", + "base64 0.21.7", "google-cloud-metadata", "google-cloud-token", "home", @@ -3353,8 +3322,8 @@ checksum = "ac04b29849ebdeb9fb008988cc1c4d1f0c9d121b4c7f1ddeb8061df124580e93" dependencies = [ "async-stream", "async-trait", - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "futures-util", "google-cloud-auth", "google-cloud-metadata", @@ -3365,7 +3334,7 @@ dependencies = [ "pkcs8 0.10.2", "regex", "reqwest", - "ring 0.17.6", + "ring 0.17.7", "serde", "serde_json", "sha2 0.10.8", @@ -3392,7 +3361,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19775995ee20209163239355bc3ad2f33f83da35d9ef72dea26e5af753552c87" dependencies = [ "dashmap", - "futures 0.3.29", + "futures 0.3.30", "futures-timer", "no-std-compat", "nonzero_ext", @@ -3426,17 +3395,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.22" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" dependencies = [ - "bytes 1.5.0", + "bytes", "fnv", "futures-core", "futures-sink", "futures-util", "http", - "indexmap 2.1.0", + "indexmap 2.2.2", "slab", "tokio", "tokio-util 0.7.10", @@ -3445,9 +3414,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.5.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +checksum = "ab283476b99e66691dee3f1640fea91487a8d81f50fb5ecc75538f8f8879a1e4" dependencies = [ "log", "pest", @@ -3459,26 +3428,20 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ "ahash 0.7.7", ] -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - [[package]] name = "hashbrown" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.7", ] [[package]] @@ -3486,6 +3449,10 @@ name = "hashbrown" version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash 0.8.7", + "allocator-api2", +] [[package]] name = "hashers" @@ -3498,11 +3465,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.7.0" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.11.2", + "hashbrown 0.14.3", ] [[package]] @@ -3521,8 +3488,8 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "headers-core", "http", "httpdate", @@ -3568,9 +3535,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" [[package]] name = "hex" @@ -3580,21 +3547,11 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hkdf" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" -dependencies = [ - "hmac 0.12.1", -] - -[[package]] -name = "hmac" -version = "0.10.1" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "crypto-mac 0.10.1", - "digest 0.9.0", + "hmac", ] [[package]] @@ -3608,11 +3565,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3623,7 +3580,7 @@ checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" dependencies = [ "libc", "match_cfg", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3632,18 +3589,18 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ - "bytes 1.5.0", + "bytes", "fnv", "itoa", ] [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.5.0", + "bytes", "http", "pin-project-lite", ] @@ -3673,10 +3630,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8b44a11846bda8c9fe9194f9924db7132c34635c7ce020f180f6c5d46d2308f" dependencies = [ "bstr 0.2.17", - "bytes 1.5.0", - "crossbeam-channel 0.5.8", + "bytes", + "crossbeam-channel 0.5.11", "form_urlencoded", - "futures 0.3.29", + "futures 0.3.30", "http", "hyper", "log", @@ -3696,11 +3653,11 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ - "bytes 1.5.0", + "bytes", "futures-channel", "futures-core", "futures-util", @@ -3711,7 +3668,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.5", "tokio", "tower-service", "tracing", @@ -3728,10 +3685,10 @@ dependencies = [ "http", "hyper", "log", - "rustls", - "rustls-native-certs", + "rustls 0.21.10", + "rustls-native-certs 0.6.3", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", ] [[package]] @@ -3740,7 +3697,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.5.0", + "bytes", "hyper", "native-tls", "tokio", @@ -3749,9 +3706,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3861,8 +3818,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -3878,15 +3835,15 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ - "autocfg 1.1.0", + "autocfg", "hashbrown 0.12.3", ] [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -3898,7 +3855,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "generic-array 0.14.7", + "generic-array", ] [[package]] @@ -3910,15 +3867,6 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - [[package]] name = "ipnet" version = "2.9.0" @@ -3927,9 +3875,12 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "ipnetwork" -version = "0.17.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c3eaab3ac0ede60ffa41add21970a7df7d91772c03383aac6c2c3d53cc716b" +checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" +dependencies = [ + "serde", +] [[package]] name = "iri-string" @@ -3943,13 +3894,13 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi 0.3.5", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3970,11 +3921,20 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" @@ -3987,9 +3947,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" dependencies = [ "wasm-bindgen", ] @@ -4000,7 +3960,7 @@ version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ "derive_more", - "futures 0.3.29", + "futures 0.3.30", "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", "jsonrpc-pubsub", "log", @@ -4014,7 +3974,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "futures-executor", "futures-util", "log", @@ -4028,7 +3988,7 @@ name = "jsonrpc-core" version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "futures-executor", "futures-util", "log", @@ -4042,7 +4002,7 @@ name = "jsonrpc-core-client" version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "jsonrpc-client-transports", ] @@ -4052,8 +4012,8 @@ version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ "proc-macro-crate 0.1.5", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -4062,7 +4022,7 @@ name = "jsonrpc-http-server" version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "hyper", "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", "jsonrpc-server-utils", @@ -4077,7 +4037,7 @@ name = "jsonrpc-pubsub" version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", "lazy_static", "log", @@ -4091,8 +4051,8 @@ name = "jsonrpc-server-utils" version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ - "bytes 1.5.0", - "futures 0.3.29", + "bytes", + "futures 0.3.30", "globset", "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", "lazy_static", @@ -4103,25 +4063,11 @@ dependencies = [ "unicase", ] -[[package]] -name = "jsonrpc-ws-server" -version = "18.0.0" -source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" -dependencies = [ - "futures 0.3.29", - "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", - "jsonrpc-server-utils", - "log", - "parity-ws", - "parking_lot 0.11.2", - "slab", -] - [[package]] name = "jsonrpsee" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5f3783308bddc49d0218307f66a09330c106fbd792c58bac5c8dc294fdd0f98" +checksum = "9579d0ca9fb30da026bac2f0f7d9576ec93489aeb7cd4971dd5b4617d82c79b2" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4131,14 +4077,15 @@ dependencies = [ "jsonrpsee-types", "jsonrpsee-wasm-client", "jsonrpsee-ws-client", + "tokio", "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc5630e4fa0096f00ec7b44d520701fda4504170cb85e22dca603ae5d7ad0d7" +checksum = "3f9f9ed46590a8d5681975f126e22531698211b926129a40a2db47cbca429220" dependencies = [ "futures-channel", "futures-util", @@ -4146,21 +4093,23 @@ dependencies = [ "http", "jsonrpsee-core", "pin-project", - "rustls-native-certs", + "rustls-native-certs 0.7.0", + "rustls-pki-types", "soketto", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.25.0", "tokio-util 0.7.10", "tracing", - "webpki-roots 0.24.0", + "url", + "webpki-roots 0.26.1", ] [[package]] name = "jsonrpsee-core" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaa4c4d5fb801dcc316d81f76422db259809037a86b3194ae538dd026b05ed7" +checksum = "776d009e2f591b78c038e0d053a796f94575d66ca4e77dd84bfc5e81419e436c" dependencies = [ "anyhow", "async-lock", @@ -4168,15 +4117,14 @@ dependencies = [ "beef", "futures-timer", "futures-util", - "globset", "hyper", "jsonrpsee-types", "parking_lot 0.12.1", + "pin-project", "rand 0.8.5", "rustc-hash", "serde", "serde_json", - "soketto", "thiserror", "tokio", "tokio-stream", @@ -4186,9 +4134,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa7165efcbfbc951d180162ff28fe91b657ed81925e37a35e4a396ce12109f96" +checksum = "78b7de9f3219d95985eb77fd03194d7c1b56c19bce1abfcc9d07462574b15572" dependencies = [ "async-trait", "hyper", @@ -4201,34 +4149,39 @@ dependencies = [ "tokio", "tower", "tracing", + "url", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dc12b1d4f16a86e8c522823c4fab219c88c03eb7c924ec0501a64bf12e058b" +checksum = "d94b7505034e2737e688e1153bf81e6f93ad296695c43958d6da2e4321f0a990" dependencies = [ "heck 0.4.1", - "proc-macro-crate 1.3.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro-crate 2.0.2", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] [[package]] name = "jsonrpsee-server" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e79d78cfd5abd8394da10753723093c3ff64391602941c9c4b1d80a3414fd53" +checksum = "5cc7c6d1a2c58f6135810284a390d9f823d0f508db74cd914d8237802de80f98" dependencies = [ "futures-util", + "http", "hyper", "jsonrpsee-core", "jsonrpsee-types", + "pin-project", + "route-recognizer", "serde", "serde_json", "soketto", + "thiserror", "tokio", "tokio-stream", "tokio-util 0.7.10", @@ -4238,23 +4191,22 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00aa7cc87bc42e04e26c8ac3e7186142f7fd2949c763d9b6a7e64a69672d8fb2" +checksum = "3266dfb045c9174b24c77c2dfe0084914bb23a6b2597d70c9dc6018392e1cd1b" dependencies = [ "anyhow", "beef", "serde", "serde_json", "thiserror", - "tracing", ] [[package]] name = "jsonrpsee-wasm-client" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe953c2801356f214d3f4051f786b3d11134512a46763ee8c39a9e3fa2cc1c0" +checksum = "30f36d27503d0efc0355c1630b74ecfb367050847bf7241a0ed75fab6dfa96c0" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4263,14 +4215,15 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c71b2597ec1c958c6d5bc94bb61b44d74eb28e69dc421731ab0035706f13882" +checksum = "073c077471e89c4b511fa88b3df9a0f0abdf4a0a2e6683dd2ab36893af87bb2d" dependencies = [ "http", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", + "url", ] [[package]] @@ -4279,7 +4232,7 @@ version = "8.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "pem", "ring 0.16.20", "serde", @@ -4301,9 +4254,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" dependencies = [ "cfg-if 1.0.0", "ecdsa 0.16.9", @@ -4315,23 +4268,13 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "lalrpop" version = "0.20.0" @@ -4371,6 +4314,9 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] [[package]] name = "lazycell" @@ -4386,18 +4332,18 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.150" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libloading" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" dependencies = [ "cfg-if 1.0.0", - "winapi 0.3.9", + "windows-sys 0.48.0", ] [[package]] @@ -4412,7 +4358,7 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "libc", "redox_syscall 0.4.1", ] @@ -4431,42 +4377,54 @@ dependencies = [ "libz-sys", ] +[[package]] +name = "libsqlite3-sys" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" dependencies = [ "cc", + "libc", "pkg-config", "vcpkg", ] [[package]] name = "linkme" -version = "0.3.17" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ed2ee9464ff9707af8e9ad834cffa4802f072caad90639c583dd3c62e6e608" +checksum = "8b53ad6a33de58864705954edb5ad5d571a010f9e296865ed43dc72a5621b430" dependencies = [ "linkme-impl", ] [[package]] name = "linkme-impl" -version = "0.3.17" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba125974b109d512fccbc6c0244e7580143e460895dfd6ea7f8bbb692fd94396" +checksum = "04e542a18c94a9b6fcc7adb090fa3ba6b79ee220a16404f325672729f32a66ff" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "local-channel" @@ -4491,7 +4449,7 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ - "autocfg 1.1.0", + "autocfg", "scopeguard", ] @@ -4518,10 +4476,10 @@ checksum = "dc487311295e0002e452025d6b580b77bb17286de87b57138f3b5db711cded68" dependencies = [ "beef", "fnv", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "regex-syntax 0.6.29", - "syn 2.0.39", + "syn 2.0.48", ] [[package]] @@ -4535,9 +4493,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7" +checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22" [[package]] name = "mach" @@ -4550,9 +4508,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -4602,9 +4560,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memoffset" @@ -4612,16 +4570,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" dependencies = [ - "autocfg 1.1.0", -] - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg 1.1.0", + "autocfg", ] [[package]] @@ -4630,18 +4579,18 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.7", "metrics-macros", "portable-atomic", ] [[package]] name = "metrics-exporter-prometheus" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a4964177ddfdab1e3a2b37aec7cf320e14169abb0ed73999f558136409178d5" +checksum = "1d4fa7ce7c4862db464a37b0b31d89bca874562f034bd7993895572783d02950" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "hyper", "indexmap 1.9.3", "ipnet", @@ -4655,13 +4604,13 @@ dependencies = [ [[package]] name = "metrics-macros" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df" +checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -4670,8 +4619,8 @@ version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4de2ed6e491ed114b40b732e4d1659a9d53992ebd87490c44a6ffe23739d973e" dependencies = [ - "crossbeam-epoch 0.9.15", - "crossbeam-utils 0.8.16", + "crossbeam-epoch 0.9.18", + "crossbeam-utils 0.8.19", "hashbrown 0.13.1", "metrics", "num_cpus", @@ -4697,9 +4646,9 @@ version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -4720,12 +4669,12 @@ dependencies = [ [[package]] name = "mini-moka" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e0b72e7c9042467008b10279fc732326bd605459ae03bda88825909dd19b56" +checksum = "c325dfab65f261f386debee8b0969da215b3fa0037e74c8a1234db7ba986d803" dependencies = [ - "crossbeam-channel 0.5.8", - "crossbeam-utils 0.8.16", + "crossbeam-channel 0.5.11", + "crossbeam-utils 0.8.19", "dashmap", "skeptic", "smallvec", @@ -4741,37 +4690,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow", - "net2", - "slab", - "winapi 0.2.8", -] - -[[package]] -name = "mio" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "log", @@ -4779,30 +4709,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "mio-extras" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" -dependencies = [ - "lazycell", - "log", - "mio 0.6.23", - "slab", -] - -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - [[package]] name = "multimap" version = "0.8.3" @@ -4812,7 +4718,7 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multivm" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "hex", @@ -4824,6 +4730,10 @@ dependencies = [ "zk_evm 1.3.1", "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", "zk_evm 1.4.0", + "zk_evm 1.4.1", + "zkevm_test_harness 1.3.3", + "zkevm_test_harness 1.4.0", + "zkevm_test_harness 1.4.1", "zksync_contracts", "zksync_state", "zksync_system_constants", @@ -4857,7 +4767,7 @@ checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac" dependencies = [ "cfg-if 0.1.10", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4872,7 +4782,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "cfg-if 1.0.0", "libc", ] @@ -4912,7 +4822,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4949,7 +4859,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-integer", "num-traits", "serde", @@ -4961,12 +4871,29 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-integer", "num-traits", "serde", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + [[package]] name = "num-complex" version = "0.3.1" @@ -4984,8 +4911,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", + "serde", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-derive" version = "0.2.5" @@ -5003,8 +4937,8 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -5014,7 +4948,7 @@ version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-traits", ] @@ -5024,7 +4958,7 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-integer", "num-traits", ] @@ -5045,7 +4979,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-bigint 0.3.3", "num-integer", "num-traits", @@ -5058,10 +4992,11 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-bigint 0.4.4", "num-integer", "num-traits", + "serde", ] [[package]] @@ -5070,7 +5005,7 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ - "autocfg 1.1.0", + "autocfg", "libm", ] @@ -5080,7 +5015,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi 0.3.5", "libc", ] @@ -5095,11 +5030,11 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" dependencies = [ - "num_enum_derive 0.7.1", + "num_enum_derive 0.7.2", ] [[package]] @@ -5109,21 +5044,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ "proc-macro-crate 1.3.1", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "num_enum_derive" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ - "proc-macro-crate 2.0.0", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro-crate 2.0.2", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -5137,24 +5072,18 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "opaque-debug" -version = "0.2.3" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -5170,7 +5099,7 @@ checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ "arrayvec 0.7.4", "auto_impl", - "bytes 1.5.0", + "bytes", "ethereum-types 0.14.1", "open-fastrlp-derive", ] @@ -5181,19 +5110,19 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" dependencies = [ - "bytes 1.5.0", - "proc-macro2 1.0.70", - "quote 1.0.33", + "bytes", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] [[package]] name = "openssl" -version = "0.10.60" +version = "0.10.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" +checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "cfg-if 1.0.0", "foreign-types", "libc", @@ -5208,9 +5137,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -5221,18 +5150,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.1.6+3.1.4" +version = "300.2.2+3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085" +checksum = "8bbfad0063610ac26ee79f7484739e2b07555a75c42453b89263830b5c8103bc" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.96" +version = "0.9.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" +checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" dependencies = [ "cc", "libc", @@ -5264,7 +5193,7 @@ checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" dependencies = [ "log", "serde", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5320,30 +5249,6 @@ dependencies = [ "serde", ] -[[package]] -name = "parity-crypto" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b92ea9ddac0d6e1db7c49991e7d397d34a9fd814b4c93cda53788e8eef94e35" -dependencies = [ - "aes 0.6.0", - "aes-ctr", - "block-modes", - "digest 0.9.0", - "ethereum-types 0.12.1", - "hmac 0.10.1", - "lazy_static", - "pbkdf2 0.7.5", - "ripemd160", - "rustc-hex", - "scrypt 0.5.0", - "secp256k1 0.20.3", - "sha2 0.9.9", - "subtle", - "tiny-keccak 2.0.2", - "zeroize", -] - [[package]] name = "parity-scale-codec" version = "2.3.1" @@ -5379,8 +5284,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" dependencies = [ "proc-macro-crate 1.3.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -5390,29 +5295,17 @@ version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" dependencies = [ - "proc-macro-crate 2.0.0", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro-crate 2.0.2", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] [[package]] -name = "parity-ws" -version = "0.11.1" +name = "parking" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5983d3929ad50f12c3eb9a6743f19d691866ecd44da74c0a3308c3f8a56df0c6" -dependencies = [ - "byteorder", - "bytes 0.4.12", - "httparse", - "log", - "mio 0.6.23", - "mio-extras", - "rand 0.7.3", - "sha-1 0.8.2", - "slab", - "url", -] +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" @@ -5446,7 +5339,7 @@ dependencies = [ "libc", "redox_syscall 0.2.16", "smallvec", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5462,16 +5355,6 @@ dependencies = [ "windows-targets 0.48.5", ] -[[package]] -name = "password-hash" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54986aa4bfc9b98c6a5f40184223658d187159d7b3c6af33f2b2aa25ae1db0fa" -dependencies = [ - "base64ct", - "rand_core 0.6.4", -] - [[package]] name = "password-hash" version = "0.4.2" @@ -5495,28 +5378,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" -[[package]] -name = "pbkdf2" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b8c0d71734018084da0c0354193a5edfb81b20d2d57a92c5b154aefc554a4a" -dependencies = [ - "crypto-mac 0.10.1", -] - -[[package]] -name = "pbkdf2" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf916dd32dd26297907890d99dc2740e33f6bd9073965af4ccff2967962f5508" -dependencies = [ - "base64ct", - "crypto-mac 0.10.1", - "hmac 0.10.1", - "password-hash 0.1.4", - "sha2 0.9.9", -] - [[package]] name = "pbkdf2" version = "0.11.0" @@ -5524,8 +5385,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ "digest 0.10.7", - "hmac 0.12.1", - "password-hash 0.4.2", + "hmac", + "password-hash", "sha2 0.10.8", ] @@ -5536,7 +5397,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", - "hmac 0.12.1", + "hmac", ] [[package]] @@ -5571,9 +5432,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.5" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" +checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" dependencies = [ "memchr", "thiserror", @@ -5582,9 +5443,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.5" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2" +checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" dependencies = [ "pest", "pest_generator", @@ -5592,22 +5453,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.5" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" +checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "pest_meta" -version = "2.7.5" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" +checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" dependencies = [ "once_cell", "pest", @@ -5621,7 +5482,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.1.0", + "indexmap 2.2.2", ] [[package]] @@ -5630,7 +5491,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "rustc_version", ] @@ -5662,9 +5523,9 @@ checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ "phf_generator", "phf_shared 0.11.2", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -5687,22 +5548,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -5717,6 +5578,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der 0.7.8", + "pkcs8 0.10.2", + "spki 0.7.3", +] + [[package]] name = "pkcs8" version = "0.9.0" @@ -5739,15 +5611,15 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" [[package]] name = "platforms" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" +checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" [[package]] name = "poly1305" @@ -5756,7 +5628,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug", "universal-hash", ] @@ -5768,15 +5640,15 @@ checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug", "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" [[package]] name = "powerfmt" @@ -5798,12 +5670,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "prettyplease" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ - "proc-macro2 1.0.70", - "syn 2.0.39", + "proc-macro2 1.0.78", + "syn 2.0.48", ] [[package]] @@ -5854,11 +5726,12 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" dependencies = [ - "toml_edit 0.20.7", + "toml_datetime", + "toml_edit 0.20.2", ] [[package]] @@ -5868,8 +5741,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", "version_check", ] @@ -5880,8 +5753,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "version_check", ] @@ -5902,9 +5775,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] @@ -5927,15 +5800,15 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "prometheus_exporter" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "metrics", @@ -5951,12 +5824,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "lazy_static", "num-traits", "rand 0.8.5", "rand_chacha 0.3.1", - "rand_xorshift 0.3.0", + "rand_xorshift", "regex-syntax 0.8.2", "unarray", ] @@ -5967,7 +5840,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" dependencies = [ - "bytes 1.5.0", + "bytes", "prost-derive", ] @@ -5977,7 +5850,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" dependencies = [ - "bytes 1.5.0", + "bytes", "heck 0.4.1", "itertools 0.11.0", "log", @@ -5988,7 +5861,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.39", + "syn 2.0.48", "tempfile", "which", ] @@ -6001,9 +5874,9 @@ checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" dependencies = [ "anyhow", "itertools 0.11.0", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -6012,7 +5885,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "057237efdb71cf4b3f9396302a3d6599a92fa94063ba537b66130980ea9909f3" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "logos", "miette", "once_cell", @@ -6037,7 +5910,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00bb76c5f6221de491fe2c8f39b106330bbd9762c6511119c07940e10eb9ff11" dependencies = [ - "bytes 1.5.0", + "bytes", "miette", "prost", "prost-reflect", @@ -6058,13 +5931,33 @@ dependencies = [ "thiserror", ] +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] + [[package]] name = "pulldown-cmark" -version = "0.9.3" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.2", "memchr", "unicase", ] @@ -6075,14 +5968,14 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8" dependencies = [ - "crossbeam-utils 0.8.16", + "crossbeam-utils 0.8.19", "libc", "mach", "once_cell", "raw-cpuid", "wasi 0.10.2+wasi-snapshot-preview1", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6091,14 +5984,14 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" dependencies = [ - "crossbeam-utils 0.8.16", + "crossbeam-utils 0.8.19", "libc", "mach2", "once_cell", "raw-cpuid", "wasi 0.11.0+wasi-snapshot-preview1", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6121,11 +6014,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ - "proc-macro2 1.0.70", + "proc-macro2 1.0.78", ] [[package]] @@ -6150,26 +6043,7 @@ dependencies = [ "libc", "rand_core 0.3.1", "rdrand", - "winapi 0.3.9", -] - -[[package]] -name = "rand" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -dependencies = [ - "autocfg 0.1.8", - "libc", - "rand_chacha 0.1.1", - "rand_core 0.4.2", - "rand_hc 0.1.0", - "rand_isaac", - "rand_jitter", - "rand_os", - "rand_pcg", - "rand_xorshift 0.1.1", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6182,7 +6056,7 @@ dependencies = [ "libc", "rand_chacha 0.2.2", "rand_core 0.5.1", - "rand_hc 0.2.0", + "rand_hc", ] [[package]] @@ -6196,16 +6070,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "rand_chacha" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -dependencies = [ - "autocfg 0.1.8", - "rand_core 0.3.1", -] - [[package]] name = "rand_chacha" version = "0.2.2" @@ -6256,16 +6120,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.11", -] - -[[package]] -name = "rand_hc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -dependencies = [ - "rand_core 0.3.1", + "getrandom 0.2.12", ] [[package]] @@ -6277,59 +6132,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_isaac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rand_jitter" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" -dependencies = [ - "libc", - "rand_core 0.4.2", - "winapi 0.3.9", -] - -[[package]] -name = "rand_os" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" -dependencies = [ - "cloudabi", - "fuchsia-cprng", - "libc", - "rand_core 0.4.2", - "rdrand", - "winapi 0.3.9", -] - -[[package]] -name = "rand_pcg" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" -dependencies = [ - "autocfg 0.1.8", - "rand_core 0.4.2", -] - -[[package]] -name = "rand_xorshift" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "rand_xorshift" version = "0.3.0" @@ -6359,9 +6161,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" dependencies = [ "either", "rayon-core", @@ -6369,12 +6171,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "crossbeam-deque 0.8.3", - "crossbeam-utils 0.8.16", + "crossbeam-deque 0.8.5", + "crossbeam-utils 0.8.19", ] [[package]] @@ -6410,20 +6212,20 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.12", "libredox", "thiserror", ] [[package]] name = "regex" -version = "1.10.2" +version = "1.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.3", + "regex-automata 0.4.5", "regex-syntax 0.8.2", ] @@ -6438,9 +6240,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" dependencies = [ "aho-corasick", "memchr", @@ -6471,17 +6273,26 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" dependencies = [ - "winapi 0.3.9", + "winapi", +] + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", ] [[package]] name = "reqwest" -version = "0.11.22" +version = "0.11.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" dependencies = [ - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "encoding_rs", "futures-core", "futures-util", @@ -6500,15 +6311,16 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls", - "rustls-pemfile", + "rustls 0.21.10", + "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.24.1", "tokio-util 0.7.10", "tower-service", "url", @@ -6516,14 +6328,14 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.25.3", + "webpki-roots 0.25.4", "winreg", ] [[package]] name = "rescue_poseidon" version = "0.4.1" -source = "git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2#c4a788471710bdb7aa0f59e8756b45ef93cdd2b2" +source = "git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2#2e5e8afb152adc326fcf776a71ad3735fa7f3186" dependencies = [ "addchain", "arrayvec 0.7.4", @@ -6569,7 +6381,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ "crypto-bigint 0.4.9", - "hmac 0.12.1", + "hmac", "zeroize", ] @@ -6579,7 +6391,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "hmac 0.12.1", + "hmac", "subtle", ] @@ -6595,17 +6407,17 @@ dependencies = [ "spin 0.5.2", "untrusted 0.7.1", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] name = "ring" -version = "0.17.6" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" dependencies = [ "cc", - "getrandom 0.2.11", + "getrandom 0.2.12", "libc", "spin 0.9.8", "untrusted 0.9.0", @@ -6622,14 +6434,32 @@ dependencies = [ ] [[package]] -name = "ripemd160" -version = "0.9.1" +name = "rkyv" +version = "0.7.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eca4ecc81b7f313189bf73ce724400a07da2a6dac19588b03c8bd76a2dcc251" +checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "opaque-debug 0.3.0", + "bitvec 1.0.1", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid 1.7.0", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", ] [[package]] @@ -6638,7 +6468,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ - "bytes 1.5.0", + "bytes", "rlp-derive", "rustc-hex", ] @@ -6649,8 +6479,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -6665,18 +6495,60 @@ dependencies = [ ] [[package]] -name = "rustc-demangle" -version = "0.1.23" +name = "route-recognizer" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] -name = "rustc-hash" -version = "1.1.0" +name = "rsa" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "signature 2.2.0", + "spki 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "rust_decimal" +version = "1.34.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "755392e1a2f77afd95580d3f0d0e94ac83eeeb7167552c9b5bca549e61a94d83" +dependencies = [ + "arrayvec 0.7.4", + "borsh", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] name = "rustc-hex" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -6693,29 +6565,43 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.25" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "errno", "libc", "linux-raw-sys", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "rustls" -version = "0.21.9" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring 0.17.6", - "rustls-webpki", + "ring 0.17.7", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +dependencies = [ + "log", + "ring 0.17.7", + "rustls-pki-types", + "rustls-webpki 0.102.2", + "subtle", + "zeroize", +] + [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -6723,7 +6609,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.0.0", + "rustls-pki-types", "schannel", "security-framework", ] @@ -6734,16 +6633,43 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4" +dependencies = [ + "base64 0.21.7", + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf" + [[package]] name = "rustls-webpki" version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.6", + "ring 0.17.7", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +dependencies = [ + "ring 0.17.7", + "rustls-pki-types", "untrusted 0.9.0", ] @@ -6755,18 +6681,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "salsa20" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399f290ffc409596022fce5ea5d4138184be4784f2b28c62c59f0d8389059a15" -dependencies = [ - "cipher 0.2.5", -] +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "salsa20" @@ -6774,7 +6691,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -6805,18 +6722,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" dependencies = [ "proc-macro-crate 1.3.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -6825,31 +6742,15 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scrypt" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da492dab03f925d977776a0b7233d7b934d6dc2b94faead48928e2e9bacedb9" -dependencies = [ - "base64 0.13.1", - "hmac 0.10.1", - "pbkdf2 0.6.0", - "rand 0.7.3", - "rand_core 0.5.1", - "salsa20 0.7.2", - "sha2 0.9.9", - "subtle", -] - [[package]] name = "scrypt" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" dependencies = [ - "hmac 0.12.1", + "hmac", "pbkdf2 0.11.0", - "salsa20 0.10.2", + "salsa20", "sha2 0.10.8", ] @@ -6859,10 +6760,16 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.6", + "ring 0.17.7", "untrusted 0.9.0", ] +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "sec1" version = "0.3.0" @@ -6871,7 +6778,7 @@ checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ "base16ct 0.1.1", "der 0.6.1", - "generic-array 0.14.7", + "generic-array", "pkcs8 0.9.0", "subtle", "zeroize", @@ -6885,38 +6792,19 @@ checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct 0.2.0", "der 0.7.8", - "generic-array 0.14.7", + "generic-array", "pkcs8 0.10.2", "subtle", "zeroize", ] -[[package]] -name = "secp256k1" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d03ceae636d0fed5bae6a7f4f664354c5f4fcedf6eef053fef17e49f837d0a" -dependencies = [ - "rand 0.6.5", - "secp256k1-sys 0.4.2", -] - [[package]] name = "secp256k1" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" dependencies = [ - "secp256k1-sys 0.8.1", -] - -[[package]] -name = "secp256k1-sys" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957da2573cde917463ece3570eab4a0b3f19de6f1646cde62e6fd3868f566036" -dependencies = [ - "cc", + "secp256k1-sys", ] [[package]] @@ -6953,9 +6841,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" dependencies = [ "serde", ] @@ -7077,7 +6965,7 @@ dependencies = [ "thiserror", "time", "url", - "uuid 1.6.1", + "uuid 1.7.0", ] [[package]] @@ -7088,9 +6976,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" [[package]] name = "serde" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] @@ -7107,20 +6995,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ "itoa", "ryu", @@ -7129,9 +7017,9 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335" +checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c" dependencies = [ "itoa", "serde", @@ -7139,9 +7027,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" dependencies = [ "serde", ] @@ -7176,23 +7064,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ "darling", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] -[[package]] -name = "sha-1" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - [[package]] name = "sha-1" version = "0.9.8" @@ -7203,18 +7079,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.7", + "opaque-debug", ] [[package]] @@ -7238,7 +7103,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -7271,7 +7136,7 @@ dependencies = [ "block-buffer 0.9.0", "digest 0.9.0", "keccak", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -7304,9 +7169,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" @@ -7337,6 +7202,12 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "simple_asn1" version = "0.6.2" @@ -7382,9 +7253,9 @@ dependencies = [ [[package]] name = "sketches-ddsketch" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a406c1882ed7f29cd5e248c9848a80e7cb6ae0fea82346d2746f2f941c07e1" +checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" [[package]] name = "slab" @@ -7392,14 +7263,14 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ - "autocfg 1.1.0", + "autocfg", ] [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" dependencies = [ "serde", ] @@ -7416,9 +7287,9 @@ dependencies = [ [[package]] name = "snow" -version = "0.9.4" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58021967fd0a5eeeb23b08df6cc244a4d4a5b4aec1d27c9e02fad1a58b4cd74e" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" dependencies = [ "aes-gcm", "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -7437,7 +7308,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -7457,13 +7328,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ "base64 0.13.1", - "bytes 1.5.0", - "futures 0.3.29", + "bytes", + "futures 0.3.30", "http", "httparse", "log", "rand 0.8.5", - "sha-1 0.9.8", + "sha-1", ] [[package]] @@ -7491,6 +7362,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "spki" @@ -7520,110 +7394,224 @@ checksum = "c85070f382340e8b23a75808e83573ddf65f9ad9143df9573ca37c1ed2ee956a" [[package]] name = "sqlformat" -version = "0.1.8" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" +checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" dependencies = [ - "itertools 0.10.5", + "itertools 0.12.1", "nom", "unicode_categories", ] [[package]] name = "sqlx" -version = "0.5.13" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551873805652ba0d912fec5bbb0f8b4cdd96baf8e2ebf5970e5671092966019b" +checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf" dependencies = [ "sqlx-core", "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", ] [[package]] name = "sqlx-core" -version = "0.5.13" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48c61941ccf5ddcada342cd59e3e5173b007c509e1e8e990dafc830294d9dc5" +checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" dependencies = [ - "ahash 0.7.7", + "ahash 0.8.7", "atoi", - "base64 0.13.1", - "bigdecimal", - "bitflags 1.3.2", + "bigdecimal 0.3.1", "byteorder", - "bytes 1.5.0", + "bytes", "chrono", "crc", - "crossbeam-queue 0.3.8", - "dirs 4.0.0", + "crossbeam-queue 0.3.11", + "dotenvy", "either", - "event-listener", + "event-listener 2.5.3", "futures-channel", "futures-core", "futures-intrusive", + "futures-io", "futures-util", "hashlink", "hex", - "hkdf", - "hmac 0.12.1", - "indexmap 1.9.3", + "indexmap 2.2.2", "ipnetwork", - "itoa", - "libc", "log", - "md-5", "memchr", - "num-bigint 0.3.3", + "native-tls", "once_cell", "paste", "percent-encoding", - "rand 0.8.5", + "rust_decimal", "serde", "serde_json", - "sha-1 0.10.1", "sha2 0.10.8", "smallvec", "sqlformat", - "sqlx-rt", - "stringprep", "thiserror", + "tokio", "tokio-stream", + "tracing", "url", - "whoami", ] [[package]] name = "sqlx-macros" -version = "0.5.13" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0fba2b0cae21fc00fe6046f8baa4c7fcb49e379f0f592b04696607f69ed2e1" +checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5" dependencies = [ - "dotenv", + "proc-macro2 1.0.78", + "quote 1.0.35", + "sqlx-core", + "sqlx-macros-core", + "syn 1.0.109", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841" +dependencies = [ + "atomic-write-file", + "dotenvy", "either", "heck 0.4.1", "hex", "once_cell", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "serde", "serde_json", "sha2 0.10.8", "sqlx-core", - "sqlx-rt", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", "syn 1.0.109", + "tempfile", + "tokio", "url", ] [[package]] -name = "sqlx-rt" -version = "0.5.13" +name = "sqlx-mysql" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db708cd3e459078f85f39f96a00960bd841f66ee2a669e90bf36907f5a79aae" +checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4" dependencies = [ - "native-tls", + "atoi", + "base64 0.21.7", + "bigdecimal 0.3.1", + "bitflags 2.4.2", + "byteorder", + "bytes", + "chrono", + "crc", + "digest 0.10.7", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", "once_cell", - "tokio", - "tokio-native-tls", + "percent-encoding", + "rand 0.8.5", + "rsa", + "rust_decimal", + "serde", + "sha1", + "sha2 0.10.8", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24" +dependencies = [ + "atoi", + "base64 0.21.7", + "bigdecimal 0.3.1", + "bitflags 2.4.2", + "byteorder", + "chrono", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "ipnetwork", + "itoa", + "log", + "md-5", + "memchr", + "num-bigint 0.4.4", + "once_cell", + "rand 0.8.5", + "rust_decimal", + "serde", + "serde_json", + "sha1", + "sha2 0.10.8", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490" +dependencies = [ + "atoi", + "chrono", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "sqlx-core", + "tracing", + "url", + "urlencoding", ] [[package]] @@ -7693,8 +7681,8 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck 0.3.3", "proc-macro-error", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -7723,8 +7711,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "rustversion", "syn 1.0.109", ] @@ -7736,25 +7724,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "rustversion", - "syn 2.0.39", + "syn 2.0.48", ] [[package]] name = "subtle" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "svm-rs" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20689c7d03b6461b502d0b95d6c24874c7d24dea2688af80486a130a06af3b07" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" dependencies = [ - "dirs 5.0.1", + "dirs", "fs2", "hex", "once_cell", @@ -7785,22 +7773,34 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.39" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", +] + [[package]] name = "sync_vm" version = "1.3.3" @@ -7875,15 +7875,14 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" dependencies = [ "cfg-if 1.0.0", - "fastrand 2.0.1", - "redox_syscall 0.4.1", + "fastrand", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -7894,27 +7893,37 @@ checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" dependencies = [ "dirs-next", "rustversion", - "winapi 0.3.9", + "winapi", ] [[package]] name = "termcolor" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] [[package]] name = "test-log" -version = "0.2.13" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6159ab4116165c99fc88cce31f99fa2c9dbe08d3691cb38da02fc3b45f357d2b" +dependencies = [ + "env_logger 0.10.2", + "test-log-macros", +] + +[[package]] +name = "test-log-macros" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f66edd6b6cd810743c0c71e1d085e92b01ce6a72782032e3f794c8284fe4bcdd" +checksum = "7ba277e77219e9eea169e8508942db1bf5d8a41ff2db9b20aab5a5aadc9fa25d" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -7928,22 +7937,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -7967,13 +7976,14 @@ dependencies = [ [[package]] name = "time" -version = "0.3.30" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", "itoa", "libc", + "num-conv", "num_threads", "powerfmt", "serde", @@ -7989,10 +7999,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ + "num-conv", "time-core", ] @@ -8031,14 +8042,14 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.34.0" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", - "bytes 1.5.0", + "bytes", "libc", - "mio 0.8.9", + "mio", "num_cpus", "parking_lot 0.12.1", "pin-project-lite", @@ -8054,9 +8065,9 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -8075,7 +8086,18 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.10", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.2", + "rustls-pki-types", "tokio", ] @@ -8098,11 +8120,11 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ "futures-util", "log", - "rustls", + "rustls 0.21.10", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tungstenite", - "webpki-roots 0.25.3", + "webpki-roots 0.25.4", ] [[package]] @@ -8111,7 +8133,7 @@ version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ - "bytes 1.5.0", + "bytes", "futures-core", "futures-sink", "log", @@ -8125,7 +8147,7 @@ version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ - "bytes 1.5.0", + "bytes", "futures-core", "futures-io", "futures-sink", @@ -8145,65 +8167,43 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.8" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.0", + "toml_edit 0.20.2", ] [[package]] name = "toml_datetime" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" -dependencies = [ - "combine", - "indexmap 1.9.3", - "itertools 0.10.5", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ - "indexmap 2.1.0", - "toml_datetime", - "winnow", + "serde", ] [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.2", "toml_datetime", "winnow", ] [[package]] name = "toml_edit" -version = "0.21.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.2", "serde", "serde_spanned", "toml_datetime", @@ -8238,9 +8238,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ "async-compression", - "base64 0.21.5", - "bitflags 2.4.1", - "bytes 1.5.0", + "base64 0.21.7", + "bitflags 2.4.2", + "bytes", "futures-core", "futures-util", "http", @@ -8258,7 +8258,7 @@ dependencies = [ "tower-layer", "tower-service", "tracing", - "uuid 1.6.1", + "uuid 1.7.0", ] [[package]] @@ -8291,9 +8291,9 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -8367,9 +8367,9 @@ checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3" [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" @@ -8378,13 +8378,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ "byteorder", - "bytes 1.5.0", + "bytes", "data-encoding", "http", "httparse", "log", "rand 0.8.5", - "rustls", + "rustls 0.21.10", "sha1", "thiserror", "url", @@ -8441,9 +8441,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -8506,7 +8506,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" dependencies = [ - "quote 1.0.33", + "quote 1.0.35", "syn 1.0.109", ] @@ -8528,7 +8528,7 @@ version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "log", "native-tls", "once_cell", @@ -8571,17 +8571,17 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.12", "serde", ] [[package]] name = "uuid" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.12", "serde", ] @@ -8612,8 +8612,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "vise" version = "0.1.0" -source = "git+https://github.com/matter-labs/vise.git?rev=dd05139b76ab0843443ab3ff730174942c825dae#dd05139b76ab0843443ab3ff730174942c825dae" +source = "git+https://github.com/matter-labs/vise.git?rev=1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1#1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" dependencies = [ + "compile-fmt", "elsa", "linkme", "once_cell", @@ -8624,7 +8625,7 @@ dependencies = [ [[package]] name = "vise-exporter" version = "0.1.0" -source = "git+https://github.com/matter-labs/vise.git?rev=dd05139b76ab0843443ab3ff730174942c825dae#dd05139b76ab0843443ab3ff730174942c825dae" +source = "git+https://github.com/matter-labs/vise.git?rev=1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1#1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" dependencies = [ "hyper", "metrics-exporter-prometheus", @@ -8637,17 +8638,17 @@ dependencies = [ [[package]] name = "vise-macros" version = "0.1.0" -source = "git+https://github.com/matter-labs/vise.git?rev=dd05139b76ab0843443ab3ff730174942c825dae#dd05139b76ab0843443ab3ff730174942c825dae" +source = "git+https://github.com/matter-labs/vise.git?rev=1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1#1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "vlog" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "chrono", "sentry", @@ -8656,6 +8657,22 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "vm_utils" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" +dependencies = [ + "anyhow", + "multivm", + "tokio", + "tracing", + "zksync_contracts", + "zksync_dal", + "zksync_state", + "zksync_types", + "zksync_utils", +] + [[package]] name = "walkdir" version = "2.4.0" @@ -8695,9 +8712,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -8705,24 +8722,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -8732,38 +8749,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" dependencies = [ - "quote 1.0.33", + "quote 1.0.35", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" [[package]] name = "wasm-streams" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" dependencies = [ "futures-util", "js-sys", @@ -8774,9 +8791,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" dependencies = [ "js-sys", "wasm-bindgen", @@ -8789,12 +8806,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5388522c899d1e1c96a4c307e3797e0f697ba7c77dd8e0e625ecba9dd0342937" dependencies = [ "arrayvec 0.7.4", - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "derive_more", "ethabi 18.0.0", "ethereum-types 0.14.1", - "futures 0.3.29", + "futures 0.3.30", "futures-timer", "headers", "hex", @@ -8806,7 +8823,7 @@ dependencies = [ "pin-project", "reqwest", "rlp", - "secp256k1 0.27.0", + "secp256k1", "serde", "serde_json", "tiny-keccak 2.0.2", @@ -8815,18 +8832,18 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.24.0" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" -dependencies = [ - "rustls-webpki", -] +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.25.3" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" +checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "which" @@ -8845,16 +8862,6 @@ name = "whoami" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" -dependencies = [ - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" [[package]] name = "winapi" @@ -8866,12 +8873,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -8884,7 +8885,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -8895,11 +8896,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.0", ] [[package]] @@ -9036,9 +9037,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.19" +version = "0.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "a7cad8365489051ae9f054164e459304af2e7e9bb407c958076c8bf4aef52da5" dependencies = [ "memchr", ] @@ -9053,16 +9054,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "ws_stream_wasm" version = "0.7.4" @@ -9070,7 +9061,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" dependencies = [ "async_io_stream", - "futures 0.3.29", + "futures 0.3.30", "js-sys", "log", "pharos", @@ -9105,22 +9096,22 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "zerocopy" -version = "0.7.27" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43de342578a3a14a9314a2dab1942cbfcbe5686e1f91acdc513058063eafe18" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.27" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1012d89e3acb79fad7a799ce96866cfb8098b74638465ea1b1533d35900ca90" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -9138,9 +9129,9 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -9149,14 +9140,14 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" dependencies = [ - "aes 0.8.3", + "aes", "byteorder", "bzip2", "constant_time_eq", "crc32fast", - "crossbeam-utils 0.8.16", + "crossbeam-utils 0.8.19", "flate2", - "hmac 0.12.1", + "hmac", "pbkdf2 0.11.0", "sha1", "time", @@ -9191,7 +9182,7 @@ dependencies = [ "serde", "serde_json", "static_assertions", - "zk_evm_abstractions", + "zk_evm_abstractions 0.1.0", "zkevm_opcode_defs 1.3.2", ] @@ -9206,7 +9197,7 @@ dependencies = [ "serde", "serde_json", "static_assertions", - "zk_evm_abstractions", + "zk_evm_abstractions 0.1.0", "zkevm_opcode_defs 1.3.2", ] @@ -9221,21 +9212,49 @@ dependencies = [ "serde", "serde_json", "static_assertions", - "zk_evm_abstractions", + "zk_evm_abstractions 0.1.0", "zkevm_opcode_defs 1.3.2", ] +[[package]] +name = "zk_evm" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.4.1#6250dbf64b2d14ced87a127735da559f27a432d5" +dependencies = [ + "anyhow", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "static_assertions", + "zk_evm_abstractions 1.4.1", + "zkevm_opcode_defs 1.4.1", +] + [[package]] name = "zk_evm_abstractions" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git#15a2af404902d5f10352e3d1fac693cc395fcff9" +source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git#32dd320953841aa78579d9da08abbc70bcaed175" dependencies = [ "anyhow", + "num_enum 0.6.1", "serde", "static_assertions", "zkevm_opcode_defs 1.3.2", ] +[[package]] +name = "zk_evm_abstractions" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git?branch=v1.4.1#0aac08c3b097ee8147e748475117ac46bddcdcef" +dependencies = [ + "anyhow", + "num_enum 0.6.1", + "serde", + "static_assertions", + "zkevm_opcode_defs 1.4.1", +] + [[package]] name = "zkevm-assembly" version = "1.3.2" @@ -9255,6 +9274,25 @@ dependencies = [ "zkevm_opcode_defs 1.3.2", ] +[[package]] +name = "zkevm-assembly" +version = "1.3.2" +source = "git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.4.1#50282016d01bd2fd147021dd558209778db2268b" +dependencies = [ + "env_logger 0.9.3", + "hex", + "lazy_static", + "log", + "nom", + "num-bigint 0.4.4", + "num-traits", + "sha3 0.10.8", + "smallvec", + "structopt", + "thiserror", + "zkevm_opcode_defs 1.4.1", +] + [[package]] name = "zkevm_circuits" version = "1.4.0" @@ -9276,6 +9314,27 @@ dependencies = [ "zkevm_opcode_defs 1.3.2", ] +[[package]] +name = "zkevm_circuits" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zkevm_circuits.git?branch=v1.4.1#873fe0fcf0bb8df6be0ae1938ce8469d6bf63ebd" +dependencies = [ + "arrayvec 0.7.4", + "bincode", + "boojum", + "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-boojum.git?branch=main)", + "derivative", + "hex", + "itertools 0.10.5", + "rand 0.4.6", + "rand 0.8.5", + "seq-macro", + "serde", + "serde_json", + "smallvec", + "zkevm_opcode_defs 1.4.1", +] + [[package]] name = "zkevm_opcode_defs" version = "1.3.1" @@ -9292,7 +9351,7 @@ name = "zkevm_opcode_defs" version = "1.3.2" source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.3.2#dffacadeccdfdbff4bc124d44c595c4a6eae5013" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "blake2 0.10.6 (git+https://github.com/RustCrypto/hashes.git?rev=1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e)", "ethereum-types 0.14.1", "k256 0.11.6", @@ -9301,6 +9360,20 @@ dependencies = [ "sha3 0.10.6", ] +[[package]] +name = "zkevm_opcode_defs" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.4.1#ba8228ff0582d21f64d6a319d50d0aec48e9e7b6" +dependencies = [ + "bitflags 2.4.2", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.14.1", + "k256 0.13.3", + "lazy_static", + "sha2 0.10.8", + "sha3 0.10.8", +] + [[package]] name = "zkevm_test_harness" version = "1.3.3" @@ -9309,9 +9382,9 @@ dependencies = [ "bincode", "circuit_testing", "codegen 0.2.0", - "crossbeam 0.8.2", + "crossbeam 0.8.4", "derivative", - "env_logger 0.10.1", + "env_logger 0.11.1", "hex", "num-bigint 0.4.4", "num-integer", @@ -9325,30 +9398,59 @@ dependencies = [ "test-log", "tracing", "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.3.3)", - "zkevm-assembly", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2)", ] [[package]] name = "zkevm_test_harness" version = "1.4.0" -source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#d2e3670e0c5115b7cc7cc24e6d3dbdd17a214aad" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#de2ecad62ac8c12777e576dca20311ad8ec770d1" +dependencies = [ + "bincode", + "circuit_definitions 0.1.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0)", + "codegen 0.2.0", + "crossbeam 0.8.4", + "derivative", + "env_logger 0.11.1", + "hex", + "rand 0.4.6", + "rayon", + "serde", + "serde_json", + "smallvec", + "structopt", + "test-log", + "tracing", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2)", +] + +[[package]] +name = "zkevm_test_harness" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1#d4e9215d4fe8f4d311e1c01a9b561e4d04cb426b" dependencies = [ "bincode", - "circuit_definitions", + "circuit_definitions 0.1.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1)", "codegen 0.2.0", - "crossbeam 0.8.2", + "crossbeam 0.8.4", + "curl", "derivative", - "env_logger 0.10.1", + "env_logger 0.11.1", "hex", + "lazy_static", "rand 0.4.6", "rayon", + "reqwest", + "rescue_poseidon 0.4.1 (git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2)", "serde", "serde_json", "smallvec", + "snark_wrapper", "structopt", "test-log", "tracing", - "zkevm-assembly", + "walkdir", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.4.1)", ] [[package]] @@ -9358,8 +9460,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15bc9b106393359ac013c2527db318ced4ca838d26ef03488233af557ebe5da8" dependencies = [ "async-trait", - "clap 4.4.10", - "env_logger 0.10.1", + "clap 4.4.18", + "env_logger 0.10.2", "ethers", "ethers-contract", "hex", @@ -9375,7 +9477,7 @@ dependencies = [ [[package]] name = "zksync_basic_types" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "serde", "serde_json", @@ -9385,13 +9487,11 @@ dependencies = [ [[package]] name = "zksync_circuit_breaker" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "async-trait", - "backon", - "convert_case 0.6.0", - "futures 0.3.29", + "futures 0.3.30", "hex", "metrics", "serde_json", @@ -9401,16 +9501,19 @@ dependencies = [ "zksync_config", "zksync_contracts", "zksync_dal", - "zksync_eth_client", "zksync_types", ] [[package]] name = "zksync_commitment_utils" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ + "multivm", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", + "zk_evm 1.4.1", "zkevm_test_harness 1.4.0", + "zkevm_test_harness 1.4.1", "zksync_types", "zksync_utils", ] @@ -9418,7 +9521,7 @@ dependencies = [ [[package]] name = "zksync_concurrency" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "once_cell", @@ -9436,9 +9539,10 @@ dependencies = [ [[package]] name = "zksync_config" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", + "rand 0.8.5", "serde", "zksync_basic_types", ] @@ -9446,7 +9550,7 @@ dependencies = [ [[package]] name = "zksync_consensus_bft" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "async-trait", @@ -9467,7 +9571,7 @@ dependencies = [ [[package]] name = "zksync_consensus_crypto" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "blst", @@ -9485,10 +9589,9 @@ dependencies = [ [[package]] name = "zksync_consensus_executor" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", - "prost", "rand 0.8.5", "tracing", "vise", @@ -9501,13 +9604,12 @@ dependencies = [ "zksync_consensus_sync_blocks", "zksync_consensus_utils", "zksync_protobuf", - "zksync_protobuf_build", ] [[package]] name = "zksync_consensus_network" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "async-trait", @@ -9523,6 +9625,7 @@ dependencies = [ "zksync_concurrency", "zksync_consensus_crypto", "zksync_consensus_roles", + "zksync_consensus_storage", "zksync_consensus_utils", "zksync_protobuf", "zksync_protobuf_build", @@ -9531,7 +9634,7 @@ dependencies = [ [[package]] name = "zksync_consensus_roles" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "bit-vec", @@ -9551,7 +9654,7 @@ dependencies = [ [[package]] name = "zksync_consensus_storage" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "async-trait", @@ -9559,6 +9662,7 @@ dependencies = [ "rand 0.8.5", "thiserror", "tracing", + "vise", "zksync_concurrency", "zksync_consensus_roles", "zksync_protobuf", @@ -9568,7 +9672,7 @@ dependencies = [ [[package]] name = "zksync_consensus_sync_blocks" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "thiserror", @@ -9583,7 +9687,7 @@ dependencies = [ [[package]] name = "zksync_consensus_utils" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "thiserror", "zksync_concurrency", @@ -9592,7 +9696,7 @@ dependencies = [ [[package]] name = "zksync_contracts" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "envy", "ethabi 18.0.0", @@ -9606,7 +9710,7 @@ dependencies = [ [[package]] name = "zksync_core" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "actix-cors", "actix-rt", @@ -9614,20 +9718,14 @@ dependencies = [ "anyhow", "async-trait", "axum", - "bigdecimal", + "bigdecimal 0.3.1", "bitflags 1.3.2", "chrono", "ctrlc", - "futures 0.3.29", + "futures 0.3.30", "governor", "hex", "itertools 0.10.5", - "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-http-server", - "jsonrpc-pubsub", - "jsonrpc-ws-server", "lru", "metrics", "multivm", @@ -9646,42 +9744,45 @@ dependencies = [ "tracing", "vise", "vlog", + "vm_utils", "zksync_circuit_breaker", "zksync_commitment_utils", "zksync_concurrency", "zksync_config", "zksync_consensus_bft", + "zksync_consensus_crypto", "zksync_consensus_executor", "zksync_consensus_roles", "zksync_consensus_storage", + "zksync_consensus_utils", "zksync_contracts", "zksync_dal", + "zksync_env_config", "zksync_eth_client", "zksync_eth_signer", "zksync_health_check", + "zksync_l1_contract_interface", "zksync_mempool", "zksync_merkle_tree", "zksync_mini_merkle_tree", "zksync_object_store", "zksync_protobuf", "zksync_protobuf_build", - "zksync_prover_utils", + "zksync_prover_interface", "zksync_queued_job_processor", "zksync_state", "zksync_storage", "zksync_system_constants", "zksync_types", "zksync_utils", - "zksync_verification_key_generator_and_server", "zksync_web3_decl", ] [[package]] name = "zksync_crypto" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ - "base64 0.13.1", "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "hex", "once_cell", @@ -9694,14 +9795,15 @@ dependencies = [ [[package]] name = "zksync_dal" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", - "bigdecimal", + "bigdecimal 0.3.1", "bincode", + "chrono", "hex", "itertools 0.10.5", - "num 0.3.1", + "num 0.4.1", "once_cell", "prost", "rand 0.8.5", @@ -9726,17 +9828,26 @@ dependencies = [ ] [[package]] -name = "zksync_eth_client" +name = "zksync_env_config" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", + "envy", + "serde", + "zksync_basic_types", + "zksync_config", +] + +[[package]] +name = "zksync_eth_client" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" +dependencies = [ "async-trait", - "hex", "jsonrpc-core 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "thiserror", - "tokio", "tracing", "vise", "zksync_config", @@ -9748,15 +9859,14 @@ dependencies = [ [[package]] name = "zksync_eth_signer" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "async-trait", "hex", "jsonrpc-core 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-crypto", "reqwest", "rlp", - "secp256k1 0.27.0", + "secp256k1", "serde", "serde_derive", "serde_json", @@ -9767,20 +9877,34 @@ dependencies = [ [[package]] name = "zksync_health_check" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "async-trait", - "futures 0.3.29", + "futures 0.3.30", "serde", "serde_json", "tokio", "tracing", ] +[[package]] +name = "zksync_l1_contract_interface" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" +dependencies = [ + "codegen 0.1.0", + "sha2 0.10.8", + "sha3 0.10.8", + "zkevm_test_harness 1.3.3", + "zkevm_test_harness 1.4.1", + "zksync_prover_interface", + "zksync_types", +] + [[package]] name = "zksync_mempool" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "tracing", "zksync_types", @@ -9789,7 +9913,7 @@ dependencies = [ [[package]] name = "zksync_merkle_tree" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "leb128", "once_cell", @@ -9798,6 +9922,7 @@ dependencies = [ "tracing", "vise", "zksync_crypto", + "zksync_prover_interface", "zksync_storage", "zksync_types", "zksync_utils", @@ -9806,7 +9931,7 @@ dependencies = [ [[package]] name = "zksync_mini_merkle_tree" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "once_cell", "zksync_basic_types", @@ -9816,7 +9941,7 @@ dependencies = [ [[package]] name = "zksync_object_store" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "async-trait", @@ -9825,18 +9950,20 @@ dependencies = [ "google-cloud-auth", "google-cloud-storage", "http", + "prost", "serde_json", "tokio", "tracing", "vise", "zksync_config", + "zksync_protobuf", "zksync_types", ] [[package]] name = "zksync_protobuf" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "bit-vec", @@ -9854,43 +9981,37 @@ dependencies = [ [[package]] name = "zksync_protobuf_build" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "heck 0.4.1", "prettyplease", - "proc-macro2 1.0.70", + "proc-macro2 1.0.78", "prost-build", "prost-reflect", "protox", - "quote 1.0.33", - "syn 2.0.39", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] -name = "zksync_prover_utils" +name = "zksync_prover_interface" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ - "anyhow", - "async-trait", - "ctrlc", - "futures 0.3.29", - "regex", - "reqwest", - "tokio", - "toml_edit 0.14.4", - "tracing", - "zksync_config", + "chrono", + "serde", + "serde_with", + "strum 0.24.1", + "zkevm_test_harness 1.3.3", "zksync_object_store", "zksync_types", - "zksync_utils", ] [[package]] name = "zksync_queued_job_processor" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "async-trait", @@ -9903,7 +10024,7 @@ dependencies = [ [[package]] name = "zksync_state" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "itertools 0.10.5", @@ -9920,7 +10041,7 @@ dependencies = [ [[package]] name = "zksync_storage" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "num_cpus", "once_cell", @@ -9932,47 +10053,35 @@ dependencies = [ [[package]] name = "zksync_system_constants" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ - "anyhow", - "bigdecimal", - "hex", - "num 0.3.1", "once_cell", - "serde", - "serde_json", - "url", "zksync_basic_types", - "zksync_contracts", "zksync_utils", ] [[package]] name = "zksync_types" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "chrono", - "codegen 0.1.0", - "ethereum-types 0.12.1", "hex", - "num 0.3.1", + "num 0.4.1", "num_enum 0.6.1", "once_cell", - "parity-crypto", + "prost", "rlp", + "secp256k1", "serde", "serde_json", "serde_with", "strum 0.24.1", "thiserror", - "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", - "zk_evm 1.4.0", - "zkevm_test_harness 1.3.3", "zksync_basic_types", - "zksync_consensus_roles", + "zksync_config", "zksync_contracts", "zksync_mini_merkle_tree", "zksync_protobuf", @@ -9984,15 +10093,15 @@ dependencies = [ [[package]] name = "zksync_utils" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", - "bigdecimal", - "futures 0.3.29", + "bigdecimal 0.3.1", + "futures 0.3.30", "hex", "itertools 0.10.5", "metrics", - "num 0.3.1", + "num 0.4.1", "reqwest", "serde", "thiserror", @@ -10003,32 +10112,12 @@ dependencies = [ "zksync_basic_types", ] -[[package]] -name = "zksync_verification_key_generator_and_server" -version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" -dependencies = [ - "anyhow", - "bincode", - "circuit_testing", - "ff_ce", - "hex", - "itertools 0.10.5", - "once_cell", - "serde_json", - "structopt", - "tracing", - "vlog", - "zksync_prover_utils", - "zksync_types", -] - [[package]] name = "zksync_web3_decl" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ - "bigdecimal", + "bigdecimal 0.3.1", "chrono", "itertools 0.10.5", "jsonrpsee", @@ -10048,15 +10137,6 @@ dependencies = [ "zstd-safe 5.0.2+zstd.1.5.2", ] -[[package]] -name = "zstd" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" -dependencies = [ - "zstd-safe 6.0.6", -] - [[package]] name = "zstd" version = "0.13.0" @@ -10076,16 +10156,6 @@ dependencies = [ "zstd-sys", ] -[[package]] -name = "zstd-safe" -version = "6.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" -dependencies = [ - "libc", - "zstd-sys", -] - [[package]] name = "zstd-safe" version = "7.0.0" diff --git a/Cargo.toml b/Cargo.toml index 48203b0c..f1957063 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,14 +11,14 @@ categories = ["cryptography"] publish = false # We don't want to publish our binaries. [dependencies] -zksync_basic_types = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_core = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -multivm = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_contracts = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_types = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_utils = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_state = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_web3_decl = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } +zksync_basic_types = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_core = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +multivm = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_contracts = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_types = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_utils = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_state = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_web3_decl = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } sha3 = "0.10.6" @@ -43,7 +43,7 @@ colored = "2.0" lazy_static = "1.4" eyre = "0.6" serde_json = "1.0.67" -bigdecimal = { version = "0.2.0" } +bigdecimal = { version = "0.2.2", features = ["serde"] } hex = "0.4" ethabi = "16.0.0" itertools = "0.10.5" diff --git a/e2e-tests/test/zks-apis.test.ts b/e2e-tests/test/zks-apis.test.ts index a27e04dd..80984965 100644 --- a/e2e-tests/test/zks-apis.test.ts +++ b/e2e-tests/test/zks-apis.test.ts @@ -31,13 +31,13 @@ describe("zks_estimateFee", function () { const response: Fee = await provider.send("zks_estimateFee", [transaction]); // Assert - expect(ethers.BigNumber.from(response.gas_limit)).to.eql(ethers.BigNumber.from("621166"), "Unexpected gas_limit"); + expect(ethers.BigNumber.from(response.gas_limit)).to.eql(ethers.BigNumber.from("1447745"), "Unexpected gas_limit"); expect(ethers.BigNumber.from(response.gas_per_pubdata_limit)).to.eql( - ethers.BigNumber.from("4080"), + ethers.BigNumber.from("18750"), "Unexpected gas_per_pubdata_limit" ); expect(ethers.BigNumber.from(response.max_fee_per_gas)).to.eql( - ethers.BigNumber.from("250000000"), + ethers.BigNumber.from("100000000"), "Unexpected max_fee_per_gas" ); expect(ethers.BigNumber.from(response.max_priority_fee_per_gas)).to.eql( diff --git a/etc/system-contracts/SystemConfig.json b/etc/system-contracts/SystemConfig.json index 827e11b5..73d75b2b 100644 --- a/etc/system-contracts/SystemConfig.json +++ b/etc/system-contracts/SystemConfig.json @@ -1,17 +1,25 @@ { - "GUARANTEED_PUBDATA_BYTES": 4000, - "MAX_PUBDATA_PER_BATCH": 110000, - "MAX_TRANSACTIONS_IN_BATCH": 1024, - "BATCH_OVERHEAD_L2_GAS": 1200000, + "GUARANTEED_PUBDATA_BYTES": 2500, + "MAX_TRANSACTIONS_IN_BATCH": 10000, + "REQUIRED_L2_GAS_PRICE_PER_PUBDATA": 800, + "L1_GAS_PER_PUBDATA_BYTE": 17, + "PRIORITY_TX_MAX_PUBDATA": 99000, "BATCH_OVERHEAD_L1_GAS": 1000000, - "L2_TX_INTRINSIC_GAS": 14070, - "L2_TX_INTRINSIC_PUBDATA": 0, "L1_TX_INTRINSIC_L2_GAS": 167157, "L1_TX_INTRINSIC_PUBDATA": 88, + "L1_TX_MIN_L2_GAS_BASE": 173484, + "L1_TX_DELTA_544_ENCODING_BYTES": 1656, + "L1_TX_DELTA_FACTORY_DEPS_L2_GAS": 2473, + "L1_TX_DELTA_FACTORY_DEPS_PUBDATA": 64, + "L2_TX_INTRINSIC_GAS": 14070, + "L2_TX_INTRINSIC_PUBDATA": 0, + "MAX_NEW_FACTORY_DEPS": 32, "MAX_GAS_PER_TRANSACTION": 80000000, - "BOOTLOADER_MEMORY_FOR_TXS": 8740224, - "REFUND_GAS": 7343, "KECCAK_ROUND_COST_GAS": 40, "SHA256_ROUND_COST_GAS": 7, - "ECRECOVER_COST_GAS": 1112 + "ECRECOVER_COST_GAS": 7000, + "PRIORITY_TX_MINIMAL_GAS_PRICE": 250000000, + "PRIORITY_TX_MAX_GAS_PER_BATCH": 80000000, + "PRIORITY_TX_PUBDATA_PER_BATCH": 120000, + "PRIORITY_TX_BATCH_OVERHEAD_L1_GAS": 1000000 } diff --git a/etc/system-contracts/VERSION.md b/etc/system-contracts/VERSION.md index 675b64d7..6f016b01 100644 --- a/etc/system-contracts/VERSION.md +++ b/etc/system-contracts/VERSION.md @@ -1,6 +1,6 @@ -This directory was copied from https://github.com/matter-labs/era-system-contracts. +This directory was copied from https://github.com/matter-labs/era-contracts/tree/2dfbc6bac84ecada93cab4a0dea113bc2aceba1c. -The current commit: `a00ab9a11643f3a918ed95cdf8a04edff5499d92`. +The current repository commit: `2dfbc6bac84ecada93cab4a0dea113bc2aceba1c`. The following directories/files were copied: - [bootloader](bootloader) @@ -8,15 +8,15 @@ The following directories/files were copied: - [scripts](scripts) - [hardhat.config.ts](hardhat.config.ts) - [package.json](package.json) -- [SystemConfig.json](SystemConfig.json) -- [yarn.lock](yarn.lock) +- [SystemConfig.json](SystemConfig.json) **NOTE: was copied from the repository root.** The next changes were introduced: - [bootloader.yul](bootloader/bootloader.yul) - Debug data, marked as `DEBUG SUPPORT` blocks. - Impersonating preprocessing mode, blocks `` and at some places added `` condition. -- [process.ts](scripts/process.ts) +- [preprocess-bootloader.ts](scripts/preprocess-bootloader.ts) - Impersonating preprocessing mode, "For impersonating" blocks. + - System config path, "TEST NODE CHANGE" block. - [DefaultAccount.sol](contracts/DefaultAccount.sol) - Return transaction data (empty), marked as `FOUNDRY SUPPORT` blocks. - [DefaultAccountNoSecurity.sol](contracts/DefaultAccountNoSecurity.sol) diff --git a/etc/system-contracts/bootloader/bootloader.yul b/etc/system-contracts/bootloader/bootloader.yul index dd115490..a950b205 100644 --- a/etc/system-contracts/bootloader/bootloader.yul +++ b/etc/system-contracts/bootloader/bootloader.yul @@ -9,11 +9,11 @@ object "Bootloader" { // Function Declarations //////////////////////////////////////////////////////////////////////////// - // While we definitely cannot control the gas price on L1, + // While we definitely cannot control the pubdata price on L1, // we need to check the operator does not provide any absurd numbers there - function MAX_ALLOWED_L1_GAS_PRICE() -> ret { - // 100k gwei - ret := 100000000000000 + function MAX_ALLOWED_FAIR_PUBDATA_PRICE() -> ret { + // 1M gwei + ret := 1000000000000000 } function MAX_ALLOWED_FAIR_L2_GAS_PRICE() -> ret { @@ -23,9 +23,10 @@ object "Bootloader" { /// @dev This method ensures that the prices provided by the operator /// are not absurdly high - function validateOperatorProvidedPrices(l1GasPrice, fairL2GasPrice) { - if gt(l1GasPrice, MAX_ALLOWED_L1_GAS_PRICE()) { - assertionError("L1 gas price too high") + function validateOperatorProvidedPrices(fairL2GasPrice, pubdataPrice) { + // The limit is the same for pubdata price and L1 gas price + if gt(pubdataPrice, MAX_ALLOWED_FAIR_PUBDATA_PRICE()) { + assertionError("Fair pubdata price too high") } if gt(fairL2GasPrice, MAX_ALLOWED_FAIR_L2_GAS_PRICE()) { @@ -33,21 +34,44 @@ object "Bootloader" { } } - /// @dev Returns the baseFee for this batch based on the - /// L1 gas price and the fair L2 gas price. - function getBaseFee(l1GasPrice, fairL2GasPrice) -> baseFee, gasPricePerPubdata { - // By default, we want to provide the fair L2 gas price. - // That it means that the operator controls - // what the value of the baseFee will be. In the future, - // a better system, aided by EIP1559 should be added. + /// @dev The overhead for a transaction slot in L2 gas. + /// It is roughly equal to 80kk/MAX_TRANSACTIONS_IN_BATCH, i.e. how many gas would an L1->L2 transaction + /// need to pay to compensate for the batch being closed. + /// @dev It is expected of the operator to set the "fair L2 gas price" appropriately to ensure that it is + /// compensated enough in case the batch might be prematurely sealed because of the transaction slots being filled up. + function TX_SLOT_OVERHEAD_GAS() -> ret { + ret := 10000 + } - let pubdataBytePriceETH := safeMul(l1GasPrice, L1_GAS_PER_PUBDATA_BYTE(), "aoa") + /// @dev The overhead for each byte of the bootloader memory that the encoding of the transaction. + /// It is roughly equal to 80kk/BOOTLOADER_MEMORY_FOR_TXS, i.e. how many gas would an L1->L2 transaction + /// need to pay to compensate for the batch being closed. + /// @dev It is expected of the operator to set the "fair L2 gas price" appropriately to ensure that it is + /// compensated enough in case the batch might be prematurely sealed because of the memory being filled up. + function MEMORY_OVERHEAD_GAS() -> ret { + ret := 10 + } + /// @dev Returns the base fee and gas per pubdata based on the fair pubdata price and L2 gas price provided by the operator + /// @param pubdataPrice The price of a single byte of pubdata in Wei + /// @param fairL2GasPrice The price of an L2 gas in Wei + /// @return baseFee and gasPerPubdata The base fee and the gas per pubdata to be used by L2 transactions in this batch. + function getFeeParams( + fairPubdataPrice, + fairL2GasPrice, + ) -> baseFee, gasPerPubdata { baseFee := max( fairL2GasPrice, - ceilDiv(pubdataBytePriceETH, MAX_L2_GAS_PER_PUBDATA()) + ceilDiv(fairPubdataPrice, MAX_L2_GAS_PER_PUBDATA()) ) - gasPricePerPubdata := ceilDiv(pubdataBytePriceETH, baseFee) + + gasPerPubdata := gasPerPubdataFromBaseFee(baseFee, fairPubdataPrice) + } + + /// @dev Calculates the gas per pubdata based on the pubdata price provided by the operator + /// as well the the fixed baseFee. + function gasPerPubdataFromBaseFee(baseFee, pubdataPrice) -> ret { + ret := ceilDiv(pubdataPrice, baseFee) } /// @dev It should be always possible to submit a transaction @@ -62,14 +86,6 @@ object "Bootloader" { ret := div(MAX_GAS_PER_TRANSACTION(), GUARANTEED_PUBDATA_PER_TX()) } - /// @dev The computational overhead for a batch. - /// It includes the combined price for 1 instance of all the circuits - /// (since they might be partially filled), the price for running - /// the common parts of the bootloader as well as general maintainance of the system. - function BATCH_OVERHEAD_L2_GAS() -> ret { - ret := {{BATCH_OVERHEAD_L2_GAS}} - } - /// @dev The overhead for the interaction with L1. /// It should cover proof verification as well as other minor /// overheads for committing/executing a transaction in a batch. @@ -90,12 +106,6 @@ object "Bootloader" { ret := 17 } - /// @dev The size of the bootloader memory that is to spent by the transaction's - /// encodings. - function BOOTLOADER_MEMORY_FOR_TXS() -> ret { - ret := {{BOOTLOADER_MEMORY_FOR_TXS}} - } - /// @dev Whether the batch is allowed to accept transactions with /// gasPerPubdataByteLimit = 0. On mainnet, this is forbidden for safety reasons. function FORBID_ZERO_GAS_PER_PUBDATA() -> ret { @@ -108,7 +118,7 @@ object "Bootloader" { } /// @dev The slot from which the scratch space starts. - /// Scatch space is used for various temporary values + /// Scratch space is used for various temporary values function SCRATCH_SPACE_BEGIN_SLOT() -> ret { ret := 8 } @@ -343,7 +353,7 @@ object "Bootloader" { /// @dev Slots needed to store L1 Messenger pubdata. /// @dev Note that are many more these than the maximal pubdata in batch, since - /// it needs to also accomodate uncompressed state diffs that are required for the state diff + /// it needs to also accommodate uncompressed state diffs that are required for the state diff /// compression verification. function OPERATOR_PROVIDED_L1_MESSENGER_PUBDATA_SLOTS() -> ret { ret := {{OPERATOR_PROVIDED_L1_MESSENGER_PUBDATA_SLOTS}} @@ -389,12 +399,12 @@ object "Bootloader" { ret := add(TX_DESCRIPTION_BEGIN_BYTE(), mul(MAX_TRANSACTIONS_IN_BATCH(), TX_DESCRIPTION_SIZE())) } - /// @dev The memory page consists of 2^19 VM words. + /// @dev The memory page consists of 24000000 / 32 VM words. /// Each execution result is a single boolean, but /// for the sake of simplicity we will spend 32 bytes on each /// of those for now. function MAX_MEM_SIZE() -> ret { - ret := 0x1000000 // 2^24 bytes + ret := 24000000 } function L1_TX_INTRINSIC_L2_GAS() -> ret { @@ -456,7 +466,7 @@ object "Bootloader" { // The slot right before the vm hooks is the last slot that // can be used for transaction's descriptions /// DEBUG SUPPORT: use DEBUG_BEGIN_BYTE (as we reserve some bytes at the end of memory). - ret := sub(VM_HOOK_PARAMS_OFFSET(), 32) + ret := sub(DEBUG_BEGIN_BYTE(), 32) } /// @dev The formal address of the bootloader @@ -464,10 +474,6 @@ object "Bootloader" { ret := 0x0000000000000000000000000000000000008001 } - function MAX_SYSTEM_CONTRACT_ADDR() -> ret { - ret := 0x000000000000000000000000000000000000ffff - } - function ACCOUNT_CODE_STORAGE_ADDR() -> ret { ret := 0x0000000000000000000000000000000000008002 } @@ -488,6 +494,10 @@ object "Bootloader" { ret := 0x0000000000000000000000000000000000008007 } + function L1_MESSENGER_ADDR() -> ret { + ret := 0x0000000000000000000000000000000000008008 + } + function MSG_VALUE_SIMULATOR_ADDR() -> ret { ret := 0x0000000000000000000000000000000000008009 } @@ -508,8 +518,12 @@ object "Bootloader" { ret := 0x000000000000000000000000000000000000800e } - function L1_MESSENGER_ADDR() -> ret { - ret := 0x0000000000000000000000000000000000008008 + function KECCAK256_ADDR() -> ret { + ret := 0x0000000000000000000000000000000000008010 + } + + function MAX_SYSTEM_CONTRACT_ADDR() -> ret { + ret := 0x000000000000000000000000000000000000ffff } /// @dev The minimal allowed distance in bytes between the pointer to the compressed data @@ -654,17 +668,21 @@ object "Bootloader" { } } - /// @dev Checks whether the code hash of the system context contract is correct and updates it if needed. - /// @dev The L1 contracts expect all the system logs to be present in the first boojum upgrade batch already. - /// However, the old system context did not send the same system logs. Usually we upgrade system context - /// via an upgrade transaction, but in this case the transaction won't be even processed, because of failure to create an L2 block. - function upgradeSystemContextIfNeeded() { - let expectedCodeHash := {{SYSTEM_CONTEXT_EXPECTED_CODE_HASH}} + /// @dev The function that is temporarily needed to upgrade the Keccak256 precompile. This function and `ContractDeployer:forceDeployKeccak256` + /// are to be removed once the upgrade is complete. + /// @dev Checks whether the code hash of the Keccak256 precompile contract is correct and updates it if needed. + /// @dev When we upgrade to the new version of the Keccak256 precompile contract, the keccak precompile will not work correctly + /// and so the upgrade it should be done before any `keccak` calls. + function upgradeKeccakIfNeeded() { + let expectedCodeHash := {{KECCAK256_EXPECTED_CODE_HASH}} - let actualCodeHash := extcodehash(SYSTEM_CONTEXT_ADDR()) + let actualCodeHash := getRawCodeHash(KECCAK256_ADDR(), true) if iszero(eq(expectedCodeHash, actualCodeHash)) { - // Preparing the calldata to upgrade the SystemContext contract - {{UPGRADE_SYSTEM_CONTEXT_CALLDATA}} + // The `mimicCallOnlyResult` requires that the first word of the data + // contains its length. Here is 36 bytes, i.e. 4 byte selector + 32 byte hash. + mstore(0, 36) + mstore(32, {{PADDED_FORCE_DEPLOY_KECCAK256_SELECTOR}}) + mstore(36, expectedCodeHash) // We'll use a mimicCall to simulate the correct sender. let success := mimicCallOnlyResult( @@ -679,9 +697,46 @@ object "Bootloader" { ) if iszero(success) { - assertionError("system context upgrade fail") + assertionError("keccak256 upgrade fail") + } + } + } + + /// @notice Returns "raw" code hash of the address. "Raw" means that it returns exactly the value + /// that is stored in the AccountCodeStorage system contract for that address, without applying any + /// additional transformations, which the standard `extcodehash` does for EVM-compatibility + /// @param addr The address of the account to get the code hash of. + /// @param assertSuccess Whether to revert the bootloader if the call to the AccountCodeStorage fails. If `false`, only + /// `nearCallPanic` will be issued in case of failure, which is helpful for cases, when the reason for failer is user providing not + /// enough gas. + function getRawCodeHash(addr, assertSuccess) -> ret { + mstore(0, {{RIGHT_PADDED_GET_RAW_CODE_HASH_SELECTOR}}) + mstore(4, addr) + let success := staticcall( + gas(), + ACCOUNT_CODE_STORAGE_ADDR(), + 0, + 36, + 0, + 32 + ) + + // In case the call to the account code storage fails, + // it most likely means that the caller did not provide enough gas for + // the call. + // In case the caller is certain that the amount of gas provided is enough, i.e. + // (`assertSuccess` = true), then we should panic. + if iszero(success) { + if assertSuccess { + // The call must've succeeded, but it didn't. So we revert the bootloader. + assertionError("getRawCodeHash failed") } + + // Most likely not enough gas provided, revert the current frame. + nearCallPanic() } + + ret := mload(0) } /// @dev Calculates the canonical hash of the L1->L2 transaction that will be @@ -976,9 +1031,6 @@ object "Bootloader" { let payToOperator := safeMul(gasPrice, safeSub(gasLimit, refundGas, "lpah"), "mnk") - // Note, that for now, the L1->L2 transactions are free, i.e. the gasPrice - // for such transactions is always zero, so the `refundGas` is not used anywhere - // except for notifications for the operator for API purposes. notifyAboutRefund(refundGas) // Paying the fee to the operator @@ -1124,7 +1176,13 @@ object "Bootloader" { // Firsly, we publish all the bytecodes needed. This is needed to be done separately, since // bytecodes usually form the bulk of the L2 gas prices. - let gasLimitForTx, reservedGas := getGasLimitForTx(innerTxDataOffset, transactionIndex, gasPerPubdata, L2_TX_INTRINSIC_GAS(), L2_TX_INTRINSIC_PUBDATA()) + let gasLimitForTx, reservedGas := getGasLimitForTx( + innerTxDataOffset, + transactionIndex, + gasPerPubdata, + L2_TX_INTRINSIC_GAS(), + L2_TX_INTRINSIC_PUBDATA() + ) /// @@ -1266,7 +1324,6 @@ object "Bootloader" { let operatorOverheadForTransaction := getVerifiedOperatorOverheadForTx( transactionIndex, totalGasLimit, - gasPerPubdata, txEncodingLen ) gasLimitForTx := safeSub(totalGasLimit, operatorOverheadForTransaction, "qr") @@ -1779,20 +1836,14 @@ object "Bootloader" { function getVerifiedOperatorOverheadForTx( transactionIndex, txTotalGasLimit, - gasPerPubdataByte, txEncodeLen ) -> ret { let operatorOverheadForTransaction := getOperatorOverheadForTx(transactionIndex) if gt(operatorOverheadForTransaction, txTotalGasLimit) { assertionError("Overhead higher than gasLimit") } - let txGasLimit := min(safeSub(txTotalGasLimit, operatorOverheadForTransaction, "www"), MAX_GAS_PER_TRANSACTION()) - let requiredOverhead := getTransactionUpfrontOverhead( - txGasLimit, - gasPerPubdataByte, - txEncodeLen - ) + let requiredOverhead := getTransactionUpfrontOverhead(txEncodeLen) /// /// DEBUG SUPPORT START /// @@ -2009,95 +2060,34 @@ object "Bootloader" { } } - /// Returns the batch overhead to be paid, assuming a certain value of gasPerPubdata - function getBatchOverheadGas(gasPerPubdata) -> ret { - let computationOverhead := BATCH_OVERHEAD_L2_GAS() - let l1GasOverhead := BATCH_OVERHEAD_L1_GAS() - let l1GasPerPubdata := L1_GAS_PER_PUBDATA_BYTE() - - // Since the user specifies the amount of gas he is willing to pay for a *byte of pubdata*, - // we need to convert the number of L1 gas needed to process the batch into the equivalent number of - // pubdata to pay for. - // The difference between ceil and floor division here is negligible, - // so we prefer doing the cheaper operation for the end user - let pubdataEquivalentForL1Gas := safeDiv(l1GasOverhead, l1GasPerPubdata, "dd") - - ret := safeAdd( - computationOverhead, - safeMul(gasPerPubdata, pubdataEquivalentForL1Gas, "aa"), - "ab" - ) - } - /// @dev This method returns the overhead that should be paid upfront by a transaction. /// The goal of this overhead is to cover the possibility that this transaction may use up a certain /// limited resource per batch: a single-instance circuit, etc. /// The transaction needs to be able to pay the same % of the costs for publishing & proving the batch /// as the % of the batch's limited resources that it can consume. - /// @param txGasLimit The gasLimit for the transaction (note, that this limit should not include the overhead). - /// @param gasPerPubdataByte The price for pubdata byte in gas. /// @param txEncodeLen The length of the ABI-encoding of the transaction - /// @dev The % following 3 resources is taken into account when calculating the % of the batch's overhead to pay. - /// 1. The % of the maximal gas per transaction. It is assumed that `MAX_GAS_PER_TRANSACTION` gas is enough to consume all - /// the single-instance circuits. Meaning that the transaction should pay at least txGasLimit/MAX_GAS_PER_TRANSACTION part - /// of the overhead. - /// 2. Overhead for taking up the bootloader memory. The bootloader memory has a cap on its length, mainly enforced to keep the RAM requirements + /// @dev The % following 2 resources is taken into account when calculating the % of the batch's overhead to pay. + /// 1. Overhead for taking up the bootloader memory. The bootloader memory has a cap on its length, mainly enforced to keep the RAM requirements /// for the node smaller. That is, the user needs to pay a share proportional to the length of the ABI encoding of the transaction. - /// 3. Overhead for taking up a slot for the transaction. Since each batch has the limited number of transactions in it, the user must pay + /// 2. Overhead for taking up a slot for the transaction. Since each batch has the limited number of transactions in it, the user must pay /// at least 1/MAX_TRANSACTIONS_IN_BATCH part of the overhead. function getTransactionUpfrontOverhead( - txGasLimit, - gasPerPubdataByte, txEncodeLen ) -> ret { - ret := 0 - let totalBatchOverhead := getBatchOverheadGas(gasPerPubdataByte) - debugLog("totalBatchOverhead", totalBatchOverhead) - - let overheadForCircuits := ceilDiv( - safeMul(totalBatchOverhead, txGasLimit, "ac"), - MAX_GAS_PER_TRANSACTION() - ) - ret := max(ret, overheadForCircuits) - debugLog("overheadForCircuits", overheadForCircuits) - - - let overheadForLength := ceilDiv( - safeMul(txEncodeLen, totalBatchOverhead, "ad"), - BOOTLOADER_MEMORY_FOR_TXS() - ) - ret := max(ret, overheadForLength) - debugLog("overheadForLength", overheadForLength) - - - let overheadForSlot := ceilDiv( - totalBatchOverhead, - MAX_TRANSACTIONS_IN_BATCH() + ret := max( + safeMul(txEncodeLen, MEMORY_OVERHEAD_GAS(), "iot"), + TX_SLOT_OVERHEAD_GAS() ) - ret := max(ret, overheadForSlot) - debugLog("overheadForSlot", overheadForSlot) - /// /// DEBUG SUPPORT START /// - mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 13)), totalBatchOverhead) - mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 14)), overheadForCircuits) - mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 15)), overheadForLength) - mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 16)), overheadForSlot) + mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 13)), safeMul(txEncodeLen, MEMORY_OVERHEAD_GAS(), "iot")) + mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 14)), TX_SLOT_OVERHEAD_GAS()) /// /// DEBUG SUPPORT END /// - - // In the proved batch we ensure that the gasPerPubdataByte is not zero - // to avoid the potential edge case of division by zero. In Yul, division by - // zero does not panic, but returns zero. - - if and(iszero(gasPerPubdataByte), FORBID_ZERO_GAS_PER_PUBDATA()) { - assertionError("zero gasPerPubdataByte") - } - } /// @dev A method where all panics in the nearCalls get to. @@ -2187,26 +2177,11 @@ object "Bootloader" { /// @dev Checks whether an address is an EOA (i.e. has not code deployed on it) /// @param addr The address to check function isEOA(addr) -> ret { - mstore(0, {{RIGHT_PADDED_GET_RAW_CODE_HASH_SELECTOR}}) - mstore(4, addr) - let success := call( - gas(), - ACCOUNT_CODE_STORAGE_ADDR(), - 0, - 0, - 36, - 0, - 32 - ) + ret := 0 - if iszero(success) { - // The call to the account code storage should always succeed - nearCallPanic() + if gt(addr, MAX_SYSTEM_CONTRACT_ADDR()) { + ret := iszero(getRawCodeHash(addr, false)) } - - let rawCodeHash := mload(0) - - ret := iszero(rawCodeHash) } /// @dev Calls the `payForTransaction` method of an account @@ -2911,7 +2886,7 @@ object "Bootloader" { ) } default { - // For L2 transactions, we use near call panic, it will triger the validation + // For L2 transactions, we use near call panic, it will trigger the validation // step of the transaction to fail, returning a consistent error message. nearCallPanic() } @@ -3513,19 +3488,12 @@ object "Bootloader" { /// Debug utilities /// - /// @notice A method used to prevent optimization of x by the compiler - /// @dev This method is only used for logging purposes - function nonOptimized(x) -> ret { - // value() is always 0 in bootloader context. - ret := add(mul(callvalue(),x),x) - } - /// @dev This method accepts the message and some 1-word data associated with it /// It triggers a VM hook that allows the server to observe the behavior of the system. function debugLog(msg, data) { - storeVmHookParam(0, nonOptimized(msg)) - storeVmHookParam(1, nonOptimized(data)) - setHook(nonOptimized(VM_HOOK_DEBUG_LOG())) + storeVmHookParam(0, msg) + storeVmHookParam(1, data) + setHook(VM_HOOK_DEBUG_LOG()) } /// @dev Triggers a hook that displays the returndata on the server side. @@ -3539,15 +3507,15 @@ object "Bootloader" { /// refunded to the user. This is to be used by the operator to derive the correct /// `gasUsed` in the API. function notifyAboutRefund(refund) { - storeVmHookParam(0, nonOptimized(refund)) + storeVmHookParam(0, refund) setHook(VM_NOTIFY_OPERATOR_ABOUT_FINAL_REFUND()) debugLog("refund(gas)", refund) } function notifyExecutionResult(success) { let ptr := returnDataPtr() - storeVmHookParam(0, nonOptimized(success)) - storeVmHookParam(1, nonOptimized(ptr)) + storeVmHookParam(0, success) + storeVmHookParam(1, ptr) setHook(VM_HOOK_EXECUTION_RESULT()) debugLog("execution result: success", success) @@ -3565,7 +3533,7 @@ object "Bootloader" { /// Since the slot after the transaction is not touched, /// this slot can be used in the in-circuit VM out of box. function askOperatorForRefund(gasLeft) { - storeVmHookParam(0, nonOptimized(gasLeft)) + storeVmHookParam(0, gasLeft) setHook(VM_HOOK_ASK_OPERATOR_FOR_REFUND()) } @@ -3833,14 +3801,14 @@ object "Bootloader" { // Need to prevent the compiler from optimizing out similar operations, // which may have different meaning for the offline debugging - function unoptimized(val) -> ret { + function $llvm_NoInline_llvm$_unoptimized(val) -> ret { ret := add(val, callvalue()) } /// @notice Triggers a VM hook. /// The server will recognize it and output corresponding logs. function setHook(hook) { - mstore(VM_HOOK_PTR(), unoptimized(hook)) + mstore(VM_HOOK_PTR(), $llvm_NoInline_llvm$_unoptimized(hook)) } /// @notice Sets a value to a param of the vm hook. @@ -3851,7 +3819,7 @@ object "Bootloader" { /// paramId smaller than the VM_HOOK_PARAMS() function storeVmHookParam(paramId, value) { let offset := add(VM_HOOK_PARAMS_OFFSET(), mul(32, paramId)) - mstore(offset, unoptimized(value)) + mstore(offset, $llvm_NoInline_llvm$_unoptimized(value)) } /// @dev Log key used by Executor.sol for processing. See Constants.sol::SystemLogKey enum @@ -3890,12 +3858,15 @@ object "Bootloader" { /// of the VM and the state of the operator. let NEW_BATCH_NUMBER := mload(96) - /// @notice The gas price on L1 for ETH. In the future, a trustless value will be enforced. + /// @notice The minimal price per pubdata byte in ETH that the operator agrees on. + /// In the future, a trustless value will be enforced. /// For now, this value is trusted to be fairly provided by the operator. - let L1_GAS_PRICE := mload(128) + /// It is expected of the operator to already include the L1 batch overhead costs into the value. + let FAIR_PUBDATA_PRICE := mload(128) /// @notice The minimal gas price that the operator agrees upon. /// In the future, it will have an EIP1559-like lower bound. + /// It is expected of the operator to already include the L1 batch overhead costs into the value. let FAIR_L2_GAS_PRICE := mload(160) /// @notice The expected base fee by the operator. @@ -3903,21 +3874,27 @@ object "Bootloader" { /// the operator still provides it to make sure that its data is in sync. let EXPECTED_BASE_FEE := mload(192) - validateOperatorProvidedPrices(L1_GAS_PRICE, FAIR_L2_GAS_PRICE) + // When the 1.4.1 VM launches, the old Keccak precompile will stop working. + // Thus, the first thing we need to do before any transaction starts is to upgrade + // keccak precompile to the new version. + upgradeKeccakIfNeeded() + + validateOperatorProvidedPrices(FAIR_L2_GAS_PRICE, FAIR_PUBDATA_PRICE) + - let baseFee := 0 - // This implementation of the bootloader relies on the correct version of the SystemContext - // and it can not be upgraded via a standard upgrade transaction, but needs to ensure - // correctness itself before any transaction is executed. - upgradeSystemContextIfNeeded() + let baseFee := 0 + + baseFee, GAS_PRICE_PER_PUBDATA := getFeeParams( + FAIR_PUBDATA_PRICE, + FAIR_L2_GAS_PRICE + ) // Only for the proved batch we enforce that the baseFee proposed // by the operator is equal to the expected one. For the playground batch, we allow // the operator to provide any baseFee the operator wants. - baseFee, GAS_PRICE_PER_PUBDATA := getBaseFee(L1_GAS_PRICE, FAIR_L2_GAS_PRICE) if iszero(eq(baseFee, EXPECTED_BASE_FEE)) { debugLog("baseFee", baseFee) debugLog("EXPECTED_BASE_FEE", EXPECTED_BASE_FEE) @@ -3930,20 +3907,18 @@ object "Bootloader" { - baseFee, GAS_PRICE_PER_PUBDATA := getBaseFee(L1_GAS_PRICE, FAIR_L2_GAS_PRICE) - let SHOULD_SET_NEW_BATCH := mload(224) - upgradeSystemContextIfNeeded() - - switch SHOULD_SET_NEW_BATCH - case 0 { + switch SHOULD_SET_NEW_BATCH + case 0 { unsafeOverrideBatch(NEW_BATCH_TIMESTAMP, NEW_BATCH_NUMBER, EXPECTED_BASE_FEE) } default { setNewBatch(PREV_BATCH_HASH, NEW_BATCH_TIMESTAMP, NEW_BATCH_NUMBER, EXPECTED_BASE_FEE) } + GAS_PRICE_PER_PUBDATA := gasPerPubdataFromBaseFee(EXPECTED_BASE_FEE, FAIR_PUBDATA_PRICE) + } @@ -3957,7 +3932,7 @@ object "Bootloader" { let txPtr := TX_DESCRIPTION_BEGIN_BYTE() - // At the COMPRESSED_BYTECODES_BEGIN_BYTE() the pointer to the newest bytecode to be published + // At the COMPRESSED_BYTECODES_BEGIN_BYTE() the pointer to the newest bytecode to be published // is stored. mstore(COMPRESSED_BYTECODES_BEGIN_BYTE(), add(COMPRESSED_BYTECODES_BEGIN_BYTE(), 32)) @@ -3966,10 +3941,10 @@ object "Bootloader" { mstore(add(PRIORITY_TXS_L1_DATA_BEGIN_BYTE(), 32), 0) // Iterating through transaction descriptions - let transactionIndex := 0 - for { + let transactionIndex := 0 + for { let resultPtr := RESULT_START_PTR() - } lt(txPtr, TXS_IN_BATCH_LAST_PTR()) { + } lt(txPtr, TXS_IN_BATCH_LAST_PTR()) { txPtr := add(txPtr, TX_DESCRIPTION_SIZE()) resultPtr := add(resultPtr, 32) transactionIndex := add(transactionIndex, 1) @@ -3978,12 +3953,12 @@ object "Bootloader" { debugLog("txPtr", txPtr) debugLog("execute", execute) - + if iszero(execute) { // We expect that all transactions that are executed // are continuous in the array. break - } + } let txDataOffset := mload(add(txPtr, 32)) @@ -4007,7 +3982,7 @@ object "Bootloader" { } validateTypedTxStructure(add(txDataOffset, 32)) - + { debugLog("ethCall", 0) @@ -4036,7 +4011,7 @@ object "Bootloader" { // Increment tx index within the system. considerNewTx() } - + // The bootloader doesn't have to pay anything setPricePerPubdataByte(0) @@ -4045,7 +4020,7 @@ object "Bootloader" { setTxOrigin(0) setGasPrice(0) - // Transfering all the ETH received in the block to the operator + // Transferring all the ETH received in the block to the operator directETHTransfer( selfbalance(), OPERATOR_ADDRESS @@ -4054,11 +4029,11 @@ object "Bootloader" { // Hook that notifies that the operator should provide final information for the batch setHook(VM_HOOK_FINAL_L2_STATE_INFO()) - // Each batch typically ends with a special block which contains no transactions. + // Each batch typically ends with a special block which contains no transactions. // So we need to have this method to reflect it in the system contracts too. // // The reason is that as of now our node requires that each storage write (event, etc) belongs to a particular - // L2 block. In case a batch is sealed by timeout (i.e. the resources of the batch have not been exhaused, but we need + // L2 block. In case a batch is sealed by timeout (i.e. the resources of the batch have not been exhausted, but we need // to seal it to assure timely finality), we need to process sending funds to the operator *after* the last // non-empty L2 block has been already sealed. We can not override old L2 blocks, so we need to create a new empty "fictive" block for it. // diff --git a/etc/system-contracts/bootloader/test_infra/Cargo.lock b/etc/system-contracts/bootloader/test_infra/Cargo.lock index c3d586f0..a6ba2440 100644 --- a/etc/system-contracts/bootloader/test_infra/Cargo.lock +++ b/etc/system-contracts/bootloader/test_infra/Cargo.lock @@ -73,35 +73,43 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if 1.0.0", + "getrandom 0.2.11", "once_cell", "version_check", + "zerocopy", ] [[package]] name = "aho-corasick" -version = "1.0.5" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -182,24 +190,34 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "async-trait" -version = "0.1.73" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "atoi" -version = "0.4.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616896e05fc0e2649463a93a15183c6a16bf03413a7af88ef1285ddedfa9cda5" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" dependencies = [ "num-traits", ] +[[package]] +name = "atomic-write-file" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436" +dependencies = [ + "nix", + "rand 0.8.5", +] + [[package]] name = "atty" version = "0.2.14" @@ -247,6 +265,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" version = "0.13.1" @@ -255,9 +279,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.3" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "base64ct" @@ -265,14 +289,43 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" + +[[package]] +name = "bellman_ce" +version = "0.3.2" +source = "git+https://github.com/matter-labs/bellman?branch=dev#5520aa2274afe73d281373c92b007a2ecdebfbea" +dependencies = [ + "arrayvec 0.7.4", + "bit-vec", + "blake2s_const 0.6.0 (git+https://github.com/matter-labs/bellman?branch=dev)", + "blake2s_simd", + "byteorder", + "cfg-if 1.0.0", + "crossbeam 0.7.3", + "futures", + "hex", + "lazy_static", + "num_cpus", + "pairing_ce 0.28.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.6", + "serde", + "smallvec", + "tiny-keccak 1.5.0", +] + [[package]] name = "bellman_ce" version = "0.3.2" -source = "git+https://github.com/matter-labs/bellman?branch=dev#bbac0559fdc440b2331eca1c347a30559a3dd969" +source = "git+https://github.com/matter-labs/bellman?branch=snark-wrapper#e01e5fa08a97a113e76ec8a69d06fe6cc2c82d17" dependencies = [ "arrayvec 0.7.4", "bit-vec", - "blake2s_const", + "blake2s_const 0.6.0 (git+https://github.com/matter-labs/bellman?branch=snark-wrapper)", "blake2s_simd", "byteorder", "cfg-if 1.0.0", @@ -281,7 +334,7 @@ dependencies = [ "hex", "lazy_static", "num_cpus", - "pairing_ce", + "pairing_ce 0.28.5 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.6", "serde", "smallvec", @@ -290,11 +343,11 @@ dependencies = [ [[package]] name = "bigdecimal" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1e50562e37200edf7c6c43e54a08e64a5553bfb59d9c297d5572512aa517256" +checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa" dependencies = [ - "num-bigint 0.3.3", + "num-bigint 0.4.4", "num-integer", "num-traits", "serde", @@ -322,12 +375,12 @@ dependencies = [ "lazycell", "peeking_take_while", "prettyplease", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "regex", "rustc-hash", "shlex", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -347,9 +400,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -395,6 +451,14 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "blake2" +version = "0.10.6" +source = "git+https://github.com/RustCrypto/hashes.git?rev=1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e#1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e" +dependencies = [ + "digest 0.10.7", +] + [[package]] name = "blake2-rfc_bellman_edition" version = "0.0.1" @@ -409,7 +473,17 @@ dependencies = [ [[package]] name = "blake2s_const" version = "0.6.0" -source = "git+https://github.com/matter-labs/bellman?branch=dev#bbac0559fdc440b2331eca1c347a30559a3dd969" +source = "git+https://github.com/matter-labs/bellman?branch=dev#5520aa2274afe73d281373c92b007a2ecdebfbea" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq", +] + +[[package]] +name = "blake2s_const" +version = "0.6.0" +source = "git+https://github.com/matter-labs/bellman?branch=snark-wrapper#e01e5fa08a97a113e76ec8a69d06fe6cc2c82d17" dependencies = [ "arrayref", "arrayvec 0.5.2", @@ -462,11 +536,78 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" +[[package]] +name = "blst" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c94087b935a822949d3291a9989ad2b2051ea141eda0fd4e478a75f6aa3e604b" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "boojum" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#93b5e0f0dbff0a9b606d9025e207c8405c141bd9" +dependencies = [ + "arrayvec 0.7.4", + "bincode", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", + "const_format", + "convert_case", + "crossbeam 0.8.2", + "crypto-bigint 0.5.5", + "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-boojum.git?branch=main)", + "derivative", + "ethereum-types 0.14.1", + "firestorm", + "itertools 0.10.5", + "lazy_static", + "num-modular", + "num_cpus", + "packed_simd", + "pairing_ce 0.28.5 (git+https://github.com/matter-labs/pairing.git)", + "rand 0.8.5", + "rayon", + "serde", + "sha2 0.10.8", + "sha3 0.10.6", + "smallvec", + "unroll", +] + +[[package]] +name = "borsh" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d4d6dafc1a3bb54687538972158f07b2c948bc57d5890df22c0739098b3028" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4918709cc4dd777ad2b6303ed03cb37f3ca0ccede8c1b0d28ac6db8f4710e0" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.1", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", + "syn_derive", +] + [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byte-slice-cast" @@ -474,17 +615,39 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +[[package]] +name = "bytecheck" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "bytecount" -version = "0.6.3" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c" +checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" @@ -514,9 +677,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" +checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" dependencies = [ "serde", ] @@ -565,11 +728,17 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" -version = "0.4.30" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", @@ -577,7 +746,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -589,12 +758,40 @@ dependencies = [ "generic-array", ] +[[package]] +name = "circuit_definitions" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#fb47657ae3b6ff6e4bb5199964d3d37212978200" +dependencies = [ + "crossbeam 0.8.2", + "derivative", + "seq-macro", + "serde", + "snark_wrapper", + "zk_evm 1.4.0", + "zkevm_circuits 1.4.0", +] + +[[package]] +name = "circuit_definitions" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1#6db7c01717d157945f0f2939119dbd8a170de6bc" +dependencies = [ + "crossbeam 0.8.2", + "derivative", + "seq-macro", + "serde", + "snark_wrapper", + "zk_evm 1.4.1", + "zkevm_circuits 1.4.1", +] + [[package]] name = "circuit_testing" version = "0.1.0" source = "git+https://github.com/matter-labs/era-circuit_testing.git?branch=main#164c0adac85be39ee44bd9456b2b91cdede5af80" dependencies = [ - "bellman_ce", + "bellman_ce 0.3.2 (git+https://github.com/matter-labs/bellman?branch=dev)", ] [[package]] @@ -635,14 +832,14 @@ dependencies = [ [[package]] name = "codegen" version = "0.1.0" -source = "git+https://github.com/matter-labs/solidity_plonk_verifier.git?branch=dev#07954802c13fb087efb5874c2ce521f843d614fd" +source = "git+https://github.com/matter-labs/solidity_plonk_verifier.git?branch=dev#82f96b7156551087f1c9bfe4f0ea68845b6debfc" dependencies = [ "ethereum-types 0.14.1", - "franklin-crypto", + "franklin-crypto 0.0.5 (git+https://github.com/matter-labs/franklin-crypto?branch=dev)", "handlebars", "hex", "paste", - "rescue_poseidon", + "rescue_poseidon 0.4.1 (git+https://github.com/matter-labs/rescue-poseidon)", "serde", "serde_derive", "serde_json", @@ -659,21 +856,45 @@ dependencies = [ [[package]] name = "colored" -version = "2.0.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" dependencies = [ - "is-terminal", "lazy_static", - "windows-sys", + "windows-sys 0.48.0", ] +[[package]] +name = "compile-fmt" +version = "0.1.0" +source = "git+https://github.com/slowli/compile-fmt.git?rev=c6a41c846c9a6f70cdba4b44c9f3922242ffcf12#c6a41c846c9a6f70cdba4b44c9f3922242ffcf12" + [[package]] name = "const-oid" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +[[package]] +name = "const_format" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "unicode-xid 0.2.4", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -688,9 +909,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -698,33 +919,33 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] [[package]] name = "crc" -version = "2.1.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23" +checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" dependencies = [ "crc-catalog", ] [[package]] name = "crc-catalog" -version = "1.1.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crossbeam" @@ -883,6 +1104,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.6" @@ -916,10 +1149,21 @@ dependencies = [ [[package]] name = "cs_derive" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3#e819d15b107a06a746299f98bbd9802e26eeb348" +source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#93b5e0f0dbff0a9b606d9025e207c8405c141bd9" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "cs_derive" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3#ed8ab8984cae05d00d9d62196753c8d40df47c7d" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "serde", "syn 1.0.109", @@ -934,6 +1178,64 @@ dependencies = [ "cipher", ] +[[package]] +name = "curl" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2 0.4.10", + "winapi", +] + +[[package]] +name = "curl-sys" +version = "0.4.70+curl-8.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c0333d8849afe78a4c8102a429a446bfdd055832af071945520e835ae2d841e" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "windows-sys 0.48.0", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + [[package]] name = "darling" version = "0.13.4" @@ -952,7 +1254,7 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "strsim 0.10.0", "syn 1.0.109", @@ -976,10 +1278,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.14.0", + "hashbrown 0.14.3", "lock_api", "once_cell", - "parking_lot_core 0.9.8", + "parking_lot_core", ] [[package]] @@ -1002,11 +1304,25 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + [[package]] name = "deranged" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", +] [[package]] name = "derivative" @@ -1014,7 +1330,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] @@ -1026,7 +1342,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "rustc_version", "syn 1.0.109", @@ -1048,35 +1364,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", + "const-oid", "crypto-common", "subtle", ] [[package]] -name = "dirs" -version = "4.0.0" +name = "dotenvy" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "dtoa" @@ -1090,15 +1387,54 @@ version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der", - "elliptic-curve", - "rfc6979", - "signature", + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", ] [[package]] -name = "either" -version = "1.9.0" +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.8", + "digest 0.10.7", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", + "signature 2.2.0", + "spki 0.7.3", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8 0.10.2", + "signature 2.2.0", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "either" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" dependencies = [ @@ -1111,16 +1447,35 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ - "base16ct", - "crypto-bigint", - "der", + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array", + "group 0.12.1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.5", "digest 0.10.7", - "ff", + "ff 0.13.0", "generic-array", - "group", - "pkcs8", + "group 0.13.0", + "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.3", "subtle", "zeroize", ] @@ -1156,6 +1511,19 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "envy" version = "0.4.2" @@ -1173,32 +1541,32 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.3" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "errno-dragonfly", "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] -name = "errno-dragonfly" -version = "0.1.2" +name = "error-chain" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" dependencies = [ - "cc", - "libc", + "version_check", ] [[package]] -name = "error-chain" -version = "0.12.4" +name = "etcetera" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" dependencies = [ - "version_check", + "cfg-if 1.0.0", + "home", + "windows-sys 0.48.0", ] [[package]] @@ -1213,7 +1581,7 @@ dependencies = [ "regex", "serde", "serde_json", - "sha3 0.10.6", + "sha3 0.10.8", "thiserror", "uint", ] @@ -1268,7 +1636,7 @@ dependencies = [ "fixed-hash 0.8.0", "impl-rlp", "impl-serde 0.4.0", - "primitive-types 0.12.1", + "primitive-types 0.12.2", "uint", ] @@ -1280,9 +1648,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "ff" @@ -1294,6 +1662,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "ff_ce" version = "0.14.3" @@ -1316,12 +1694,18 @@ dependencies = [ "num-bigint 0.4.4", "num-integer", "num-traits", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "serde", "syn 1.0.109", ] +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + [[package]] name = "findshlibs" version = "0.10.2" @@ -1340,6 +1724,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" +[[package]] +name = "firestorm" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c5f6c2c942da57e2aaaa84b8a521489486f14e75e7fa91dab70aba913975f98" + [[package]] name = "fixed-hash" version = "0.7.0" @@ -1364,6 +1754,23 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "futures-core", + "futures-sink", + "spin 0.9.8", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1387,9 +1794,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -1397,19 +1804,51 @@ dependencies = [ [[package]] name = "franklin-crypto" version = "0.0.5" -source = "git+https://github.com/matter-labs/franklin-crypto?branch=dev#5922873d25ecec827cd60420ca8cd84a188bb965" +source = "git+https://github.com/matter-labs/franklin-crypto?branch=dev#5695d07c7bc604c2c39a27712ffac171d39ee1ed" +dependencies = [ + "arr_macro", + "bellman_ce 0.3.2 (git+https://github.com/matter-labs/bellman?branch=dev)", + "bit-vec", + "blake2 0.9.2", + "blake2-rfc_bellman_edition", + "blake2s_simd", + "byteorder", + "digest 0.9.0", + "hex", + "indexmap 1.9.3", + "itertools 0.10.5", + "lazy_static", + "num-bigint 0.4.4", + "num-derive 0.2.5", + "num-integer", + "num-traits", + "rand 0.4.6", + "serde", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", + "splitmut", + "tiny-keccak 1.5.0", +] + +[[package]] +name = "franklin-crypto" +version = "0.0.5" +source = "git+https://github.com/matter-labs/franklin-crypto?branch=snark_wrapper#2546c63b91b59bdb0ad342d26f03fb57477550b2" dependencies = [ "arr_macro", - "bellman_ce", + "bellman_ce 0.3.2 (git+https://github.com/matter-labs/bellman?branch=snark-wrapper)", "bit-vec", "blake2 0.9.2", "blake2-rfc_bellman_edition", "blake2s_simd", + "boojum", "byteorder", + "derivative", "digest 0.9.0", "hex", "indexmap 1.9.3", - "itertools", + "itertools 0.10.5", "lazy_static", "num-bigint 0.4.4", "num-derive 0.2.5", @@ -1444,9 +1883,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" dependencies = [ "futures-channel", "futures-core", @@ -1459,9 +1898,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", "futures-sink", @@ -1469,15 +1908,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" dependencies = [ "futures-core", "futures-task", @@ -1487,43 +1926,43 @@ dependencies = [ [[package]] name = "futures-intrusive" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.11.2", + "parking_lot", ] [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-timer" @@ -1533,9 +1972,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-channel", "futures-core", @@ -1557,6 +1996,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -1572,9 +2012,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if 1.0.0", "libc", @@ -1583,9 +2023,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "glob" @@ -1599,16 +2039,27 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "ff", + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", "rand_core 0.6.4", "subtle", ] [[package]] name = "h2" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" dependencies = [ "bytes", "fnv", @@ -1616,7 +2067,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 1.9.3", + "indexmap 2.1.0", "slab", "tokio", "tokio-util", @@ -1625,9 +2076,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.4.0" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39b3bc2a8f715298032cf5087e58573809374b08160aa7d750582bdb82d2683" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" dependencies = [ "log", "pest", @@ -1637,34 +2088,32 @@ dependencies = [ "thiserror", ] -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash 0.7.6", -] - [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.7", +] [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash 0.8.6", + "allocator-api2", +] [[package]] name = "hashlink" -version = "0.7.0" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.11.2", + "hashbrown 0.14.3", ] [[package]] @@ -1673,7 +2122,7 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ - "base64 0.21.3", + "base64 0.21.5", "bytes", "headers-core", "http", @@ -1720,9 +2169,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -1758,6 +2207,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "hostname" version = "0.3.1" @@ -1771,9 +2229,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", @@ -1782,9 +2240,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -1826,7 +2284,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.9", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -1835,9 +2293,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http", @@ -1862,16 +2320,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows", + "windows-core", ] [[package]] @@ -1899,6 +2357,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "impl-codec" version = "0.5.1" @@ -1914,7 +2382,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" dependencies = [ - "parity-scale-codec 3.6.5", + "parity-scale-codec 3.6.9", ] [[package]] @@ -1950,7 +2418,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] @@ -1967,34 +2435,28 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.0", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if 1.0.0", + "hashbrown 0.14.3", ] [[package]] name = "ipnet" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "ipnetwork" -version = "0.17.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c3eaab3ac0ede60ffa41add21970a7df7d91772c03383aac6c2c3d53cc716b" +checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" +dependencies = [ + "serde", +] [[package]] name = "is-terminal" @@ -2002,9 +2464,9 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi 0.3.3", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2016,26 +2478,44 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -2062,9 +2542,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" dependencies = [ "cfg-if 1.0.0", - "ecdsa", - "elliptic-curve", - "sha2 0.10.6", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.8", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if 1.0.0", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "once_cell", + "sha2 0.10.8", + "signature 2.2.0", ] [[package]] @@ -2081,6 +2575,9 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] [[package]] name = "lazycell" @@ -2090,9 +2587,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libloading" @@ -2104,6 +2601,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "librocksdb-sys" version = "0.11.0+8.1.1" @@ -2118,6 +2621,17 @@ dependencies = [ "libz-sys", ] +[[package]] +name = "libsqlite3-sys" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + [[package]] name = "libz-sys" version = "1.1.12" @@ -2125,41 +2639,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", + "libc", "pkg-config", "vcpkg", ] [[package]] name = "linkme" -version = "0.3.15" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f948366ad5bb46b5514ba7a7a80643726eef08b06632592699676748c8bc33b" +checksum = "b1e6b0bb9ca88d3c5ae88240beb9683821f903b824ee8381ef9ab4e8522fbfa9" dependencies = [ "linkme-impl", ] [[package]] name = "linkme-impl" -version = "0.3.15" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc28438cad73dcc90ff3466fc329a9252b1b8ba668eb0d5668ba97088cf4eef0" +checksum = "b3b3f61e557a617ec6ba36c79431e1f3b5e100d67cfbdb61ed6ef384298af016" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "linux-raw-sys" -version = "0.4.5" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg 1.1.0", "scopeguard", @@ -2171,6 +2686,38 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +[[package]] +name = "logos" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c000ca4d908ff18ac99b93a062cb8958d331c3220719c52e77cb19cc6ac5d2c1" +dependencies = [ + "logos-derive", +] + +[[package]] +name = "logos-codegen" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc487311295e0002e452025d6b580b77bb17286de87b57138f3b5db711cded68" +dependencies = [ + "beef", + "fnv", + "proc-macro2 1.0.70", + "quote 1.0.33", + "regex-syntax 0.6.29", + "syn 2.0.40", +] + +[[package]] +name = "logos-derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbfc0d229f1f42d790440136d941afd806bc9e949e2bcb8faa813b0f00d1267e" +dependencies = [ + "logos-codegen", +] + [[package]] name = "match_cfg" version = "0.1.0" @@ -2194,18 +2741,19 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "md-5" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ + "cfg-if 1.0.0", "digest 0.10.7", ] [[package]] name = "memchr" -version = "2.6.3" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2231,7 +2779,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", "metrics-macros", "portable-atomic", ] @@ -2242,22 +2790,45 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] -name = "mime" -version = "0.3.17" +name = "miette" +version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e" +dependencies = [ + "miette-derive", + "once_cell", + "thiserror", + "unicode-width", +] [[package]] -name = "mini-moka" -version = "0.10.2" +name = "miette-derive" +version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e0b72e7c9042467008b10279fc732326bd605459ae03bda88825909dd19b56" +checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mini-moka" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e0b72e7c9042467008b10279fc732326bd605459ae03bda88825909dd19b56" dependencies = [ "crossbeam-channel 0.5.8", "crossbeam-utils 0.8.16", @@ -2285,13 +2856,44 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "multivm" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" +dependencies = [ + "anyhow", + "hex", + "itertools 0.10.5", + "once_cell", + "thiserror", + "tracing", + "vise", + "zk_evm 1.3.1", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", + "zk_evm 1.4.0", + "zk_evm 1.4.1", + "zkevm_test_harness 1.4.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0)", + "zkevm_test_harness 1.4.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1)", + "zksync_contracts", + "zksync_state", + "zksync_system_constants", + "zksync_types", + "zksync_utils", ] [[package]] @@ -2312,6 +2914,17 @@ dependencies = [ "tempfile", ] +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.4.1", + "cfg-if 1.0.0", + "libc", +] + [[package]] name = "nodrop" version = "0.1.14" @@ -2375,7 +2988,6 @@ dependencies = [ "autocfg 1.1.0", "num-integer", "num-traits", - "serde", ] [[package]] @@ -2390,6 +3002,23 @@ dependencies = [ "serde", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + [[package]] name = "num-complex" version = "0.3.1" @@ -2397,7 +3026,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" dependencies = [ "num-traits", - "serde", ] [[package]] @@ -2407,6 +3035,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", + "serde", ] [[package]] @@ -2426,7 +3055,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] @@ -2452,6 +3081,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-modular" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.3.2" @@ -2462,7 +3101,6 @@ dependencies = [ "num-bigint 0.3.3", "num-integer", "num-traits", - "serde", ] [[package]] @@ -2475,15 +3113,17 @@ dependencies = [ "num-bigint 0.4.4", "num-integer", "num-traits", + "serde", ] [[package]] name = "num-traits" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg 1.1.0", + "libm", ] [[package]] @@ -2492,7 +3132,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi 0.3.3", "libc", ] @@ -2511,10 +3151,10 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.66", + "proc-macro-crate 1.3.1", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -2528,9 +3168,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -2540,11 +3180,11 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.57" +version = "0.10.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" +checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "cfg-if 1.0.0", "foreign-types", "libc", @@ -2559,9 +3199,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -2572,9 +3212,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.93" +version = "0.9.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" +checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" dependencies = [ "cc", "libc", @@ -2582,6 +3222,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + [[package]] name = "os_info" version = "3.7.0" @@ -2599,6 +3248,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "packed_simd" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f9f08af0c877571712e2e3e686ad79efad9657dbf0f7c3c8ba943ff6c38932d" +dependencies = [ + "cfg-if 1.0.0", + "num-traits", +] + [[package]] name = "pairing_ce" version = "0.28.5" @@ -2612,6 +3271,30 @@ dependencies = [ "serde", ] +[[package]] +name = "pairing_ce" +version = "0.28.5" +source = "git+https://github.com/matter-labs/pairing.git?rev=f55393fd366596eac792d78525d26e9c4d6ed1ca#f55393fd366596eac792d78525d26e9c4d6ed1ca" +dependencies = [ + "byteorder", + "cfg-if 1.0.0", + "ff_ce", + "rand 0.4.6", + "serde", +] + +[[package]] +name = "pairing_ce" +version = "0.28.5" +source = "git+https://github.com/matter-labs/pairing.git#f55393fd366596eac792d78525d26e9c4d6ed1ca" +dependencies = [ + "byteorder", + "cfg-if 1.0.0", + "ff_ce", + "rand 0.4.6", + "serde", +] + [[package]] name = "parity-crypto" version = "0.9.0" @@ -2652,15 +3335,15 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.5" +version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" +checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" dependencies = [ "arrayvec 0.7.4", "bitvec 1.0.1", "byte-slice-cast", "impl-trait-for-tuples", - "parity-scale-codec-derive 3.6.5", + "parity-scale-codec-derive 3.6.9", "serde", ] @@ -2670,35 +3353,24 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.66", + "proc-macro-crate 1.3.1", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.5" +version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" +checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.66", + "proc-macro-crate 2.0.1", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - [[package]] name = "parking_lot" version = "0.12.1" @@ -2706,34 +3378,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.8", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.3.5", + "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -2780,17 +3438,26 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.3" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33" +checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" dependencies = [ "memchr", "thiserror", @@ -2799,9 +3466,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.3" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bee7be22ce7918f641a33f08e3f43388c7656772244e2bbb2477f44cc9021a" +checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2" dependencies = [ "pest", "pest_generator", @@ -2809,26 +3476,36 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.3" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1511785c5e98d79a05e8a6bc34b4ac2168a0e3e92161862030ad84daa223141" +checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "pest_meta" -version = "2.7.3" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42f0394d3123e33353ca5e1e89092e533d2cc490389f2bd6131c43c634ebc5f" +checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" dependencies = [ "once_cell", "pest", - "sha2 0.10.6", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.1.0", ] [[package]] @@ -2846,9 +3523,9 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -2863,14 +3540,35 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der 0.7.8", + "pkcs8 0.10.2", + "spki 0.7.3", +] + [[package]] name = "pkcs8" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der", - "spki", + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.8", + "spki 0.7.3", ] [[package]] @@ -2879,11 +3577,23 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portable-atomic" -version = "1.4.3" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[package]] +name = "powerfmt" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31114a898e107c51bb1609ffaf55a0e011cf6a4d7f1170d0015a165082c0338b" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" @@ -2897,8 +3607,8 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ - "proc-macro2 1.0.66", - "syn 2.0.31", + "proc-macro2 1.0.70", + "syn 2.0.40", ] [[package]] @@ -2916,9 +3626,9 @@ dependencies = [ [[package]] name = "primitive-types" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3486ccba82358b11a77516035647c34ba167dfa53312630de83b12bd4f3d66" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash 0.8.0", "impl-codec 0.6.0", @@ -2934,7 +3644,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", ] [[package]] @@ -2944,7 +3664,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", "version_check", @@ -2956,7 +3676,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "version_check", ] @@ -2973,14 +3693,14 @@ version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" dependencies = [ - "unicode-xid", + "unicode-xid 0.1.0", ] [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -2993,7 +3713,7 @@ checksum = "3c99afa9a01501019ac3a14d71d9f94050346f55ca471ce90c799a15c58f61e2" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.1", + "parking_lot", "prometheus-client-derive-encode", ] @@ -3003,9 +3723,126 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + +[[package]] +name = "prost" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" +dependencies = [ + "bytes", + "heck 0.4.1", + "itertools 0.11.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.40", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + +[[package]] +name = "prost-reflect" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "057237efdb71cf4b3f9396302a3d6599a92fa94063ba537b66130980ea9909f3" +dependencies = [ + "base64 0.21.5", + "logos", + "miette", + "once_cell", + "prost", + "prost-types", + "serde", + "serde-value", +] + +[[package]] +name = "prost-types" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" +dependencies = [ + "prost", +] + +[[package]] +name = "protox" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00bb76c5f6221de491fe2c8f39b106330bbd9762c6511119c07940e10eb9ff11" +dependencies = [ + "bytes", + "miette", + "prost", + "prost-reflect", + "prost-types", + "protox-parse", + "thiserror", +] + +[[package]] +name = "protox-parse" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4581f441c58863525a3e6bec7b8de98188cf75239a56c725a3e7288450a33f" +dependencies = [ + "logos", + "miette", + "prost-types", + "thiserror", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 1.0.109", ] [[package]] @@ -3019,6 +3856,15 @@ dependencies = [ "unicase", ] +[[package]] +name = "quick-protobuf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" +dependencies = [ + "byteorder", +] + [[package]] name = "quote" version = "0.6.13" @@ -3034,7 +3880,7 @@ version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", ] [[package]] @@ -3163,7 +4009,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", ] [[package]] @@ -3239,9 +4085,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -3249,14 +4095,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel 0.5.8", "crossbeam-deque 0.8.3", "crossbeam-utils 0.8.16", - "num_cpus", ] [[package]] @@ -3270,43 +4114,23 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.16" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom 0.2.10", - "redox_syscall 0.2.16", - "thiserror", -] - [[package]] name = "regex" -version = "1.9.5" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.8", - "regex-syntax 0.7.5", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", ] [[package]] @@ -3320,13 +4144,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.8" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", ] [[package]] @@ -3337,17 +4161,26 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.5" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rend" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" +checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd" +dependencies = [ + "bytecheck", +] [[package]] name = "reqwest" -version = "0.11.20" +version = "0.11.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" dependencies = [ - "base64 0.21.3", + "base64 0.21.5", "bytes", "encoding_rs", "futures-core", @@ -3371,6 +4204,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", + "system-configuration", "tokio", "tokio-native-tls", "tokio-rustls", @@ -3386,13 +4220,35 @@ dependencies = [ [[package]] name = "rescue_poseidon" version = "0.4.1" -source = "git+https://github.com/matter-labs/rescue-poseidon#f611a3353e48cf42153e44d89ed90da9bc5934e8" +source = "git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2#2e5e8afb152adc326fcf776a71ad3735fa7f3186" +dependencies = [ + "addchain", + "arrayvec 0.7.4", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "derivative", + "franklin-crypto 0.0.5 (git+https://github.com/matter-labs/franklin-crypto?branch=snark_wrapper)", + "log", + "num-bigint 0.3.3", + "num-integer", + "num-iter", + "num-traits", + "rand 0.4.6", + "serde", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "rescue_poseidon" +version = "0.4.1" +source = "git+https://github.com/matter-labs/rescue-poseidon#d059b5042df5ed80e151f05751410b524a54d16c" dependencies = [ "addchain", "arrayvec 0.7.4", - "blake2 0.10.6", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder", - "franklin-crypto", + "franklin-crypto 0.0.5 (git+https://github.com/matter-labs/franklin-crypto?branch=dev)", "num-bigint 0.3.3", "num-integer", "num-iter", @@ -3409,24 +4265,33 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ - "crypto-bigint", + "crypto-bigint 0.4.9", "hmac 0.12.1", "zeroize", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle", +] + [[package]] name = "ring" -version = "0.16.20" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" dependencies = [ "cc", + "getrandom 0.2.11", "libc", - "once_cell", - "spin", + "spin 0.9.8", "untrusted", - "web-sys", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -3440,6 +4305,35 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "rkyv" +version = "0.7.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5" +dependencies = [ + "bitvec 1.0.1", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "rlp" version = "0.5.2" @@ -3460,6 +4354,42 @@ dependencies = [ "librocksdb-sys", ] +[[package]] +name = "rsa" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "signature 2.2.0", + "spki 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "rust_decimal" +version = "1.33.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4" +dependencies = [ + "arrayvec 0.7.4", + "borsh", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -3489,22 +4419,22 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.11" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "rustls" -version = "0.21.7" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", "ring", @@ -3514,18 +4444,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.3", + "base64 0.21.5", ] [[package]] name = "rustls-webpki" -version = "0.101.4" +version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ "ring", "untrusted", @@ -3539,9 +4469,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "salsa20" @@ -3567,7 +4497,7 @@ version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3594,24 +4524,44 @@ dependencies = [ [[package]] name = "sct" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ "ring", "untrusted", ] +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "sec1" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ - "base16ct", - "der", + "base16ct 0.1.1", + "der 0.6.1", + "generic-array", + "pkcs8 0.9.0", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.8", "generic-array", - "pkcs8", + "pkcs8 0.10.2", "subtle", "zeroize", ] @@ -3678,18 +4628,18 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" dependencies = [ "serde", ] [[package]] name = "sentry" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e95efd0cefa32028cdb9766c96de71d96671072f9fb494dc9fb84c0ef93e52b" +checksum = "6ce4b57f1b521f674df7a1d200be8ff5d74e3712020ee25b553146657b5377d5" dependencies = [ "httpdate", "native-tls", @@ -3706,9 +4656,9 @@ dependencies = [ [[package]] name = "sentry-backtrace" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac2bac6f310c4c4c4bb094d1541d32ae497f8c5c23405e85492cefdfe0971a9" +checksum = "58cc8d4e04a73de8f718dc703943666d03f25d3e9e4d0fb271ca0b8c76dfa00e" dependencies = [ "backtrace", "once_cell", @@ -3718,9 +4668,9 @@ dependencies = [ [[package]] name = "sentry-contexts" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c3e17295cecdbacf66c5bd38d6e1147e09e1e9d824d2d5341f76638eda02a3a" +checksum = "6436c1bad22cdeb02179ea8ef116ffc217797c028927def303bc593d9320c0d1" dependencies = [ "hostname", "libc", @@ -3732,9 +4682,9 @@ dependencies = [ [[package]] name = "sentry-core" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8339474f587f36cb110fa1ed1b64229eea6d47b0b886375579297b7e47aeb055" +checksum = "901f761681f97db3db836ef9e094acdd8756c40215326c194201941947164ef1" dependencies = [ "once_cell", "rand 0.8.5", @@ -3745,9 +4695,9 @@ dependencies = [ [[package]] name = "sentry-debug-images" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c11e7d2b809b06497a18a2e60f513206462ae2db27081dfb7be9ade1f329cc8" +checksum = "afdb263e73d22f39946f6022ed455b7561b22ff5553aca9be3c6a047fa39c328" dependencies = [ "findshlibs", "once_cell", @@ -3756,9 +4706,9 @@ dependencies = [ [[package]] name = "sentry-panic" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875b69f506da75bd664029eafb05f8934297d2990192896d17325f066bd665b7" +checksum = "74fbf1c163f8b6a9d05912e1b272afa27c652e8b47ea60cb9a57ad5e481eea99" dependencies = [ "sentry-backtrace", "sentry-core", @@ -3766,9 +4716,9 @@ dependencies = [ [[package]] name = "sentry-tracing" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89feead9bdd116f8035e89567651340fc382db29240b6c55ef412078b08d1aa3" +checksum = "82eabcab0a047040befd44599a1da73d3adb228ff53b5ed9795ae04535577704" dependencies = [ "sentry-backtrace", "sentry-core", @@ -3778,13 +4728,13 @@ dependencies = [ [[package]] name = "sentry-types" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99dc599bd6646884fc403d593cdcb9816dd67c50cff3271c01ff123617908dcd" +checksum = "da956cca56e0101998c8688bc65ce1a96f00673a0e58e663664023d4c7911e82" dependencies = [ "debugid", - "getrandom 0.2.10", "hex", + "rand 0.8.5", "serde", "serde_json", "thiserror", @@ -3793,31 +4743,47 @@ dependencies = [ "uuid", ] +[[package]] +name = "seq-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" + [[package]] name = "serde" -version = "1.0.188" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "serde_json" -version = "1.0.105" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3854,27 +4820,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ "darling", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.7", -] - [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -3897,8 +4852,18 @@ dependencies = [ [[package]] name = "sha2" version = "0.10.6" +source = "git+https://github.com/RustCrypto/hashes.git?rev=1731ced4a116d61ba9dc6ee6d0f38fb8102e357a#1731ced4a116d61ba9dc6ee6d0f38fb8102e357a" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -3920,8 +4885,17 @@ dependencies = [ [[package]] name = "sha3" version = "0.10.6" +source = "git+https://github.com/RustCrypto/hashes.git?rev=7a187e934c1f6c68e4b4e5cf37541b7a0d64d303#7a187e934c1f6c68e4b4e5cf37541b7a0d64d303" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sha3" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ "digest 0.10.7", "keccak", @@ -3929,9 +4903,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] @@ -3961,6 +4935,22 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "skeptic" version = "0.13.7" @@ -3987,15 +4977,28 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +dependencies = [ + "serde", +] + +[[package]] +name = "snark_wrapper" +version = "0.1.0" +source = "git+https://github.com/matter-labs/snark-wrapper.git?branch=main#42661a9ff9d00853441589679c101f71e3785f55" +dependencies = [ + "derivative", + "rand 0.4.6", + "rescue_poseidon 0.4.1 (git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2)", +] [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", "winapi", @@ -4003,12 +5006,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -4017,6 +5020,15 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.6.0" @@ -4024,7 +5036,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", - "der", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.8", ] [[package]] @@ -4035,117 +5057,231 @@ checksum = "c85070f382340e8b23a75808e83573ddf65f9ad9143df9573ca37c1ed2ee956a" [[package]] name = "sqlformat" -version = "0.1.8" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" +checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" dependencies = [ - "itertools", + "itertools 0.12.0", "nom", "unicode_categories", ] [[package]] name = "sqlx" -version = "0.5.13" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551873805652ba0d912fec5bbb0f8b4cdd96baf8e2ebf5970e5671092966019b" +checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf" dependencies = [ "sqlx-core", "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", ] [[package]] name = "sqlx-core" -version = "0.5.13" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48c61941ccf5ddcada342cd59e3e5173b007c509e1e8e990dafc830294d9dc5" +checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" dependencies = [ - "ahash 0.7.6", + "ahash 0.8.6", "atoi", - "base64 0.13.1", "bigdecimal", - "bitflags 1.3.2", "byteorder", "bytes", "chrono", "crc", "crossbeam-queue 0.3.8", - "dirs", + "dotenvy", "either", "event-listener", "futures-channel", "futures-core", "futures-intrusive", + "futures-io", "futures-util", "hashlink", "hex", - "hkdf", - "hmac 0.12.1", - "indexmap 1.9.3", + "indexmap 2.1.0", "ipnetwork", - "itoa", - "libc", "log", - "md-5", "memchr", - "num-bigint 0.3.3", + "native-tls", "once_cell", "paste", "percent-encoding", - "rand 0.8.5", + "rust_decimal", "serde", "serde_json", - "sha-1", - "sha2 0.10.6", + "sha2 0.10.8", "smallvec", "sqlformat", - "sqlx-rt", - "stringprep", "thiserror", + "tokio", "tokio-stream", + "tracing", "url", - "whoami", ] [[package]] name = "sqlx-macros" -version = "0.5.13" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "sqlx-core", + "sqlx-macros-core", + "syn 1.0.109", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0fba2b0cae21fc00fe6046f8baa4c7fcb49e379f0f592b04696607f69ed2e1" +checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841" dependencies = [ - "dotenv", + "atomic-write-file", + "dotenvy", "either", "heck 0.4.1", "hex", "once_cell", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.8", "sqlx-core", - "sqlx-rt", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", "syn 1.0.109", + "tempfile", + "tokio", "url", ] [[package]] -name = "sqlx-rt" -version = "0.5.13" +name = "sqlx-mysql" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db708cd3e459078f85f39f96a00960bd841f66ee2a669e90bf36907f5a79aae" +checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4" dependencies = [ - "native-tls", + "atoi", + "base64 0.21.5", + "bigdecimal", + "bitflags 2.4.1", + "byteorder", + "bytes", + "chrono", + "crc", + "digest 0.10.7", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac 0.12.1", + "itoa", + "log", + "md-5", + "memchr", "once_cell", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + "percent-encoding", + "rand 0.8.5", + "rsa", + "rust_decimal", + "serde", + "sha1", + "sha2 0.10.8", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24" +dependencies = [ + "atoi", + "base64 0.21.5", + "bigdecimal", + "bitflags 2.4.1", + "byteorder", + "chrono", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac 0.12.1", + "home", + "ipnetwork", + "itoa", + "log", + "md-5", + "memchr", + "num-bigint 0.4.4", + "once_cell", + "rand 0.8.5", + "rust_decimal", + "serde", + "serde_json", + "sha1", + "sha2 0.10.8", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490" +dependencies = [ + "atoi", + "chrono", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "sqlx-core", + "tracing", + "url", + "urlencoding", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "static_assertions" @@ -4195,7 +5331,7 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck 0.3.3", "proc-macro-error", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] @@ -4216,7 +5352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "rustversion", "syn 1.0.109", @@ -4236,7 +5372,7 @@ checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" dependencies = [ "proc-macro2 0.4.30", "quote 0.6.13", - "unicode-xid", + "unicode-xid 0.1.0", ] [[package]] @@ -4245,46 +5381,76 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.31" +version = "2.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398" +checksum = "13fa70a4ee923979ffb522cacce59d34421ebdea5625e1073c4326ef9d2dd42e" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + [[package]] name = "sync_vm" version = "1.3.3" -source = "git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3#e819d15b107a06a746299f98bbd9802e26eeb348" +source = "git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3#ed8ab8984cae05d00d9d62196753c8d40df47c7d" dependencies = [ "arrayvec 0.7.4", - "cs_derive", + "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3)", "derivative", - "franklin-crypto", + "franklin-crypto 0.0.5 (git+https://github.com/matter-labs/franklin-crypto?branch=dev)", "hex", - "itertools", + "itertools 0.10.5", "num-bigint 0.4.4", "num-derive 0.3.3", "num-integer", "num-traits", "once_cell", "rand 0.4.6", - "rescue_poseidon", + "rescue_poseidon 0.4.1 (git+https://github.com/matter-labs/rescue-poseidon)", "serde", - "sha2 0.10.6", - "sha3 0.10.6", "smallvec", - "zk_evm", - "zkevm_opcode_defs", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.3.3)", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", ] [[package]] @@ -4301,35 +5467,45 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.8.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if 1.0.0", "fastrand", - "redox_syscall 0.3.5", + "redox_syscall", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "termcolor" -version = "1.2.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" dependencies = [ "winapi-util", ] [[package]] name = "test-log" -version = "0.2.12" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6159ab4116165c99fc88cce31f99fa2c9dbe08d3691cb38da02fc3b45f357d2b" +dependencies = [ + "env_logger 0.10.1", + "test-log-macros", +] + +[[package]] +name = "test-log-macros" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9601d162c1d77e62c1ea0bc8116cd1caf143ce3af947536c3c9052a1677fe0c" +checksum = "7ba277e77219e9eea169e8508942db1bf5d8a41ff2db9b20aab5a5aadc9fa25d" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 1.0.109", + "syn 2.0.40", ] [[package]] @@ -4338,13 +5514,13 @@ version = "0.1.0" dependencies = [ "colored", "hex", + "multivm", "once_cell", "serde", "serde_json", "tracing", "tracing-subscriber", "vlog", - "vm", "zksync_contracts", "zksync_state", "zksync_types", @@ -4362,22 +5538,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.48" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.48" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -4390,14 +5566,24 @@ dependencies = [ "once_cell", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ "deranged", "itoa", + "powerfmt", "serde", "time-core", "time-macros", @@ -4405,15 +5591,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -4453,32 +5639,32 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.32.0" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" dependencies = [ "backtrace", "bytes", "libc", "mio", "num_cpus", - "parking_lot 0.12.1", + "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.3", + "socket2 0.5.5", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -4514,9 +5700,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ "bytes", "futures-core", @@ -4538,7 +5724,18 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.1.0", "toml_datetime", "winnow", ] @@ -4551,11 +5748,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -4564,20 +5760,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -4585,12 +5781,12 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "lazy_static", "log", + "once_cell", "tracing-core", ] @@ -4606,9 +5802,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", "nu-ansi-term", @@ -4628,21 +5824,21 @@ dependencies = [ [[package]] name = "triomphe" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee8098afad3fb0c54a9007aab6804558410503ad676d4633f9c2559a00ac0f" +checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3" [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" @@ -4682,15 +5878,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -4709,9 +5905,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" @@ -4719,25 +5915,41 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unicode_categories" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" +[[package]] +name = "unroll" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" +dependencies = [ + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "untrusted" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.7.1" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9" +checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" dependencies = [ - "base64 0.21.3", + "base64 0.21.5", "log", "native-tls", "once_cell", @@ -4746,23 +5958,28 @@ dependencies = [ [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", - "idna", + "idna 0.5.0", "percent-encoding", "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "uuid" -version = "1.4.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" dependencies = [ - "getrandom 0.2.10", "serde", ] @@ -4793,8 +6010,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "vise" version = "0.1.0" -source = "git+https://github.com/matter-labs/vise.git?rev=9d097ab747b037b6e62504df1db5b975425b6bdd#9d097ab747b037b6e62504df1db5b975425b6bdd" +source = "git+https://github.com/matter-labs/vise.git?rev=1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1#1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" dependencies = [ + "compile-fmt", "elsa", "linkme", "once_cell", @@ -4805,17 +6023,17 @@ dependencies = [ [[package]] name = "vise-macros" version = "0.1.0" -source = "git+https://github.com/matter-labs/vise.git?rev=9d097ab747b037b6e62504df1db5b975425b6bdd#9d097ab747b037b6e62504df1db5b975425b6bdd" +source = "git+https://github.com/matter-labs/vise.git?rev=1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1#1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "vlog" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "chrono", "sentry", @@ -4824,26 +6042,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "vm" -version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" -dependencies = [ - "anyhow", - "hex", - "itertools", - "once_cell", - "thiserror", - "tracing", - "vise", - "zk_evm", - "zksync_config", - "zksync_contracts", - "zksync_state", - "zksync_types", - "zksync_utils", -] - [[package]] name = "walkdir" version = "2.4.0" @@ -4877,9 +6075,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -4887,24 +6085,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.37" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -4914,9 +6112,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote 1.0.33", "wasm-bindgen-macro-support", @@ -4924,28 +6122,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "web-sys" -version = "0.3.64" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", @@ -4958,7 +6156,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5388522c899d1e1c96a4c307e3797e0f697ba7c77dd8e0e625ecba9dd0342937" dependencies = [ "arrayvec 0.7.4", - "base64 0.21.3", + "base64 0.21.5", "bytes", "derive_more", "ethabi", @@ -4967,11 +6165,11 @@ dependencies = [ "futures-timer", "headers", "hex", - "idna", + "idna 0.4.0", "jsonrpc-core", "log", "once_cell", - "parking_lot 0.12.1", + "parking_lot", "pin-project", "reqwest", "rlp", @@ -4984,19 +6182,27 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.2" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" +checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] [[package]] name = "whoami" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" -dependencies = [ - "wasm-bindgen", - "web-sys", -] [[package]] name = "winapi" @@ -5016,9 +6222,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -5030,12 +6236,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows" -version = "0.48.0" +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -5044,7 +6250,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -5053,13 +6268,28 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -5068,47 +6298,89 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" -version = "0.5.15" +version = "0.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +checksum = "b67b5f0a4e7a27a64c651977932b9dc5667ca7fc31ac44b03ed37a0cf42fdfff" dependencies = [ "memchr", ] @@ -5120,7 +6392,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ "cfg-if 1.0.0", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -5139,81 +6411,276 @@ dependencies = [ ] [[package]] -name = "zeroize" -version = "1.6.0" +name = "zerocopy" +version = "0.7.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "306dca4455518f1f31635ec308b6b3e4eb1b11758cefafc782827d0aa7acb5c7" +dependencies = [ + "zerocopy-derive", +] [[package]] -name = "zk_evm" -version = "1.3.3" -source = "git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.3.3#fe8215a7047d24430ad470cf15a19bedb4d6ba0b" +name = "zerocopy-derive" +version = "0.7.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be912bf68235a88fbefd1b73415cb218405958d1655b2ece9035a19920bdf6ba" dependencies = [ - "anyhow", - "lazy_static", - "num 0.4.1", - "serde", - "serde_json", - "static_assertions", - "zk_evm_abstractions", - "zkevm_opcode_defs", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", ] [[package]] -name = "zk_evm_abstractions" -version = "0.1.0" -source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git#7502a661d7d38906d849dcd3e7a15e5848af6581" +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" dependencies = [ - "anyhow", - "serde", - "static_assertions", - "zkevm_opcode_defs", + "zeroize_derive", ] [[package]] -name = "zkevm-assembly" -version = "1.3.2" -source = "git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2#3c61d450cbe6548068be8f313ed02f1bd229a865" +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + +[[package]] +name = "zk_evm" +version = "1.3.1" +source = "git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.1-rc2#0a7c775932db4839ff6b7fb0db9bdb3583ab54c0" +dependencies = [ + "blake2 0.10.6 (git+https://github.com/RustCrypto/hashes.git?rev=1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e)", + "k256 0.11.6", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "sha2 0.10.6", + "sha3 0.10.6", + "static_assertions", + "zkevm_opcode_defs 1.3.1", +] + +[[package]] +name = "zk_evm" +version = "1.3.3" +source = "git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2#fbee20f5bac7d6ca3e22ae69b2077c510a07de4e" +dependencies = [ + "anyhow", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "static_assertions", + "zk_evm_abstractions 0.1.0", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zk_evm" +version = "1.3.3" +source = "git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.3.3#fbee20f5bac7d6ca3e22ae69b2077c510a07de4e" +dependencies = [ + "anyhow", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "static_assertions", + "zk_evm_abstractions 0.1.0", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zk_evm" +version = "1.4.0" +source = "git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.4.0#dd76fc5badf2c05278a21b38015a7798fe2fe358" +dependencies = [ + "anyhow", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "static_assertions", + "zk_evm_abstractions 0.1.0", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zk_evm" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.4.1#6250dbf64b2d14ced87a127735da559f27a432d5" +dependencies = [ + "anyhow", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "static_assertions", + "zk_evm_abstractions 1.4.1", + "zkevm_opcode_defs 1.4.1", +] + +[[package]] +name = "zk_evm_abstractions" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git#32dd320953841aa78579d9da08abbc70bcaed175" +dependencies = [ + "anyhow", + "num_enum", + "serde", + "static_assertions", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zk_evm_abstractions" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git?branch=v1.4.1#e3102e53fd2193bde9ecb5eba91efd7b8fb11ba9" dependencies = [ - "env_logger", + "anyhow", + "num_enum", + "serde", + "static_assertions", + "zkevm_opcode_defs 1.4.1", +] + +[[package]] +name = "zkevm-assembly" +version = "1.3.2" +source = "git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2#3c61d450cbe6548068be8f313ed02f1bd229a865" +dependencies = [ + "env_logger 0.9.3", "hex", "lazy_static", "log", "nom", "num-bigint 0.4.4", "num-traits", - "sha3 0.10.6", + "sha3 0.10.8", + "smallvec", + "structopt", + "thiserror", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zkevm-assembly" +version = "1.3.2" +source = "git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.4.1#50282016d01bd2fd147021dd558209778db2268b" +dependencies = [ + "env_logger 0.9.3", + "hex", + "lazy_static", + "log", + "nom", + "num-bigint 0.4.4", + "num-traits", + "sha3 0.10.8", "smallvec", "structopt", "thiserror", - "zkevm_opcode_defs", + "zkevm_opcode_defs 1.4.1", +] + +[[package]] +name = "zkevm_circuits" +version = "1.4.0" +source = "git+https://github.com/matter-labs/era-zkevm_circuits.git?branch=main#fb3e2574b5c890342518fc930c145443f039a105" +dependencies = [ + "arrayvec 0.7.4", + "bincode", + "boojum", + "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-boojum.git?branch=main)", + "derivative", + "hex", + "itertools 0.10.5", + "rand 0.4.6", + "rand 0.8.5", + "seq-macro", + "serde", + "serde_json", + "smallvec", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zkevm_circuits" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zkevm_circuits.git?branch=v1.4.1#5076a9a8cd775c8f7a84507a02af1e2350e3679d" +dependencies = [ + "arrayvec 0.7.4", + "bincode", + "boojum", + "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-boojum.git?branch=main)", + "derivative", + "hex", + "itertools 0.10.5", + "rand 0.4.6", + "rand 0.8.5", + "seq-macro", + "serde", + "serde_json", + "smallvec", + "zkevm_opcode_defs 1.4.1", +] + +[[package]] +name = "zkevm_opcode_defs" +version = "1.3.1" +source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.3.1#00d4ad2292bd55374a0fa10fe11686d7a109d8a0" +dependencies = [ + "bitflags 1.3.2", + "ethereum-types 0.14.1", + "lazy_static", + "sha2 0.10.8", ] [[package]] name = "zkevm_opcode_defs" version = "1.3.2" -source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.3.2#c7ab62f4c60b27dfc690c3ab3efb5fff1ded1a25" +source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.3.2#dffacadeccdfdbff4bc124d44c595c4a6eae5013" dependencies = [ - "bitflags 2.4.0", - "blake2 0.10.6", + "bitflags 2.4.1", + "blake2 0.10.6 (git+https://github.com/RustCrypto/hashes.git?rev=1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e)", "ethereum-types 0.14.1", - "k256", + "k256 0.11.6", "lazy_static", "sha2 0.10.6", "sha3 0.10.6", ] +[[package]] +name = "zkevm_opcode_defs" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.4.1#ba8228ff0582d21f64d6a319d50d0aec48e9e7b6" +dependencies = [ + "bitflags 2.4.1", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.14.1", + "k256 0.13.3", + "lazy_static", + "sha2 0.10.8", + "sha3 0.10.8", +] + [[package]] name = "zkevm_test_harness" version = "1.3.3" -source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.3.3#5fe3b73dba7c98e724358428ae10723c4758dfb5" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.3.3#d52b56d6ba8196c8a3c74c4933654469e6f27a5a" dependencies = [ "bincode", "circuit_testing", "codegen 0.2.0", "crossbeam 0.8.2", "derivative", - "env_logger", + "env_logger 0.10.1", "hex", "num-bigint 0.4.4", "num-integer", @@ -5226,14 +6693,66 @@ dependencies = [ "sync_vm", "test-log", "tracing", - "zk_evm", - "zkevm-assembly", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.3.3)", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2)", +] + +[[package]] +name = "zkevm_test_harness" +version = "1.4.0" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#fb47657ae3b6ff6e4bb5199964d3d37212978200" +dependencies = [ + "bincode", + "circuit_definitions 0.1.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0)", + "codegen 0.2.0", + "crossbeam 0.8.2", + "derivative", + "env_logger 0.10.1", + "hex", + "rand 0.4.6", + "rayon", + "serde", + "serde_json", + "smallvec", + "structopt", + "test-log", + "tracing", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2)", +] + +[[package]] +name = "zkevm_test_harness" +version = "1.4.0" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1#6db7c01717d157945f0f2939119dbd8a170de6bc" +dependencies = [ + "bincode", + "circuit_definitions 0.1.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1)", + "codegen 0.2.0", + "crossbeam 0.8.2", + "curl", + "derivative", + "env_logger 0.10.1", + "hex", + "lazy_static", + "rand 0.4.6", + "rayon", + "reqwest", + "rescue_poseidon 0.4.1 (git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2)", + "serde", + "serde_json", + "smallvec", + "snark_wrapper", + "structopt", + "test-log", + "tracing", + "walkdir", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.4.1)", ] [[package]] name = "zksync_basic_types" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "serde", "serde_json", @@ -5241,28 +6760,101 @@ dependencies = [ ] [[package]] -name = "zksync_config" +name = "zksync_concurrency" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" dependencies = [ "anyhow", - "bigdecimal", - "envy", - "hex", - "num 0.3.1", "once_cell", + "pin-project", + "rand 0.8.5", + "sha3 0.10.8", + "thiserror", + "time", + "tokio", + "tracing", + "tracing-subscriber", + "vise", +] + +[[package]] +name = "zksync_config" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" +dependencies = [ + "anyhow", "serde", - "serde_json", - "url", "zksync_basic_types", - "zksync_contracts", - "zksync_utils", +] + +[[package]] +name = "zksync_consensus_crypto" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "anyhow", + "blst", + "ed25519-dalek", + "ff_ce", + "hex", + "pairing_ce 0.28.5 (git+https://github.com/matter-labs/pairing.git?rev=f55393fd366596eac792d78525d26e9c4d6ed1ca)", + "rand 0.4.6", + "rand 0.8.5", + "sha3 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "zksync_consensus_roles" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "anyhow", + "bit-vec", + "hex", + "prost", + "rand 0.8.5", + "serde", + "thiserror", + "tracing", + "zksync_concurrency", + "zksync_consensus_crypto", + "zksync_consensus_utils", + "zksync_protobuf", + "zksync_protobuf_build", +] + +[[package]] +name = "zksync_consensus_storage" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "anyhow", + "async-trait", + "prost", + "rand 0.8.5", + "thiserror", + "tracing", + "zksync_concurrency", + "zksync_consensus_roles", + "zksync_protobuf", + "zksync_protobuf_build", +] + +[[package]] +name = "zksync_consensus_utils" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "thiserror", + "zksync_concurrency", ] [[package]] name = "zksync_contracts" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "envy", "ethabi", @@ -5276,10 +6868,10 @@ dependencies = [ [[package]] name = "zksync_crypto" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "base64 0.13.1", - "blake2 0.10.6", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "hex", "once_cell", "serde", @@ -5291,15 +6883,17 @@ dependencies = [ [[package]] name = "zksync_dal" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "anyhow", "bigdecimal", "bincode", "hex", - "itertools", - "num 0.3.1", + "itertools 0.10.5", + "num 0.4.1", "once_cell", + "prost", + "rand 0.8.5", "serde", "serde_json", "sqlx", @@ -5307,10 +6901,15 @@ dependencies = [ "thiserror", "tokio", "tracing", + "url", "vise", - "zksync_config", + "zksync_consensus_roles", + "zksync_consensus_storage", "zksync_contracts", "zksync_health_check", + "zksync_protobuf", + "zksync_protobuf_build", + "zksync_system_constants", "zksync_types", "zksync_utils", ] @@ -5318,7 +6917,7 @@ dependencies = [ [[package]] name = "zksync_health_check" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "async-trait", "futures", @@ -5331,20 +6930,54 @@ dependencies = [ [[package]] name = "zksync_mini_merkle_tree" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "once_cell", "zksync_basic_types", "zksync_crypto", ] +[[package]] +name = "zksync_protobuf" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "anyhow", + "bit-vec", + "once_cell", + "prost", + "prost-reflect", + "quick-protobuf", + "rand 0.8.5", + "serde", + "serde_json", + "zksync_concurrency", + "zksync_protobuf_build", +] + +[[package]] +name = "zksync_protobuf_build" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "anyhow", + "heck 0.4.1", + "prettyplease", + "proc-macro2 1.0.70", + "prost-build", + "prost-reflect", + "protox", + "quote 1.0.33", + "syn 2.0.40", +] + [[package]] name = "zksync_state" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "anyhow", - "metrics", + "itertools 0.10.5", "mini-moka", "tokio", "tracing", @@ -5358,7 +6991,7 @@ dependencies = [ [[package]] name = "zksync_storage" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "num_cpus", "once_cell", @@ -5367,52 +7000,79 @@ dependencies = [ "vise", ] +[[package]] +name = "zksync_system_constants" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" +dependencies = [ + "anyhow", + "bigdecimal", + "hex", + "num 0.3.1", + "once_cell", + "serde", + "serde_json", + "url", + "zksync_basic_types", + "zksync_contracts", + "zksync_utils", +] + [[package]] name = "zksync_types" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ - "blake2 0.10.6", + "anyhow", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "chrono", "codegen 0.1.0", "ethereum-types 0.12.1", - "num 0.3.1", + "hex", + "num 0.4.1", "num_enum", "once_cell", "parity-crypto", + "prost", "rlp", "serde", "serde_json", "serde_with", "strum", "thiserror", - "zk_evm", - "zkevm_test_harness", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", + "zk_evm 1.4.0", + "zk_evm 1.4.1", + "zkevm_test_harness 1.3.3", "zksync_basic_types", "zksync_config", + "zksync_consensus_roles", "zksync_contracts", "zksync_mini_merkle_tree", + "zksync_protobuf", + "zksync_protobuf_build", + "zksync_system_constants", "zksync_utils", ] [[package]] name = "zksync_utils" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "anyhow", "bigdecimal", "futures", "hex", - "itertools", + "itertools 0.10.5", "metrics", - "num 0.3.1", + "num 0.4.1", "reqwest", "serde", "thiserror", "tokio", "tracing", "vlog", - "zk_evm", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", "zksync_basic_types", ] diff --git a/etc/system-contracts/bootloader/test_infra/Cargo.toml b/etc/system-contracts/bootloader/test_infra/Cargo.toml index e78bcf65..8b69090c 100644 --- a/etc/system-contracts/bootloader/test_infra/Cargo.toml +++ b/etc/system-contracts/bootloader/test_infra/Cargo.toml @@ -7,12 +7,12 @@ edition = "2021" [dependencies] -vm = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } -zksync_types = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } -zksync_contracts = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } -zksync_utils = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } -zksync_state = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } -vlog = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } +multivm = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } +zksync_types = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } +zksync_contracts = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } +zksync_utils = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } +zksync_state = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } +vlog = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } colored = "2.0" hex = "0.4" diff --git a/etc/system-contracts/bootloader/test_infra/rust-toolchain b/etc/system-contracts/bootloader/test_infra/rust-toolchain new file mode 100644 index 00000000..9a87fb21 --- /dev/null +++ b/etc/system-contracts/bootloader/test_infra/rust-toolchain @@ -0,0 +1 @@ +nightly-2023-08-21 diff --git a/etc/system-contracts/bootloader/test_infra/src/hook.rs b/etc/system-contracts/bootloader/test_infra/src/hook.rs index 1cb23ddf..e346ecf0 100644 --- a/etc/system-contracts/bootloader/test_infra/src/hook.rs +++ b/etc/system-contracts/bootloader/test_infra/src/hook.rs @@ -1,16 +1,15 @@ -use vm::{ +use multivm::vm_latest::{ constants::{BOOTLOADER_HEAP_PAGE, VM_HOOK_PARAMS_START_POSITION}, HistoryMode, SimpleMemory, }; -use zksync_types::{ - zkevm_test_harness::zk_evm::{ - aux_structures::MemoryPage, - tracing::{BeforeExecutionData, VmLocalStateData}, - zkevm_opcode_defs::{FatPointer, Opcode, UMAOpcode}, - }, - U256, +use multivm::zk_evm_1_4_1::{ + aux_structures::MemoryPage, + tracing::{BeforeExecutionData, VmLocalStateData}, + zkevm_opcode_defs::{FatPointer, Opcode, UMAOpcode}, }; + +use zksync_types::U256; use zksync_utils::u256_to_h256; #[derive(Clone, Debug)] diff --git a/etc/system-contracts/bootloader/test_infra/src/main.rs b/etc/system-contracts/bootloader/test_infra/src/main.rs index c91a8198..0c08a0da 100644 --- a/etc/system-contracts/bootloader/test_infra/src/main.rs +++ b/etc/system-contracts/bootloader/test_infra/src/main.rs @@ -1,15 +1,18 @@ use crate::{test_count_tracer::TestCountTracer, tracer::BootloaderTestTracer}; use colored::Colorize; +use multivm::interface::{ + L1BatchEnv, L2BlockEnv, SystemEnv, TxExecutionMode, VmExecutionMode, VmInterface, +}; +use multivm::vm_latest::{HistoryDisabled, ToTracerPointer, Vm}; use once_cell::sync::OnceCell; +use zksync_types::fee_model::BatchFeeInput; use std::process; + +use multivm::interface::{ExecutionResult, Halt}; use std::{env, sync::Arc}; use tracing_subscriber::fmt; use tracing_subscriber::prelude::__tracing_subscriber_SubscriberExt; use tracing_subscriber::util::SubscriberInitExt; -use vm::{ - HistoryDisabled, L1BatchEnv, L2BlockEnv, SystemEnv, TxExecutionMode, Vm, VmExecutionMode, - VmTracer, -}; use zksync_contracts::{ read_zbin_bytecode, BaseSystemContracts, ContractLanguage, SystemContractCode, SystemContractsRepo, @@ -18,7 +21,7 @@ use zksync_state::{ InMemoryStorage, StoragePtr, StorageView, IN_MEMORY_STORAGE_DEFAULT_NETWORK_ID, }; use zksync_types::system_contracts::get_system_smart_contracts_from_dir; -use zksync_types::{block::legacy_miniblock_hash, Address, L1BatchNumber, MiniblockNumber, U256}; +use zksync_types::{block::MiniblockHasher, Address, L1BatchNumber, MiniblockNumber, U256}; use zksync_types::{L2ChainId, Transaction}; use zksync_utils::bytecode::hash_bytecode; use zksync_utils::{bytes_to_be_words, u256_to_h256}; @@ -31,7 +34,7 @@ mod tracer; fn execute_internal_bootloader_test() { let test_location = env::current_dir() .unwrap() - .join("../build/artifacts/bootloader_test.yul/bootloader_test.yul.zbin"); + .join("../build/artifacts/bootloader_test.yul.zbin"); println!("Current dir is {:?}", test_location); let bytecode = read_zbin_bytecode(test_location.as_path()); let hash = hash_bytecode(&bytecode); @@ -70,15 +73,14 @@ fn execute_internal_bootloader_test() { previous_batch_hash: None, number: L1BatchNumber::from(1), timestamp: 14, - l1_gas_price: 250_000_000, - fair_l2_gas_price: 250_000_000, + fee_input: BatchFeeInput::sensible_l1_pegged_default(), fee_account: Address::default(), enforced_base_fee: None, first_l2_block: L2BlockEnv { number: 1, timestamp: 15, - prev_block_hash: legacy_miniblock_hash(MiniblockNumber(0)), + prev_block_hash: MiniblockHasher::legacy_hash(MiniblockNumber(0)), max_virtual_blocks_to_create: 1, }, }; @@ -91,22 +93,17 @@ fn execute_internal_bootloader_test() { hash_bytecode, get_system_smart_contracts_from_dir(env::current_dir().unwrap().join("../../")), )) - .into_rc_ptr(); + .to_rc_ptr(); - let mut vm = Vm::new( - l1_batch_env.clone(), - system_env.clone(), - storage.clone(), - HistoryDisabled, - ); + let mut vm: Vm<_, HistoryDisabled> = + Vm::new(l1_batch_env.clone(), system_env.clone(), storage.clone()); let test_count = Arc::new(OnceCell::default()); - let custom_tracers = vec![Box::new(TestCountTracer::new(test_count.clone())) - as Box, HistoryDisabled>>]; + let custom_tracers = TestCountTracer::new(test_count.clone()).into_tracer_pointer(); // We're using a TestCountTracer (and passing 0 as fee account) - this should cause the bootloader // test framework to report number of tests via VM hook. - vm.inspect(custom_tracers, VmExecutionMode::Bootloader); + vm.inspect(custom_tracers.into(), VmExecutionMode::Bootloader); test_count.get().unwrap().clone() }; @@ -124,40 +121,82 @@ fn execute_internal_bootloader_test() { hash_bytecode, get_system_smart_contracts_from_dir(env::current_dir().unwrap().join("../../")), )) - .into_rc_ptr(); + .to_rc_ptr(); // We are passing id of the test in location (0) where we normally put the operator. // This is then picked up by the testing framework. l1_batch_env.fee_account = zksync_types::H160::from(u256_to_h256(U256::from(test_id))); - let mut vm = Vm::new( - l1_batch_env.clone(), - system_env.clone(), - storage.clone(), - HistoryDisabled, - ); + let mut vm: Vm<_, HistoryDisabled> = + Vm::new(l1_batch_env.clone(), system_env.clone(), storage.clone()); let test_result = Arc::new(OnceCell::default()); + let requested_assert = Arc::new(OnceCell::default()); + let test_name = Arc::new(OnceCell::default()); - let custom_tracers = vec![Box::new(BootloaderTestTracer::new(test_result.clone())) - as Box, HistoryDisabled>>]; + let custom_tracers = BootloaderTestTracer::new( + test_result.clone(), + requested_assert.clone(), + test_name.clone(), + ) + .into_tracer_pointer(); // Let's insert transactions into slots. They are not executed, but the tests can run functions against them. let json_str = include_str!("test_transactions/0.json"); let tx: Transaction = serde_json::from_str(json_str).unwrap(); vm.push_transaction(tx); - vm.inspect(custom_tracers, VmExecutionMode::Bootloader); + let result = vm.inspect(custom_tracers.into(), VmExecutionMode::Bootloader); + let mut test_result = Arc::into_inner(test_result).unwrap().into_inner(); + let requested_assert = Arc::into_inner(requested_assert).unwrap().into_inner(); + let test_name = Arc::into_inner(test_name) + .unwrap() + .into_inner() + .unwrap_or_default(); + + if test_result.is_none() { + test_result = Some(if let Some(requested_assert) = requested_assert { + match &result.result { + ExecutionResult::Success { .. } => Err(format!( + "Should have failed with {}, but run succesfully.", + requested_assert + )), + ExecutionResult::Revert { output } => Err(format!( + "Should have failed with {}, but run reverted with {}.", + requested_assert, + output.to_user_friendly_string() + )), + ExecutionResult::Halt { reason } => { + if let Halt::UnexpectedVMBehavior(reason) = reason { + let reason = reason.strip_prefix("Assertion error: ").unwrap(); + if reason == requested_assert { + Ok(()) + } else { + Err(format!( + "Should have failed with `{}`, but failed with different assert `{}`", + requested_assert, reason + )) + } + } else { + Err(format!( + "Should have failed with `{}`, but halted with`{}`", + requested_assert, reason + )) + } + } + } + } else { + match &result.result { + ExecutionResult::Success { .. } => Ok(()), + ExecutionResult::Revert { output } => Err(output.to_user_friendly_string()), + ExecutionResult::Halt { reason } => Err(reason.to_string()), + } + }); + } - let test_result = test_result.get().unwrap(); - match &test_result.result { - Ok(_) => println!("{} {}", "[PASS]".green(), test_result.test_name), + match &test_result.unwrap() { + Ok(_) => println!("{} {}", "[PASS]".green(), test_name), Err(error_info) => { tests_failed += 1; - println!( - "{} {} {}", - "[FAIL]".red(), - test_result.test_name, - error_info - ) + println!("{} {} {}", "[FAIL]".red(), test_name, error_info) } } } diff --git a/etc/system-contracts/bootloader/test_infra/src/test_count_tracer.rs b/etc/system-contracts/bootloader/test_infra/src/test_count_tracer.rs index 7e5adc5a..bb3f9ef8 100644 --- a/etc/system-contracts/bootloader/test_infra/src/test_count_tracer.rs +++ b/etc/system-contracts/bootloader/test_infra/src/test_count_tracer.rs @@ -1,12 +1,10 @@ use std::sync::Arc; +use multivm::interface::dyn_tracers::vm_1_4_1::DynTracer; +use multivm::vm_latest::{HistoryMode, SimpleMemory, VmTracer}; +use multivm::zk_evm_1_4_1::tracing::{BeforeExecutionData, VmLocalStateData}; use once_cell::sync::OnceCell; -use vm::{ - DynTracer, ExecutionEndTracer, ExecutionProcessing, HistoryMode, SimpleMemory, - VmExecutionResultAndLogs, VmTracer, -}; use zksync_state::{StoragePtr, WriteStorage}; -use zksync_types::zkevm_test_harness::zk_evm::tracing::{BeforeExecutionData, VmLocalStateData}; use crate::hook::TestVmHook; @@ -25,7 +23,7 @@ impl TestCountTracer { } } -impl DynTracer for TestCountTracer { +impl DynTracer> for TestCountTracer { fn before_execution( &mut self, state: VmLocalStateData<'_>, @@ -41,10 +39,4 @@ impl DynTracer for TestCountTracer { } } -impl ExecutionEndTracer for TestCountTracer {} - -impl ExecutionProcessing for TestCountTracer {} - -impl VmTracer for TestCountTracer { - fn save_results(&mut self, _result: &mut VmExecutionResultAndLogs) {} -} +impl VmTracer for TestCountTracer {} diff --git a/etc/system-contracts/bootloader/test_infra/src/tracer.rs b/etc/system-contracts/bootloader/test_infra/src/tracer.rs index 942389f2..e0e0022d 100644 --- a/etc/system-contracts/bootloader/test_infra/src/tracer.rs +++ b/etc/system-contracts/bootloader/test_infra/src/tracer.rs @@ -1,45 +1,45 @@ use std::sync::Arc; use colored::Colorize; - use once_cell::sync::OnceCell; -use vm::{ - DynTracer, ExecutionEndTracer, ExecutionProcessing, Halt, HistoryMode, SimpleMemory, - TracerExecutionStatus, TracerExecutionStopReason, VmExecutionResultAndLogs, VmTracer, + +use multivm::interface::{ + dyn_tracers::vm_1_4_1::DynTracer, + tracer::{TracerExecutionStatus, TracerExecutionStopReason}, }; +use multivm::vm_latest::{BootloaderState, HistoryMode, SimpleMemory, VmTracer, ZkSyncVmState}; +use multivm::zk_evm_1_4_1::tracing::{BeforeExecutionData, VmLocalStateData}; + use zksync_state::{StoragePtr, WriteStorage}; -use zksync_types::zkevm_test_harness::zk_evm::tracing::{BeforeExecutionData, VmLocalStateData}; use crate::hook::TestVmHook; -#[derive(Debug)] -pub struct TestResult { - pub test_name: String, - pub result: Result<(), String>, -} - /// Bootloader test tracer that is executing while the bootloader tests are running. /// It can check the assers, return information about the running tests (and amount of tests) etc. pub struct BootloaderTestTracer { /// Set if the currently running test has failed. - test_result: Arc>, + test_result: Arc>>, /// Set, if the currently running test should fail with a given assert. - requested_assert: Option, + requested_assert: Arc>, - test_name: Option, + test_name: Arc>, } impl BootloaderTestTracer { - pub fn new(test_result: Arc>) -> Self { + pub fn new( + test_result: Arc>>, + requested_assert: Arc>, + test_name: Arc>, + ) -> Self { BootloaderTestTracer { test_result, - requested_assert: None, - test_name: None, + requested_assert, + test_name, } } } -impl DynTracer for BootloaderTestTracer { +impl DynTracer> for BootloaderTestTracer { fn before_execution( &mut self, state: VmLocalStateData<'_>, @@ -55,84 +55,30 @@ impl DynTracer for BootloaderTestTracer { if let TestVmHook::AssertEqFailed(a, b, msg) = &hook { let result = format!("Assert failed: {} is not equal to {}: {}", a, b, msg); - self.test_result - .set(TestResult { - test_name: self.test_name.clone().unwrap_or("".to_owned()), - result: Err(result.clone()), - }) - .unwrap(); + self.test_result.set(Err(result.clone())).unwrap(); } if let TestVmHook::RequestedAssert(requested_assert) = &hook { - self.requested_assert = Some(requested_assert.clone()) + let _ = self.requested_assert.set(requested_assert.clone()); } if let TestVmHook::TestStart(test_name) = &hook { - self.test_name = Some(test_name.clone()); + self.test_name + .set(test_name.clone()) + .expect("Test already started"); } } } -impl ExecutionEndTracer for BootloaderTestTracer { - fn should_stop_execution(&self) -> TracerExecutionStatus { - if let Some(TestResult { - test_name: _, - result: Err(_), - }) = self.test_result.get() - { - return TracerExecutionStatus::Stop(TracerExecutionStopReason::Finish); - } - return TracerExecutionStatus::Continue; - } -} - -impl ExecutionProcessing for BootloaderTestTracer {} - impl VmTracer for BootloaderTestTracer { - fn save_results(&mut self, result: &mut VmExecutionResultAndLogs) { - let r = if let Some(requested_assert) = &self.requested_assert { - match &result.result { - vm::ExecutionResult::Success { .. } => Err(format!( - "Should have failed with {}, but run succesfully.", - requested_assert - )), - vm::ExecutionResult::Revert { output } => Err(format!( - "Should have failed with {}, but run reverted with {}.", - requested_assert, - output.to_user_friendly_string() - )), - vm::ExecutionResult::Halt { reason } => { - if let Halt::UnexpectedVMBehavior(reason) = reason { - let reason = reason.strip_prefix("Assertion error: ").unwrap(); - if reason == requested_assert { - Ok(()) - } else { - Err(format!( - "Should have failed with `{}`, but failed with different assert `{}`", - requested_assert, reason - )) - } - } else { - Err(format!( - "Should have failed with `{}`, but halted with`{}`", - requested_assert, reason - )) - } - } - } + fn finish_cycle( + &mut self, + _state: &mut ZkSyncVmState, + _bootloader_state: &mut BootloaderState, + ) -> TracerExecutionStatus { + if let Some(Err(_)) = self.test_result.get() { + TracerExecutionStatus::Stop(TracerExecutionStopReason::Finish) } else { - match &result.result { - vm::ExecutionResult::Success { .. } => Ok(()), - vm::ExecutionResult::Revert { output } => Err(output.to_user_friendly_string()), - vm::ExecutionResult::Halt { reason } => Err(reason.to_string()), - } - }; - if self.test_result.get().is_none() { - self.test_result - .set(TestResult { - test_name: self.test_name.clone().unwrap_or("".to_owned()), - result: r, - }) - .unwrap(); + TracerExecutionStatus::Continue } } } diff --git a/etc/system-contracts/bootloader/tests/README.md b/etc/system-contracts/bootloader/tests/README.md index 31acb0ec..0b5f7992 100644 --- a/etc/system-contracts/bootloader/tests/README.md +++ b/etc/system-contracts/bootloader/tests/README.md @@ -13,7 +13,7 @@ Please put bootloader unittests in `bootloader/bootloader_test.yul` file, and an To execute tests, you should first run yarn to prepare the source code: ```shell -yarn preprocess && yarn compile-yul +yarn build-yul ``` And then run the test framework: diff --git a/etc/system-contracts/bootloader/tests/bootloader/bootloader_test.yul b/etc/system-contracts/bootloader/tests/bootloader/bootloader_test.yul index cd41c45d..114f5e04 100644 --- a/etc/system-contracts/bootloader/tests/bootloader/bootloader_test.yul +++ b/etc/system-contracts/bootloader/tests/bootloader/bootloader_test.yul @@ -50,3 +50,51 @@ function TEST_simple_transaction() { let innerTxDataOffset := add(txDataOffset, 0x20) testing_assertEq(getGasPerPubdataByteLimit(innerTxDataOffset), 0xc350, "Invalid pubdata limit") } + +function TEST_getTransactionUpfrontOverhead() { + // For very large transactions it should be proportional to the memory, + // but for small ones, the transaction slots are more important + + let smallTxOverhead := getTransactionUpfrontOverhead(32) + let largeTxOverhead := getTransactionUpfrontOverhead(1000000) + + testing_assertEq(smallTxOverhead, TX_SLOT_OVERHEAD_GAS(), "Invalid small tx overhead") + testing_assertEq(largeTxOverhead, mul(1000000, MEMORY_OVERHEAD_GAS()), "Invalid small tx overhead") +} + +function TEST_getFeeParams_HighPubdataPrice() { + // Under very large L1 gas price, the L2 base fee will start rising to ensure the + // boundary on the gasLimit + + // 15k gwei L1 pubdata price + let veryHighL1PubdataPrice := 15000000000000 + // 0.1 gwei L2 base fee + let l2GasPrice := 100000000 + + let baseFee, gasPricePerPubdata := getFeeParams( + veryHighL1PubdataPrice, + // 0.1 gwei L2 base fee + l2GasPrice + ) + + testing_assertEq(baseFee, div(veryHighL1PubdataPrice, MAX_L2_GAS_PER_PUBDATA()), "Invalid base fee") + testing_assertEq(gasPricePerPubdata, MAX_L2_GAS_PER_PUBDATA(), "Invalid gasPricePerPubdata") +} + +function TEST_getFeeParams_LowPubdataPrice() { + // Under low to medium pubdata price, the baseFee is equal to the fair gas price, + // while the gas per pubdata pubdata is derived by strict division + + // 0.2 gwei L1 pubdata price + let veryLowL1GasPrice := 200000000 + // 0.1 gwei L2 base fee + let l2GasPrice := 100000000 + + let baseFee, gasPricePerPubdata := getFeeParams( + veryLowL1GasPrice, + l2GasPrice + ) + + testing_assertEq(baseFee, l2GasPrice, "Invalid base fee") + testing_assertEq(gasPricePerPubdata, div(veryLowL1GasPrice, l2GasPrice), "Invalid gasPricePerPubdata") +} diff --git a/etc/system-contracts/bootloader/tests/utils/test_utils.yul b/etc/system-contracts/bootloader/tests/utils/test_utils.yul index 561a4679..1d2e3e65 100644 --- a/etc/system-contracts/bootloader/tests/utils/test_utils.yul +++ b/etc/system-contracts/bootloader/tests/utils/test_utils.yul @@ -10,42 +10,42 @@ function TEST_HOOK_PARAMS_OFFSET() -> ret { } function setTestHook(hook) { - mstore(TEST_HOOK_PTR(), unoptimized(hook)) + mstore(TEST_HOOK_PTR(), $llvm_NoInline_llvm$_unoptimized(hook)) } function storeTestHookParam(paramId, value) { let offset := add(TEST_HOOK_PARAMS_OFFSET(), mul(32, paramId)) - mstore(offset, unoptimized(value)) + mstore(offset, $llvm_NoInline_llvm$_unoptimized(value)) } function testing_log(msg, data) { - storeTestHookParam(0, nonOptimized(msg)) - storeTestHookParam(1, nonOptimized(data)) - setTestHook(nonOptimized(100)) + storeTestHookParam(0, msg) + storeTestHookParam(1, data) + setTestHook(100) } function testing_start(test_name) { - storeTestHookParam(0, nonOptimized(test_name)) - setTestHook(nonOptimized(104)) + storeTestHookParam(0, test_name) + setTestHook(104) } function testing_assertEq(a, b, message) { if iszero(eq(a, b)) { - storeTestHookParam(0, nonOptimized(a)) - storeTestHookParam(1, nonOptimized(b)) - storeTestHookParam(2, nonOptimized(message)) - setTestHook(nonOptimized(101)) + storeTestHookParam(0, a) + storeTestHookParam(1, b) + storeTestHookParam(2, message) + setTestHook(101) } } function testing_testWillFailWith(message) { - storeTestHookParam(0, unoptimized(message)) - setTestHook(nonOptimized(102)) + storeTestHookParam(0, $llvm_NoInline_llvm$_unoptimized(message)) + setTestHook(102) } function testing_totalTests(tests) { - storeTestHookParam(0, unoptimized(tests)) - setTestHook(nonOptimized(103)) + storeTestHookParam(0, $llvm_NoInline_llvm$_unoptimized(tests)) + setTestHook(103) } // Returns txDataOffset for the index transaction. diff --git a/etc/system-contracts/contracts/BootloaderUtilities.sol b/etc/system-contracts/contracts/BootloaderUtilities.sol index 49467bdc..71f6b0e6 100644 --- a/etc/system-contracts/contracts/BootloaderUtilities.sol +++ b/etc/system-contracts/contracts/BootloaderUtilities.sol @@ -2,10 +2,10 @@ pragma solidity 0.8.20; -import "./interfaces/IBootloaderUtilities.sol"; -import "./libraries/TransactionHelper.sol"; -import "./libraries/RLPEncoder.sol"; -import "./libraries/EfficientCall.sol"; +import {IBootloaderUtilities} from "./interfaces/IBootloaderUtilities.sol"; +import {Transaction, TransactionHelper, EIP_712_TX_TYPE, LEGACY_TX_TYPE, EIP_2930_TX_TYPE, EIP_1559_TX_TYPE} from "./libraries/TransactionHelper.sol"; +import {RLPEncoder} from "./libraries/RLPEncoder.sol"; +import {EfficientCall} from "./libraries/EfficientCall.sol"; /** * @author Matter Labs diff --git a/etc/system-contracts/contracts/Constants.sol b/etc/system-contracts/contracts/Constants.sol index f0896710..4eeca364 100644 --- a/etc/system-contracts/contracts/Constants.sol +++ b/etc/system-contracts/contracts/Constants.sol @@ -16,7 +16,7 @@ import {IBootloaderUtilities} from "./interfaces/IBootloaderUtilities.sol"; /// @dev All the system contracts introduced by zkSync have their addresses /// started from 2^15 in order to avoid collision with Ethereum precompiles. -uint160 constant SYSTEM_CONTRACTS_OFFSET = 0x8000; // 2^15 +uint160 constant SYSTEM_CONTRACTS_OFFSET = {{SYSTEM_CONTRACTS_OFFSET}}; // 2^15 /// @dev All the system contracts must be located in the kernel space, /// i.e. their addresses must be below 2^16. @@ -51,12 +51,16 @@ address constant MSG_VALUE_SYSTEM_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0 IEthToken constant ETH_TOKEN_SYSTEM_CONTRACT = IEthToken(address(SYSTEM_CONTRACTS_OFFSET + 0x0a)); -address constant KECCAK256_SYSTEM_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0x10); +// Hardcoded because even for tests we should keep the address. (Instead `SYSTEM_CONTRACTS_OFFSET + 0x10`) +// Precompile call depends on it. +// And we don't want to mock this contract. +address constant KECCAK256_SYSTEM_CONTRACT = address(0x8010); ISystemContext constant SYSTEM_CONTEXT_CONTRACT = ISystemContext(payable(address(SYSTEM_CONTRACTS_OFFSET + 0x0b))); IBootloaderUtilities constant BOOTLOADER_UTILITIES = IBootloaderUtilities(address(SYSTEM_CONTRACTS_OFFSET + 0x0c)); +// It will be a different value for tests, while shouldn't. But for now, this constant is not used by other contracts, so that's fine. address constant EVENT_WRITER_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0x0d); ICompressor constant COMPRESSOR_CONTRACT = ICompressor(address(SYSTEM_CONTRACTS_OFFSET + 0x0e)); diff --git a/etc/system-contracts/contracts/ContractDeployer.sol b/etc/system-contracts/contracts/ContractDeployer.sol index 50af9742..73a58a78 100644 --- a/etc/system-contracts/contracts/ContractDeployer.sol +++ b/etc/system-contracts/contracts/ContractDeployer.sol @@ -236,13 +236,14 @@ contract ContractDeployer is IContractDeployer, ISystemContract { ); } - /// @notice The method that is temporarily needed to upgrade the Keccak256 precompile. It is to be removed in the - /// future. Unlike a normal forced deployment, it does not update account information as it requires updating a - /// mapping, and so requires Keccak256 precompile to work already. + /// @notice The method that is temporarily needed to upgrade the Keccak256 precompile. This function and `Bootloader:upgradeKeccakIfNeeded` + /// are to be removed once the upgrade is complete. Unlike a normal forced deployment, it does not update account information as it requires + /// updating a mapping, and so requires Keccak256 precompile to work already. /// @dev This method expects the sender (FORCE_DEPLOYER) to provide the correct bytecode hash for the Keccak256 /// precompile. function forceDeployKeccak256(bytes32 _keccak256BytecodeHash) external payable onlyCallFrom(FORCE_DEPLOYER) { _ensureBytecodeIsKnown(_keccak256BytecodeHash); + _constructContract( msg.sender, address(KECCAK256_SYSTEM_CONTRACT), diff --git a/etc/system-contracts/contracts/ImmutableSimulator.sol b/etc/system-contracts/contracts/ImmutableSimulator.sol index a018c92a..2d077316 100644 --- a/etc/system-contracts/contracts/ImmutableSimulator.sol +++ b/etc/system-contracts/contracts/ImmutableSimulator.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.20; -import "./interfaces/IImmutableSimulator.sol"; +import {IImmutableSimulator, ImmutableData} from "./interfaces/IImmutableSimulator.sol"; import {DEPLOYER_SYSTEM_CONTRACT} from "./Constants.sol"; /** @@ -18,7 +18,7 @@ import {DEPLOYER_SYSTEM_CONTRACT} from "./Constants.sol"; contract ImmutableSimulator is IImmutableSimulator { /// @dev mapping (contract address) => (index of immutable variable) => value /// @notice that address uses `uint256` type to leave the option to introduce 32-byte address space in future. - mapping(uint256 => mapping(uint256 => bytes32)) internal immutableDataStorage; + mapping(uint256 contractAddress => mapping(uint256 index => bytes32 value)) internal immutableDataStorage; /// @notice Method that returns the immutable with a certain index for a user. /// @param _dest The address which the immutable belongs to. diff --git a/etc/system-contracts/contracts/KnownCodesStorage.sol b/etc/system-contracts/contracts/KnownCodesStorage.sol index 2dda7854..e717221f 100644 --- a/etc/system-contracts/contracts/KnownCodesStorage.sol +++ b/etc/system-contracts/contracts/KnownCodesStorage.sol @@ -5,7 +5,6 @@ pragma solidity 0.8.20; import {IKnownCodesStorage} from "./interfaces/IKnownCodesStorage.sol"; import {ISystemContract} from "./interfaces/ISystemContract.sol"; import {Utils} from "./libraries/Utils.sol"; -import {SystemContractHelper} from "./libraries/SystemContractHelper.sol"; import {COMPRESSOR_CONTRACT, L1_MESSENGER_CONTRACT} from "./Constants.sol"; /** diff --git a/etc/system-contracts/contracts/L1Messenger.sol b/etc/system-contracts/contracts/L1Messenger.sol index 47ee3265..30160164 100644 --- a/etc/system-contracts/contracts/L1Messenger.sol +++ b/etc/system-contracts/contracts/L1Messenger.sol @@ -272,8 +272,8 @@ contract L1Messenger is IL1Messenger, ISystemContract { /// Check State Diffs /// encoding is as follows: - /// header (1 byte version, 3 bytes total len of compressed, 1 byte enumeration index size, 2 bytes number of initial writes) - /// body (N bytes of initial writes [32 byte derived key || compressed value], M bytes repeated writes [enumeration index || compressed value]) + /// header (1 byte version, 3 bytes total len of compressed, 1 byte enumeration index size) + /// body (`compressedStateDiffSize` bytes, 4 bytes number of state diffs, `numberOfStateDiffs` * `STATE_DIFF_ENTRY_SIZE` bytes for the uncompressed state diffs) /// encoded state diffs: [20bytes address][32bytes key][32bytes derived key][8bytes enum index][32bytes initial value][32bytes final value] require( uint256(uint8(bytes1(_totalL2ToL1PubdataAndStateDiffs[calldataPtr]))) == diff --git a/etc/system-contracts/contracts/L2EthToken.sol b/etc/system-contracts/contracts/L2EthToken.sol index fbd63ae2..71df9333 100644 --- a/etc/system-contracts/contracts/L2EthToken.sol +++ b/etc/system-contracts/contracts/L2EthToken.sol @@ -17,7 +17,7 @@ import {IMailbox} from "./interfaces/IMailbox.sol"; */ contract L2EthToken is IEthToken, ISystemContract { /// @notice The balances of the users. - mapping(address => uint256) internal balance; + mapping(address account => uint256 balance) internal balance; /// @notice The total amount of tokens that have been minted. uint256 public override totalSupply; diff --git a/etc/system-contracts/contracts/MsgValueSimulator.sol b/etc/system-contracts/contracts/MsgValueSimulator.sol index 07ed23d4..a5be6043 100644 --- a/etc/system-contracts/contracts/MsgValueSimulator.sol +++ b/etc/system-contracts/contracts/MsgValueSimulator.sol @@ -2,9 +2,9 @@ pragma solidity 0.8.20; -import "./libraries/Utils.sol"; -import "./libraries/EfficientCall.sol"; -import "./interfaces/ISystemContract.sol"; +import {Utils} from "./libraries/Utils.sol"; +import {EfficientCall} from "./libraries/EfficientCall.sol"; +import {ISystemContract} from "./interfaces/ISystemContract.sol"; import {SystemContractHelper} from "./libraries/SystemContractHelper.sol"; import {MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT, ETH_TOKEN_SYSTEM_CONTRACT} from "./Constants.sol"; @@ -18,7 +18,7 @@ import {MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT, ETH_TOKEN_SYSTEM_CONTRACT} from "./Co */ contract MsgValueSimulator is ISystemContract { /// @notice Extract value, isSystemCall and to from the extraAbi params. - /// @dev The contract accepts value, the callee and whether the call should a system one via its ABI params. + /// @dev The contract accepts value, the callee and whether the call should be a system one via its ABI params. /// @dev The first ABI param contains the value in the [0..127] bits. The 128th contains /// the flag whether or not the call should be a system one. /// The second ABI params contains the callee. @@ -32,6 +32,10 @@ contract MsgValueSimulator is ISystemContract { to = address(uint160(addressAsUint)); } + /// @notice The fallback function that is the main entry point for the MsgValueSimulator. + /// @dev The contract accepts value, the callee and whether the call should be a system one via its ABI params. + /// @param _data The calldata to be passed to the callee. + /// @return The return data from the callee. fallback(bytes calldata _data) external onlySystemCall returns (bytes memory) { (uint256 value, bool isSystemCall, address to) = _getAbiParams(); diff --git a/etc/system-contracts/contracts/NonceHolder.sol b/etc/system-contracts/contracts/NonceHolder.sol index b2775f1c..1ca57a21 100644 --- a/etc/system-contracts/contracts/NonceHolder.sol +++ b/etc/system-contracts/contracts/NonceHolder.sol @@ -2,8 +2,8 @@ pragma solidity 0.8.20; -import "./interfaces/INonceHolder.sol"; -import "./interfaces/IContractDeployer.sol"; +import {INonceHolder} from "./interfaces/INonceHolder.sol"; +import {IContractDeployer} from "./interfaces/IContractDeployer.sol"; import {ISystemContract} from "./interfaces/ISystemContract.sol"; import {DEPLOYER_SYSTEM_CONTRACT} from "./Constants.sol"; @@ -25,20 +25,20 @@ import {DEPLOYER_SYSTEM_CONTRACT} from "./Constants.sol"; * here serve more as a help to users to prevent from doing mistakes, rather than any invariants. */ contract NonceHolder is INonceHolder, ISystemContract { - uint256 constant DEPLOY_NONCE_MULTIPLIER = 2 ** 128; + uint256 private constant DEPLOY_NONCE_MULTIPLIER = 2 ** 128; /// The minNonce can be increased by at 2^32 at a time to prevent it from /// overflowing beyond 2**128. - uint256 constant MAXIMAL_MIN_NONCE_INCREMENT = 2 ** 32; + uint256 private constant MAXIMAL_MIN_NONCE_INCREMENT = 2 ** 32; /// RawNonces for accounts are stored in format /// minNonce + 2^128 * deploymentNonce, where deploymentNonce /// is the nonce used for deploying smart contracts. - mapping(uint256 => uint256) internal rawNonces; + mapping(uint256 account => uint256 packedMinAndDeploymentNonce) internal rawNonces; /// Mapping of values under nonces for accounts. /// The main key of the mapping is the 256-bit address of the account, while the /// inner mapping is a mapping from a nonce to the value stored there. - mapping(uint256 => mapping(uint256 => uint256)) internal nonceValues; + mapping(uint256 account => mapping(uint256 nonceKey => uint256 value)) internal nonceValues; /// @notice Returns the current minimal nonce for account. /// @param _address The account to return the minimal nonce for @@ -147,6 +147,10 @@ contract NonceHolder is INonceHolder, ISystemContract { (prevDeploymentNonce, ) = _splitRawNonce(oldRawNonce); } + /// @notice A method that checks whether the nonce has been used before. + /// @param _address The address the nonce of which is being checked. + /// @param _nonce The nonce value which is checked. + /// @return `true` if the nonce has been used, `false` otherwise. function isNonceUsed(address _address, uint256 _nonce) public view returns (bool) { uint256 addressAsKey = uint256(uint160(_address)); return (_nonce < getMinNonce(_address) || nonceValues[addressAsKey][_nonce] > 0); diff --git a/etc/system-contracts/contracts/SystemContext.sol b/etc/system-contracts/contracts/SystemContext.sol index 67f9248e..f42a73ea 100644 --- a/etc/system-contracts/contracts/SystemContext.sol +++ b/etc/system-contracts/contracts/SystemContext.sol @@ -41,7 +41,7 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr address public coinbase = BOOTLOADER_FORMAL_ADDRESS; /// @notice Formal `block.difficulty` parameter. - uint256 public difficulty = 2500000000000000; + uint256 public difficulty = 2.5e15; /// @notice The `block.basefee`. /// @dev It is currently a constant. @@ -52,7 +52,7 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr /// @notice The hashes of batches. /// @dev It stores batch hashes for all previous batches. - mapping(uint256 => bytes32) internal batchHash; + mapping(uint256 batchNumber => bytes32 batchHash) internal batchHashes; /// @notice The number and the timestamp of the current L2 block. BlockInfo internal currentL2BlockInfo; @@ -117,7 +117,7 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr } else if (_block < currentVirtualBlockUpgradeInfo.virtualBlockStartBatch) { // Note, that we will get into this branch only for a brief moment of time, right after the upgrade // for virtual blocks before 256 virtual blocks are produced. - hash = batchHash[_block]; + hash = batchHashes[_block]; } else if ( _block >= currentVirtualBlockUpgradeInfo.virtualBlockFinishL2Block && currentVirtualBlockUpgradeInfo.virtualBlockFinishL2Block > 0 @@ -135,7 +135,7 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr /// @param _batchNumber The number of the batch. /// @return hash The hash of the batch. function getBatchHash(uint256 _batchNumber) external view returns (bytes32 hash) { - hash = batchHash[_batchNumber]; + hash = batchHashes[_batchNumber]; } /// @notice Returns the current batch's number and timestamp. @@ -424,7 +424,7 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr _ensureBatchConsistentWithL2Block(_newTimestamp); - batchHash[previousBatchNumber] = _prevBatchHash; + batchHashes[previousBatchNumber] = _prevBatchHash; // Setting new block number and timestamp BlockInfo memory newBlockInfo = BlockInfo({number: previousBatchNumber + 1, timestamp: _newTimestamp}); @@ -478,6 +478,6 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr /// @notice Returns the hash of the given batch. /// @dev Deprecated in favor of getBatchHash. function blockHash(uint256 _blockNumber) external view returns (bytes32 hash) { - hash = batchHash[_blockNumber]; + hash = batchHashes[_blockNumber]; } } diff --git a/etc/system-contracts/contracts/interfaces/IComplexUpgrader.sol b/etc/system-contracts/contracts/interfaces/IComplexUpgrader.sol index ebc26dd2..1b5e1518 100644 --- a/etc/system-contracts/contracts/interfaces/IComplexUpgrader.sol +++ b/etc/system-contracts/contracts/interfaces/IComplexUpgrader.sol @@ -2,6 +2,11 @@ pragma solidity 0.8.20; +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice The interface for the ComplexUpgrader contract. + */ interface IComplexUpgrader { function upgrade(address _delegateTo, bytes calldata _calldata) external payable; } diff --git a/etc/system-contracts/contracts/interfaces/ICompressor.sol b/etc/system-contracts/contracts/interfaces/ICompressor.sol index 16e02d97..5c1ee3d3 100644 --- a/etc/system-contracts/contracts/interfaces/ICompressor.sol +++ b/etc/system-contracts/contracts/interfaces/ICompressor.sol @@ -9,6 +9,12 @@ uint8 constant LENGTH_BITS_OFFSET = 3; // The maximal length in bytes that an enumeration index can have. uint8 constant MAX_ENUMERATION_INDEX_SIZE = 8; +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice The interface for the Compressor contract, responsible for verifying the correctness of + * the compression of the state diffs and bytecodes. + */ interface ICompressor { function publishCompressedBytecode( bytes calldata _bytecode, diff --git a/etc/system-contracts/contracts/interfaces/IKnownCodesStorage.sol b/etc/system-contracts/contracts/interfaces/IKnownCodesStorage.sol index b5a783ba..98a1277d 100644 --- a/etc/system-contracts/contracts/interfaces/IKnownCodesStorage.sol +++ b/etc/system-contracts/contracts/interfaces/IKnownCodesStorage.sol @@ -2,6 +2,12 @@ pragma solidity 0.8.20; +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice The interface for the KnownCodesStorage contract, which is responsible + * for storing the hashes of the bytecodes that have been published to the network. + */ interface IKnownCodesStorage { event MarkedAsKnown(bytes32 indexed bytecodeHash, bool indexed sendBytecodeToL1); diff --git a/etc/system-contracts/contracts/interfaces/IL1Messenger.sol b/etc/system-contracts/contracts/interfaces/IL1Messenger.sol index ab6a670f..cd0cc90f 100644 --- a/etc/system-contracts/contracts/interfaces/IL1Messenger.sol +++ b/etc/system-contracts/contracts/interfaces/IL1Messenger.sol @@ -32,6 +32,11 @@ bytes32 constant L2_L1_LOGS_TREE_DEFAULT_LEAF_HASH = 0x72abee45b59e344af8a6e5202 /// @dev The current version of state diff compression being used. uint256 constant STATE_DIFF_COMPRESSION_VERSION_NUMBER = 1; +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice The interface of the L1 Messenger contract, responsible for sending messages to L1. + */ interface IL1Messenger { // Possibly in the future we will be able to track the messages sent to L1 with // some hooks in the VM. For now, it is much easier to track them with L2 events. diff --git a/etc/system-contracts/contracts/interfaces/ISystemContext.sol b/etc/system-contracts/contracts/interfaces/ISystemContext.sol index d8a98292..1089ab1f 100644 --- a/etc/system-contracts/contracts/interfaces/ISystemContext.sol +++ b/etc/system-contracts/contracts/interfaces/ISystemContext.sol @@ -4,6 +4,7 @@ pragma solidity 0.8.20; /** * @author Matter Labs + * @custom:security-contact security@matterlabs.dev * @notice Contract that stores some of the context variables, that may be either * block-scoped, tx-scoped or system-wide. */ diff --git a/etc/system-contracts/contracts/interfaces/ISystemContextDeprecated.sol b/etc/system-contracts/contracts/interfaces/ISystemContextDeprecated.sol index b51faeed..a44b61b2 100644 --- a/etc/system-contracts/contracts/interfaces/ISystemContextDeprecated.sol +++ b/etc/system-contracts/contracts/interfaces/ISystemContextDeprecated.sol @@ -4,6 +4,7 @@ pragma solidity 0.8.20; /** * @author Matter Labs + * @custom:security-contact security@matterlabs.dev * @notice The interface with deprecated functions of the SystemContext contract. It is aimed for backward compatibility. */ interface ISystemContextDeprecated { diff --git a/etc/system-contracts/contracts/interfaces/ISystemContract.sol b/etc/system-contracts/contracts/interfaces/ISystemContract.sol index c486abc9..1a2bf514 100644 --- a/etc/system-contracts/contracts/interfaces/ISystemContract.sol +++ b/etc/system-contracts/contracts/interfaces/ISystemContract.sol @@ -5,10 +5,15 @@ pragma solidity 0.8.20; import {SystemContractHelper} from "../libraries/SystemContractHelper.sol"; import {BOOTLOADER_FORMAL_ADDRESS} from "../Constants.sol"; -/// @dev Solidity does not allow exporting modifiers via libraries, so -/// the only way to do reuse modifiers is to have a base contract -/// @dev Never add storage variables into this contract as some -/// system contracts rely on this abstract contract as on interface! +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice An abstract contract that is used to reuse modifiers across the system contracts. + * @dev Solidity does not allow exporting modifiers via libraries, so + * the only way to do reuse modifiers is to have a base contract + * @dev Never add storage variables into this contract as some + * system contracts rely on this abstract contract as on interface! + */ abstract contract ISystemContract { /// @notice Modifier that makes sure that the method /// can only be called via a system call. diff --git a/etc/system-contracts/contracts/libraries/TransactionHelper.sol b/etc/system-contracts/contracts/libraries/TransactionHelper.sol index e0578197..27a4f859 100644 --- a/etc/system-contracts/contracts/libraries/TransactionHelper.sol +++ b/etc/system-contracts/contracts/libraries/TransactionHelper.sol @@ -21,7 +21,7 @@ uint8 constant EIP_2930_TX_TYPE = 0x01; /// @dev The type id of EIP1559 transactions. uint8 constant EIP_1559_TX_TYPE = 0x02; -/// @notice Structure used to represent zkSync transaction. +/// @notice Structure used to represent a zkSync transaction. struct Transaction { // The type of the transaction. uint256 txType; diff --git a/etc/system-contracts/contracts/precompiles/Ecrecover.yul b/etc/system-contracts/contracts/precompiles/Ecrecover.yul index d0e5924b..cbb8fcc0 100644 --- a/etc/system-contracts/contracts/precompiles/Ecrecover.yul +++ b/etc/system-contracts/contracts/precompiles/Ecrecover.yul @@ -21,7 +21,7 @@ object "Ecrecover" { /// @dev The gas cost of processing ecrecover circuit precompile. function ECRECOVER_GAS_COST() -> ret { - ret := 1112 + ret := 7000 } //////////////////////////////////////////////////////////////// diff --git a/etc/system-contracts/contracts/precompiles/Keccak256.yul b/etc/system-contracts/contracts/precompiles/Keccak256.yul index b078d580..8eaa5367 100644 --- a/etc/system-contracts/contracts/precompiles/Keccak256.yul +++ b/etc/system-contracts/contracts/precompiles/Keccak256.yul @@ -2,9 +2,7 @@ * @author Matter Labs * @custom:security-contact security@matterlabs.dev * @notice The contract used to emulate EVM's keccak256 opcode. - * @dev It accepts the data to be hashed, pad it by the specification - * and uses `precompileCall` to call the zkEVM built-in precompiles. - * @dev Thus keccak256 precompile circuit operates over padded data to perform efficient sponge round computation. + * @dev It accepts the data to be hashed in the calldata, propagates it to the zkEVM built-in circuit precompile via `precompileCall`, and burns the gas. */ object "Keccak256" { code { @@ -16,34 +14,57 @@ object "Keccak256" { // CONSTANTS //////////////////////////////////////////////////////////////// - /// @dev The size of the processing keccak256 block in bytes. + /// @dev Returns the block size used by the keccak256 hashing function. + /// The value 136 bytes corresponds to the size of the input data block that the keccak256 + /// algorithm processes in each round, as defined in the keccak256 specification. This is derived + /// from the formula (1600 - 2 * bit length of the digest) / 8, where the bit length for keccak256 + /// is 256 bits. For more details, refer to the Keccak specification at + /// https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf#page=30 function BLOCK_SIZE() -> ret { ret := 136 } /// @dev The gas cost of processing one keccak256 round. + /// @dev This constant is made equal to the corresponding constant in + /// https://github.com/matter-labs/era-zkevm_opcode_defs/blob/v1.4.1/src/circuit_prices.rs, + /// which was automatically generated depending on the capacity of rounds for a + /// single Keccak256 circuit. function KECCAK_ROUND_GAS_COST() -> ret { ret := 40 } + /// @dev Returns a 32-bit mask value + function UINT32_BIT_MASK() -> ret { + ret := 0xffffffff + } + //////////////////////////////////////////////////////////////// // HELPER FUNCTIONS //////////////////////////////////////////////////////////////// + + /// @dev Load raw calldata fat pointer + function getCalldataPtr() -> calldataPtr { + calldataPtr := verbatim_0i_1o("get_global::ptr_calldata") + } - // @dev Packs precompile parameters into one word. - // Note: functions expect to work with 32/64 bits unsigned integers. - // Caller should ensure the type matching before! + /// @dev Packs precompile parameters into one word. + /// Note: functions expect to work with 32/64 bits unsigned integers. + /// Caller should ensure the type matching before! function unsafePackPrecompileParams( - uint32_inputOffsetInWords, - uint32_inputLengthInWords, + uint32_inputOffsetInBytes, + uint32_inputLengthInBytes, uint32_outputOffsetInWords, uint32_outputLengthInWords, + uint32_memoryPageToRead, + uint32_memoryPageToWrite, uint64_perPrecompileInterpreted ) -> rawParams { - rawParams := uint32_inputOffsetInWords - rawParams := or(rawParams, shl(32, uint32_inputLengthInWords)) + rawParams := uint32_inputOffsetInBytes + rawParams := or(rawParams, shl(32, uint32_inputLengthInBytes)) rawParams := or(rawParams, shl(64, uint32_outputOffsetInWords)) rawParams := or(rawParams, shl(96, uint32_outputLengthInWords)) + rawParams := or(rawParams, shl(128, uint32_memoryPageToRead)) + rawParams := or(rawParams, shl(160, uint32_memoryPageToWrite)) rawParams := or(rawParams, shl(192, uint64_perPrecompileInterpreted)) } @@ -56,73 +77,35 @@ object "Keccak256" { //////////////////////////////////////////////////////////////// // FALLBACK //////////////////////////////////////////////////////////////// + + // 1. Load raw calldata fat pointer + let calldataFatPtr := getCalldataPtr() - // Copy calldata to memory for pad it - let bytesSize := calldatasize() - calldatacopy(0, 0, bytesSize) - - let precompileParams - let gasToPay - - // Most often keccak256 is called with "short" input, so optimize it as a special case. - // NOTE: we consider the special case for sizes less than `BLOCK_SIZE() - 1`, so - // there is only one round and it is and padding can be done branchless - switch lt(bytesSize, sub(BLOCK_SIZE(), 1)) - case true { - // Write the 0x01 after the payload bytes and 0x80 at last byte of padded bytes - mstore(bytesSize, 0x0100000000000000000000000000000000000000000000000000000000000000) - mstore( - sub(BLOCK_SIZE(), 1), - 0x8000000000000000000000000000000000000000000000000000000000000000 - ) - - precompileParams := unsafePackPrecompileParams( - 0, // input offset in words - 5, // input length in words (Math.ceil(136/32) = 5) - 0, // output offset in words - 1, // output length in words - 1 // number of rounds - ) - gasToPay := KECCAK_ROUND_GAS_COST() - } - default { - let padLen := sub(BLOCK_SIZE(), mod(bytesSize, BLOCK_SIZE())) - let paddedByteSize := add(bytesSize, padLen) + // 2. Parse calldata fat pointer + let ptrMemoryPage := and(shr(32, calldataFatPtr), UINT32_BIT_MASK()) + let ptrStart := and(shr(64, calldataFatPtr), UINT32_BIT_MASK()) + let ptrLength := and(shr(96, calldataFatPtr), UINT32_BIT_MASK()) - switch eq(padLen, 1) - case true { - // Write 0x81 after the payload bytes - mstore(bytesSize, 0x8100000000000000000000000000000000000000000000000000000000000000) - } - default { - // Write the 0x01 after the payload bytes and 0x80 at last byte of padded bytes - mstore(bytesSize, 0x0100000000000000000000000000000000000000000000000000000000000000) - mstore( - sub(paddedByteSize, 1), - 0x8000000000000000000000000000000000000000000000000000000000000000 - ) - } - - let numRounds := div(paddedByteSize, BLOCK_SIZE()) - precompileParams := unsafePackPrecompileParams( - 0, // input offset in words - div(add(paddedByteSize, 31), 32), // input length in words (safe to pass, never exceed `type(uint32).max`) - 0, // output offset in words - 1, // output length in words - numRounds // number of rounds (safe to pass, never exceed `type(uint64).max`) - ) - gasToPay := mul(KECCAK_ROUND_GAS_COST(), numRounds) - } + // 3. Pack precompile parameters + let precompileParams := unsafePackPrecompileParams( + ptrStart, // input offset in bytes + ptrLength, // input length in bytes (safe to pass, never exceed `type(uint32).max`) + 0, // output offset in words + 1, // output length in words (NOTE: VM doesn't check this value for now, but this could change in future) + ptrMemoryPage, // memory page to read from + 0, // memory page to write to (0 means write to heap) + 0 // per precompile interpreted value (0 since circuit doesn't react on this value anyway) + ) + // 4. Calculate number of required hash rounds per calldata + let numRounds := add(div(ptrLength, BLOCK_SIZE()), 1) + let gasToPay := mul(KECCAK_ROUND_GAS_COST(), numRounds) + // 5. Call precompile let success := precompileCall(precompileParams, gasToPay) - - switch success - case 0 { + if iszero(success) { revert(0, 0) } - default { - return(0, 32) - } + return(0, 32) } } } diff --git a/etc/system-contracts/contracts/precompiles/test-contracts/Keccak256Mock.yul b/etc/system-contracts/contracts/precompiles/test-contracts/Keccak256Mock.yul new file mode 100644 index 00000000..b37eb69c --- /dev/null +++ b/etc/system-contracts/contracts/precompiles/test-contracts/Keccak256Mock.yul @@ -0,0 +1,99 @@ +/** + * @author Matter Labs + * @notice The contract used to emulate EVM's keccak256 opcode. + * @dev It accepts the data to be hashed in the calldata, propagate it to the zkEVM built-in circuit precompile via `precompileCall` and burn . + */ + object "Keccak256" { + code { } + object "Keccak256_deployed" { + code { + //////////////////////////////////////////////////////////////// + // CONSTANTS + //////////////////////////////////////////////////////////////// + + /// @dev The size of the processing keccak256 block in bytes. + function BLOCK_SIZE() -> ret { + ret := 136 + } + + /// @dev The gas cost of processing one keccak256 round. + function KECCAK_ROUND_GAS_COST() -> ret { + ret := 40 + } + + /// @dev Returns a 32-bit mask value + function UINT32_BIT_MASK() -> ret { + ret := 0xffffffff + } + + //////////////////////////////////////////////////////////////// + // HELPER FUNCTIONS + //////////////////////////////////////////////////////////////// + + /// @dev Load raw calldata fat pointer + function getCalldataPtr() -> calldataPtr { + calldataPtr := verbatim_0i_1o("get_global::ptr_calldata") + } + + /// @dev Packs precompile parameters into one word. + /// Note: functions expect to work with 32/64 bits unsigned integers. + /// Caller should ensure the type matching before! + function unsafePackPrecompileParams( + uint32_inputOffsetInBytes, + uint32_inputLengthInBytes, + uint32_outputOffsetInWords, + uint32_outputLengthInWords, + uint32_memoryPageToRead, + uint32_memoryPageToWrite, + uint64_perPrecompileInterpreted + ) -> rawParams { + rawParams := uint32_inputOffsetInBytes + rawParams := or(rawParams, shl(32, uint32_inputLengthInBytes)) + rawParams := or(rawParams, shl(64, uint32_outputOffsetInWords)) + rawParams := or(rawParams, shl(96, uint32_outputLengthInWords)) + rawParams := or(rawParams, shl(128, uint32_memoryPageToRead)) + rawParams := or(rawParams, shl(160, uint32_memoryPageToWrite)) + rawParams := or(rawParams, shl(192, uint64_perPrecompileInterpreted)) + } + + /// @dev Executes the `precompileCall` opcode. + function precompileCall(precompileParams, gasToBurn) -> ret { + // Compiler simulation for calling `precompileCall` opcode + ret := verbatim_2i_1o("precompile", precompileParams, gasToBurn) + } + + //////////////////////////////////////////////////////////////// + // FALLBACK + //////////////////////////////////////////////////////////////// + + // 1. Load raw calldata fat pointer + let calldataFatPtr := getCalldataPtr() + + // 2. Parse calldata fat pointer + let ptrMemoryPage := and(shr(32, calldataFatPtr), UINT32_BIT_MASK()) + let ptrStart := and(shr(64, calldataFatPtr), UINT32_BIT_MASK()) + let ptrLength := and(shr(96, calldataFatPtr), UINT32_BIT_MASK()) + + // 3. Pack precompile parameters + let precompileParams := unsafePackPrecompileParams( + ptrStart, // input offset in bytes + ptrLength, // input length in bytes (safe to pass, never exceed `type(uint32).max`) + 0, // output offset in words + 1, // output length in words (NOTE: VM doesn't check this value for now, but this could change in future) + ptrMemoryPage, // memory page to read from + 0, // memory page to write to (0 means write to heap) + 0 // per precompile interpreted value (0 since circuit doesn't react on this value anyway) + ) + // 4. Calculate number of required hash rounds per calldata + let numRounds := div(add(ptrLength, sub(BLOCK_SIZE(), 1)), BLOCK_SIZE()) + let gasToPay := 0 + + // 5. Call precompile + let success := precompileCall(precompileParams, gasToPay) + if iszero(success) { + revert(0, 0) + } + return(0, 32) + } + } +} diff --git a/etc/system-contracts/contracts/test-contracts/AlwaysRevert.sol b/etc/system-contracts/contracts/test-contracts/AlwaysRevert.sol new file mode 100644 index 00000000..90211748 --- /dev/null +++ b/etc/system-contracts/contracts/test-contracts/AlwaysRevert.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.0; + +contract AlwaysRevert { + fallback() external { + revert(""); + } +} diff --git a/etc/system-contracts/contracts/test-contracts/Callable.sol b/etc/system-contracts/contracts/test-contracts/Callable.sol deleted file mode 100644 index e7477e0c..00000000 --- a/etc/system-contracts/contracts/test-contracts/Callable.sol +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract Callable { - event Called(uint256 value, bytes data); - - fallback() external payable { - uint256 len; - assembly { - len := calldatasize() - } - bytes memory data = new bytes(len); - assembly { - calldatacopy(add(data, 0x20), 0, len) - } - emit Called(msg.value, data); - } -} diff --git a/etc/system-contracts/contracts/test-contracts/DummyUpgrade.sol b/etc/system-contracts/contracts/test-contracts/DummyUpgrade.sol deleted file mode 100644 index b369f9a9..00000000 --- a/etc/system-contracts/contracts/test-contracts/DummyUpgrade.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract DummyUpgrade { - event Upgraded(); - - function performUpgrade() public { - emit Upgraded(); - } -} diff --git a/etc/system-contracts/contracts/test-contracts/EventWriterTest.sol b/etc/system-contracts/contracts/test-contracts/EventWriterTest.sol deleted file mode 100644 index faf09cd7..00000000 --- a/etc/system-contracts/contracts/test-contracts/EventWriterTest.sol +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract EventWriterTest { - event ZeroTopics(bytes data) anonymous; - event OneTopic(bytes data); - event TwoTopics(uint256 indexed topic1, bytes data); - event ThreeTopics(uint256 indexed topic1, uint256 indexed topic2, bytes data); - event FourTopics(uint256 indexed topic1, uint256 indexed topic2, uint256 indexed topic3, bytes data); - - function zeroTopics(bytes calldata data) external { - emit ZeroTopics(data); - } - - function oneTopic(bytes calldata data) external { - emit OneTopic(data); - } - - function twoTopics(uint256 topic1, bytes calldata data) external { - emit TwoTopics(topic1, data); - } - - function threeTopics(uint256 topic1, uint256 topic2, bytes calldata data) external { - emit ThreeTopics(topic1, topic2, data); - } - - function fourTopics(uint256 topic1, uint256 topic2, uint256 topic3, bytes calldata data) external { - emit FourTopics(topic1, topic2, topic3, data); - } -} diff --git a/etc/system-contracts/contracts/test-contracts/ExtraAbiCaller.zasm b/etc/system-contracts/contracts/test-contracts/ExtraAbiCaller.zasm new file mode 100644 index 00000000..04343af3 --- /dev/null +++ b/etc/system-contracts/contracts/test-contracts/ExtraAbiCaller.zasm @@ -0,0 +1,60 @@ +.text + .file "main" + .globl __entry +__entry: +.func_begin0: + sub.s! 0, r2, r0 + jump.eq @.RUNTIME_CODE + ; deployment code + add 32, r0, r1 + st.1 r0, r1 + st.1 r1, r0 + add @CPI0_1[0], r0, r1 + ret.ok.to_label r1, @DEFAULT_FAR_RETURN +.RUNTIME_CODE: + ; ABI: + ; 0-32 address(in the lowest 20 bytes) + ; 32-64 msg.value + ; 64-384 extra data + ; 384+ calldata + ; + ; load address into r2 + ld.inc r1, r2, r1 + ; set msg.value + ld.inc r1, r3, r1 + context.set_context_u128 r3 + ; load extra abi data into r3-r12 + ld.inc r1, r3, r1 + ld.inc r1, r4, r1 + ld.inc r1, r5, r1 + ld.inc r1, r6, r1 + ld.inc r1, r7, r1 + ld.inc r1, r8, r1 + ld.inc r1, r9, r1 + ld.inc r1, r10, r1 + ld.inc r1, r11, r1 + ld.inc r1, r12, r1 + ptr.pack.s @CPI0_0[0], r1, r1 + far_call r1, r2, @.CALL_REVERT + ptr.pack.s @CPI0_2[0], r1, r1 + ret.ok r1 +.CALL_REVERT: + ptr.pack.s @CPI0_2[0], r1, r1 + ret.revert r1 +.func_end0: + .note.GNU-stack + .rodata +; far call abi: +; gas amount = 0xFFFFFFFF(max) +; forwarding mode = fat ptr +; shard id = 0 +; constructor flag = false +; system call flag = true +; 01 00 00 01 FFFFFFFF 0000000000000000 00000000000000000000000000000000 +CPI0_0: + .cell 452312902503159716397502014137536550255307801666780882257920705274096648192 +CPI0_1: + .cell 5070602400912917605986812821504 +; 01 0000000000000000 00000000000000000000000000000000 +CPI0_2: + .cell 6277101735386680763835789423207666416102355444464034512896 diff --git a/etc/system-contracts/contracts/test-contracts/KeccakTest.sol b/etc/system-contracts/contracts/test-contracts/KeccakTest.sol new file mode 100644 index 00000000..8f2aef93 --- /dev/null +++ b/etc/system-contracts/contracts/test-contracts/KeccakTest.sol @@ -0,0 +1,171 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.0; +pragma abicoder v2; + +import "../libraries/SystemContractsCaller.sol"; +import "../Constants.sol"; +import "../libraries/EfficientCall.sol"; + +// In this test it is important to actuall change the real Keccak256's contract's bytecode, +// which requires changes in the real AccountCodeStorage contract +address constant REAL_DEPLOYER_SYSTEM_CONTRACT = address(0x8006); +address constant REAL_FORCE_DEPLOYER_ADDRESS = address(0x8007); + +contract KeccakTest { + bytes32 constant EMPTY_STRING_KECCAK = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; + + // Just some computation-heavy function, it will be used to test out of gas + function infiniteFuction(uint256 n) public pure returns (uint256 sumOfSquares) { + for (uint i = 0; i < n; i++) { + sumOfSquares += i * i; + } + } + + function _loadFarCallABIIntoActivePtr(uint256 _gas) private view { + uint256 farCallAbi = SystemContractsCaller.getFarCallABIWithEmptyFatPointer( + uint32(_gas), + // Only rollup is supported for now + 0, + CalldataForwardingMode.ForwardFatPointer, + false, + false + ); + _ptrPackIntoActivePtr(farCallAbi); + } + + function _loadReturnDataIntoActivePtr() internal { + address callAddr = LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS; + assembly { + pop(staticcall(0, callAddr, 0, 0xFFFF, 0, 0)) + } + } + + function _ptrPackIntoActivePtr(uint256 _farCallAbi) internal view { + address callAddr = PTR_PACK_INTO_ACTIVE_CALL_ADDRESS; + assembly { + pop(staticcall(_farCallAbi, callAddr, 0, 0xFFFF, 0, 0)) + } + } + + function rawCallByRef(address _address) internal returns (bool success) { + address callAddr = RAW_FAR_CALL_BY_REF_CALL_ADDRESS; + assembly { + success := call(_address, callAddr, 0, 0, 0xFFFF, 0, 0) + } + } + + function zeroPointerTest() external { + try this.infiniteFuction{gas: 1000000}(1000000) returns (uint256) { + revert("The transaction should have failed"); + } catch {} + + _loadReturnDataIntoActivePtr(); + _loadFarCallABIIntoActivePtr(1000000); + bool success = rawCallByRef(KECCAK256_SYSTEM_CONTRACT); + require(success, "The call to keccak should have succeeded"); + + uint256 returndataSize = 0; + assembly { + returndataSize := returndatasize() + } + require(returndataSize == 32, "The return data size should be 32 bytes"); + + bytes32 result; + assembly { + returndatacopy(0, 0, 32) + result := mload(0) + } + + require(result == EMPTY_STRING_KECCAK, "The result is not correct"); + } + + function keccakUpgradeTest( + bytes calldata eraseCallData, + bytes calldata upgradeCalldata + ) external returns (bytes32 hash) { + // Firstly, we reset keccak256 bytecode to be some random bytecode + EfficientCall.mimicCall( + gasleft(), + address(REAL_DEPLOYER_SYSTEM_CONTRACT), + eraseCallData, + REAL_FORCE_DEPLOYER_ADDRESS, + false, + false + ); + + // Since the keccak contract has been erased, it should not work anymore + try this.callKeccak(msg.data[0:0]) returns (bytes32) { + revert("The keccak should not work anymore"); + } catch {} + + // Upgrading it back to the correct version: + EfficientCall.mimicCall( + gasleft(), + address(REAL_DEPLOYER_SYSTEM_CONTRACT), + upgradeCalldata, + REAL_FORCE_DEPLOYER_ADDRESS, + false, + false + ); + + // Now it should work again + hash = this.callKeccak(msg.data[0:0]); + require(hash == EMPTY_STRING_KECCAK, "Keccak should start working again"); + } + + function keccakPerformUpgrade(bytes calldata upgradeCalldata) external { + EfficientCall.mimicCall( + gasleft(), + address(REAL_DEPLOYER_SYSTEM_CONTRACT), + upgradeCalldata, + REAL_FORCE_DEPLOYER_ADDRESS, + false, + false + ); + } + + function callKeccak(bytes calldata _data) external pure returns (bytes32 hash) { + hash = keccak256(_data); + } + + function keccakValidationTest( + bytes calldata upgradeCalldata, + bytes calldata resetCalldata, + bytes[] calldata testInputs, + bytes32[] calldata expectedOutputs + ) external { + require(testInputs.length == expectedOutputs.length, "mismatch between number of inputs and outputs"); + + // Firstly, we upgrade keccak256 bytecode to the correct version. + EfficientCall.mimicCall( + gasleft(), + address(REAL_DEPLOYER_SYSTEM_CONTRACT), + upgradeCalldata, + REAL_FORCE_DEPLOYER_ADDRESS, + false, + false + ); + + bytes32[] memory result = new bytes32[](testInputs.length); + + for (uint256 i = 0; i < testInputs.length; i++) { + bytes32 res = this.callKeccak(testInputs[i]); + result[i] = res; + } + + for (uint256 i = 0; i < result.length; i++) { + require(result[i] == expectedOutputs[i], "hash was not calculated correctly"); + } + + // Upgrading it back to the original version: + EfficientCall.mimicCall( + gasleft(), + address(REAL_DEPLOYER_SYSTEM_CONTRACT), + resetCalldata, + REAL_FORCE_DEPLOYER_ADDRESS, + false, + false + ); + } +} diff --git a/etc/system-contracts/contracts/test-contracts/MockContract.sol b/etc/system-contracts/contracts/test-contracts/MockContract.sol new file mode 100644 index 00000000..1505be34 --- /dev/null +++ b/etc/system-contracts/contracts/test-contracts/MockContract.sol @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.20; + +contract MockContract { + event Called(uint256 value, bytes data); + + struct CallResult { + bytes input; + bool failure; + bytes returnData; + } + + CallResult[] private results; + + constructor() { + // Clean results if mock was redeployed. + delete results; + } + + // This function call will not pass to fallback, but this is fine for the tests. + function setResult(CallResult calldata result) external { + bytes32 inputKeccak = keccak256(result.input); + for (uint256 i = 0; i < results.length; i++) { + if (keccak256(results[i].input) == inputKeccak) { + results[i] = result; + return; + } + } + results.push(result); + } + + fallback() external payable { + bytes memory data = msg.data; + bytes32 inputKeccak = keccak256(data); + + // empty return data with successful result by default. + bool failure; + bytes memory returnData; + + for (uint256 i = 0; i < results.length; i++) { + if (keccak256(results[i].input) == inputKeccak) { + failure = results[i].failure; + returnData = results[i].returnData; + break; + } + } + + // Emitting event only if empty successful result expected. + // Can fail if call context is static, but usually it's not a case, + // because view/pure call without return data doesn't make sense. + // Useful, because for such calls we can check for this event, + // to be sure that the needed call was made. + if (!failure && returnData.length == 0) { + emit Called(msg.value, data); + } + + assembly { + switch failure + case 0 { + return(add(returnData, 0x20), mload(returnData)) + } + default { + revert(add(returnData, 0x20), mload(returnData)) + } + } + } +} diff --git a/etc/system-contracts/contracts/test-contracts/MockERC20Approve.sol b/etc/system-contracts/contracts/test-contracts/MockERC20Approve.sol deleted file mode 100644 index c9931389..00000000 --- a/etc/system-contracts/contracts/test-contracts/MockERC20Approve.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract MockERC20Approve { - event Approved(address to, uint256 value); - - function approve(address spender, uint256 value) external returns (bool) { - emit Approved(spender, value); - return true; - } - - function allowance(address owner, address spender) external view returns (uint256) { - return 0; - } -} diff --git a/etc/system-contracts/contracts/test-contracts/MockKnownCodesStorage.sol b/etc/system-contracts/contracts/test-contracts/MockKnownCodesStorage.sol deleted file mode 100644 index 7cec142e..00000000 --- a/etc/system-contracts/contracts/test-contracts/MockKnownCodesStorage.sol +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract MockKnownCodesStorage { - event MockBytecodePublished(bytes32 indexed bytecodeHash); - - function markBytecodeAsPublished(bytes32 _bytecodeHash) external { - emit MockBytecodePublished(_bytecodeHash); - } - - // To be able to deploy original know codes storage again - function getMarker(bytes32) public pure returns (uint256 marker) { - return 1; - } - - // To prevent failing during calls from the bootloader - fallback() external {} -} diff --git a/etc/system-contracts/contracts/test-contracts/MockL1Messenger.sol b/etc/system-contracts/contracts/test-contracts/MockL1Messenger.sol deleted file mode 100644 index b24da511..00000000 --- a/etc/system-contracts/contracts/test-contracts/MockL1Messenger.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract MockL1Messenger { - event MockBytecodeL1Published(bytes32 indexed bytecodeHash); - - function requestBytecodeL1Publication(bytes32 _bytecodeHash) external { - emit MockBytecodeL1Published(_bytecodeHash); - } - - // To prevent failing during calls from the bootloader - function sendToL1(bytes calldata) external returns (bytes32) { - return bytes32(0); - } -} diff --git a/etc/system-contracts/contracts/test-contracts/NotSystemCaller.sol b/etc/system-contracts/contracts/test-contracts/NotSystemCaller.sol deleted file mode 100644 index 0c85deb6..00000000 --- a/etc/system-contracts/contracts/test-contracts/NotSystemCaller.sol +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract NotSystemCaller { - address immutable to; - - constructor(address _to) { - to = _to; - } - - fallback() external payable { - address _to = to; - assembly { - calldatacopy(0, 0, calldatasize()) - - let result := call(gas(), _to, callvalue(), 0, calldatasize(), 0, 0) - - returndatacopy(0, 0, returndatasize()) - - switch result - case 0 { - revert(0, returndatasize()) - } - default { - return(0, returndatasize()) - } - } - } -} diff --git a/etc/system-contracts/contracts/test-contracts/SystemCaller.sol b/etc/system-contracts/contracts/test-contracts/SystemCaller.sol index 58adfce2..77bfa707 100644 --- a/etc/system-contracts/contracts/test-contracts/SystemCaller.sol +++ b/etc/system-contracts/contracts/test-contracts/SystemCaller.sol @@ -2,8 +2,13 @@ pragma solidity 0.8.20; -import {SystemContractsCaller} from "../libraries/SystemContractsCaller.sol"; +import {SYSTEM_CALL_CALL_ADDRESS, MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT, SystemContractsCaller, CalldataForwardingMode} from "../libraries/SystemContractsCaller.sol"; +import "../libraries/Utils.sol"; +address constant REAL_MSG_VALUE_SYSTEM_CONTRACT = address(0x8009); + +// Proxy that sets system call, does the same thing as `ExtraAbiCaller.zasm`, but can be called with callee abi, which is more convenient. +// Also updates the real balance of the callee. contract SystemCaller { address immutable to; @@ -11,15 +16,61 @@ contract SystemCaller { to = _to; } + // The library method will not work, because it uses the MsgValueSimulator test address. fallback() external payable { - bytes memory result = SystemContractsCaller.systemCallWithPropagatedRevert( - uint32(gasleft()), - to, - uint128(msg.value), - msg.data + address callAddr = SYSTEM_CALL_CALL_ADDRESS; + + address _to = to; + bytes memory data = msg.data; + uint32 dataStart; + assembly { + dataStart := add(data, 0x20) + } + uint32 dataLength = uint32(Utils.safeCastToU32(data.length)); + + uint256 farCallAbi = SystemContractsCaller.getFarCallABI( + 0, + 0, + dataStart, + dataLength, + Utils.safeCastToU32(gasleft()), + // Only rollup is supported for now + 0, + CalldataForwardingMode.UseHeap, + false, + true ); + + bool success; + if (msg.value == 0) { + // Doing the system call directly + assembly { + success := call(_to, callAddr, 0, 0, farCallAbi, 0, 0) + } + } else { + address msgValueSimulator = REAL_MSG_VALUE_SYSTEM_CONTRACT; + // We need to supply the mask to the MsgValueSimulator to denote + // that the call should be a system one. + uint256 forwardMask = MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT; + + assembly { + success := call(msgValueSimulator, callAddr, callvalue(), _to, farCallAbi, forwardMask, 0) + } + } + uint256 returnDataSize; + assembly { + returnDataSize := returndatasize() + } + bytes memory returnData = new bytes(returnDataSize); assembly { - return(add(result, 0x20), mload(result)) + returndatacopy(add(returnData, 0x20), 0, returnDataSize) + switch success + case 0 { + revert(add(returnData, 0x20), returnDataSize) + } + default { + return(add(returnData, 0x20), returnDataSize) + } } } } diff --git a/etc/system-contracts/contracts/test-contracts/TestSystemContract.sol b/etc/system-contracts/contracts/test-contracts/TestSystemContract.sol deleted file mode 100644 index 8eba841d..00000000 --- a/etc/system-contracts/contracts/test-contracts/TestSystemContract.sol +++ /dev/null @@ -1,137 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -import "../Constants.sol"; - -import "../DefaultAccount.sol"; - -import "../libraries/EfficientCall.sol"; -import "../interfaces/ISystemContract.sol"; -import {SystemContractHelper} from "../libraries/SystemContractHelper.sol"; -import {TestSystemContractHelper} from "./TestSystemContractHelper.sol"; - -/// @notice An example of a system contract that be used for local testing. -/// @dev It is not used anywhere except for testing -contract TestSystemContract is ISystemContract { - modifier onlySelf() { - require(msg.sender == address(this)); - _; - } - - function testPrecompileCall() external view { - // Without precompile call - { - uint256 gasBefore = gasleft(); - uint256 gasAfter = gasleft(); - require(gasBefore - gasAfter < 10, "Spent too much gas"); - } - - { - uint256 gasBefore = gasleft(); - SystemContractHelper.unsafePrecompileCall(0, 10000); - uint256 gasAfter = gasleft(); - require(gasBefore - gasAfter > 10000, "Did not spend enough gas"); - require(gasBefore - gasAfter < 10100, "Spent too much gas"); - } - } - - function testMimicCallAndValue(address whoToMimic, uint128 value) external { - // Note that we don't need to actually have the needed balance to set the `msg.value` for the next call - SystemContractHelper.setValueForNextFarCall(value); - this.performMimicCall( - address(this), - whoToMimic, - abi.encodeCall(TestSystemContract.saveContext, ()), - false, - false - ); - - require(latestMsgSender == whoToMimic, "mimicCall does not work"); - require(latestMsgValue == value, "setValueForNextFarCall does not work"); - } - - address public latestMsgSender; - uint128 public latestMsgValue; - uint256 public extraAbiData1; - uint256 public extraAbiData2; - - function saveContext() external payable { - latestMsgSender = msg.sender; - latestMsgValue = uint128(msg.value); - extraAbiData1 = SystemContractHelper.getExtraAbiData(0); - extraAbiData2 = SystemContractHelper.getExtraAbiData(1); - } - - function testOnlySystemModifier() external { - // Firstly, system contracts should be able to call it - (bool success, ) = address(this).call(abi.encodeCall(TestSystemContract.requireOnlySystem, ())); - require(success, "System contracts can call onlySystemCall methods"); - - // Non-system contract accounts should not be able to call it. - success = this.performRawMimicCall( - address(this), - address(MAX_SYSTEM_CONTRACT_ADDRESS + 1), - abi.encodeCall(TestSystemContract.requireOnlySystem, ()), - false, - false - ); - require(!success, "Normal acounts cannot call onlySystemCall methods without proper flags"); - - success = this.performRawMimicCall( - address(this), - address(MAX_SYSTEM_CONTRACT_ADDRESS + 1), - abi.encodeCall(TestSystemContract.requireOnlySystem, ()), - false, - true - ); - require(success, "Normal acounts cannot call onlySystemCall methods without proper flags"); - } - - function requireOnlySystem() external onlySystemCall {} - - function testSystemMimicCall() external { - this.performSystemMimicCall( - address(this), - address(MAX_SYSTEM_CONTRACT_ADDRESS + 1), - abi.encodeCall(TestSystemContract.saveContext, ()), - false, - 100, - 120 - ); - - require(extraAbiData1 == 100, "extraAbiData1 passed incorrectly"); - require(extraAbiData2 == 120, "extraAbiData2 passed incorrectly"); - } - - function performMimicCall( - address to, - address whoToMimic, - bytes calldata data, - bool isConstructor, - bool isSystem - ) external onlySelf returns (bytes memory) { - return EfficientCall.mimicCall(uint32(gasleft()), to, data, whoToMimic, isConstructor, isSystem); - } - - function performRawMimicCall( - address to, - address whoToMimic, - bytes calldata data, - bool isConstructor, - bool isSystem - ) external onlySelf returns (bool) { - return EfficientCall.rawMimicCall(uint32(gasleft()), to, data, whoToMimic, isConstructor, isSystem); - } - - function performSystemMimicCall( - address to, - address whoToMimic, - bytes calldata data, - bool isConstructor, - uint256 extraAbiParam1, - uint256 extraAbiParam2 - ) external onlySelf { - TestSystemContractHelper.systemMimicCall(to, whoToMimic, data, isConstructor, extraAbiParam1, extraAbiParam2); - } -} diff --git a/etc/system-contracts/contracts/test-contracts/TestSystemContractHelper.sol b/etc/system-contracts/contracts/test-contracts/TestSystemContractHelper.sol deleted file mode 100644 index 2f9f7073..00000000 --- a/etc/system-contracts/contracts/test-contracts/TestSystemContractHelper.sol +++ /dev/null @@ -1,108 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -import {MAX_SYSTEM_CONTRACT_ADDRESS, MSG_VALUE_SYSTEM_CONTRACT} from "../Constants.sol"; - -import "../libraries/SystemContractsCaller.sol"; -import "../libraries/SystemContractHelper.sol"; -import "../libraries/Utils.sol"; - -library TestSystemContractHelper { - /// @notice Perform a `mimicCall` with `isSystem` flag, with the ability to pass extra abi data. - /// @param to The address to call - /// @param whoToMimic The `msg.sender` for the next call. - /// @param data The calldata - /// @param isConstructor Whether the call should contain the `isConstructor` flag. - /// @param extraAbiParam1 The first extraAbi param to pass with the call - /// @param extraAbiParam2 The second extraAbi param to pass with the call - /// @return The returndata if the call was successful. Reverts otherwise. - /// @dev If called not in kernel mode, it will result in a revert (enforced by the VM) - function systemMimicCall( - address to, - address whoToMimic, - bytes calldata data, - bool isConstructor, - uint256 extraAbiParam1, - uint256 extraAbiParam2 - ) internal returns (bytes memory) { - bool success = rawSystemMimicCall(to, whoToMimic, data, isConstructor, extraAbiParam1, extraAbiParam2); - - uint256 size; - assembly { - size := returndatasize() - } - if (!success) { - assembly { - returndatacopy(0, 0, size) - revert(0, size) - } - } - - bytes memory result = new bytes(size); - assembly { - mstore(result, size) - returndatacopy(add(result, 0x20), 0, size) - } - return result; - } - - /// @notice Perform a `mimicCall` with `isSystem` flag, with the ability to pass extra abi data. - /// @param to The address to call - /// @param whoToMimic The `msg.sender` for the next call. - /// @param data The calldata - /// @param isConstructor Whether the call should contain the `isConstructor` flag. - /// @param extraAbiParam1 The first extraAbi param to pass with the call - /// @param extraAbiParam2 The second extraAbi param to pass with the call - /// @return success whether the call was successful. - /// @dev If called not in kernel mode, it will result in a revert (enforced by the VM) - function rawSystemMimicCall( - address to, - address whoToMimic, - bytes calldata data, - bool isConstructor, - uint256 extraAbiParam1, - uint256 extraAbiParam2 - ) internal returns (bool success) { - SystemContractHelper.loadCalldataIntoActivePtr(); - - // Currently, zkEVM considers the pointer valid if(ptr.offset < ptr.length || (ptr.length == 0 && ptr.offset == 0)), otherwise panics. - // So, if the data is empty we need to make the `ptr.length = ptr.offset = 0`, otherwise follow standard logic. - if (data.length == 0) { - // Safe to cast, offset is never bigger than `type(uint32).max` - SystemContractHelper.ptrShrinkIntoActive(uint32(msg.data.length)); - } else { - uint256 dataOffset; - assembly { - dataOffset := data.offset - } - - // Safe to cast, offset is never bigger than `type(uint32).max` - SystemContractHelper.ptrAddIntoActive(uint32(dataOffset)); - // Safe to cast, `data.length` is never bigger than `type(uint32).max` - uint32 shrinkTo = uint32(msg.data.length - (data.length + dataOffset)); - SystemContractHelper.ptrShrinkIntoActive(shrinkTo); - } - - uint32 gas = Utils.safeCastToU32(gasleft()); - uint256 farCallAbi = SystemContractsCaller.getFarCallABIWithEmptyFatPointer( - gas, - // Only rollup is supported for now - 0, - CalldataForwardingMode.ForwardFatPointer, - isConstructor, - true - ); - SystemContractHelper.ptrPackIntoActivePtr(farCallAbi); - - address callAddr = SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS; - uint256 cleanupMask = ADDRESS_MASK; - assembly { - // Clearing values before usage in assembly, since Solidity - // doesn't do it by default - whoToMimic := and(whoToMimic, cleanupMask) - - success := call(to, callAddr, 0, 0, whoToMimic, extraAbiParam1, extraAbiParam2) - } - } -} diff --git a/etc/system-contracts/hardhat.config.ts b/etc/system-contracts/hardhat.config.ts index 0ae0329a..32d2251a 100644 --- a/etc/system-contracts/hardhat.config.ts +++ b/etc/system-contracts/hardhat.config.ts @@ -1,15 +1,12 @@ import "@matterlabs/hardhat-zksync-chai-matchers"; +import "@matterlabs/hardhat-zksync-node"; import "@matterlabs/hardhat-zksync-solc"; import "@nomiclabs/hardhat-ethers"; -import "@nomiclabs/hardhat-solpp"; -import "@typechain/hardhat"; - -// eslint-disable-next-line @typescript-eslint/no-var-requires -const systemConfig = require("./SystemConfig.json"); +import "hardhat-typechain"; export default { zksolc: { - version: "1.3.14", + version: "1.3.18", compilerSource: "binary", settings: { isSystem: true, @@ -33,15 +30,6 @@ export default { }, }, }, - solpp: { - defs: (() => { - return { - ECRECOVER_COST_GAS: systemConfig.ECRECOVER_COST_GAS, - KECCAK_ROUND_COST_GAS: systemConfig.KECCAK_ROUND_COST_GAS, - SHA256_ROUND_COST_GAS: systemConfig.SHA256_ROUND_COST_GAS, - }; - })(), - }, networks: { hardhat: { zksync: true, @@ -52,4 +40,7 @@ export default { zksync: true, }, }, + paths: { + sources: "./contracts-preprocessed", + }, }; diff --git a/etc/system-contracts/package.json b/etc/system-contracts/package.json index ad977d73..6867cdbe 100644 --- a/etc/system-contracts/package.json +++ b/etc/system-contracts/package.json @@ -8,41 +8,32 @@ "@nomiclabs/hardhat-solpp": "^2.0.1", "commander": "^9.4.1", "ethers": "^5.7.0", - "hardhat": "=2.16.0", + "fast-glob": "^3.3.2", + "hardhat": "^2.18.3", "preprocess": "^3.2.0", "zksync-web3": "^0.14.3" }, "devDependencies": { - "@matterlabs/eslint-config-typescript": "^1.1.2", "@matterlabs/hardhat-zksync-chai-matchers": "^0.1.4", + "@matterlabs/hardhat-zksync-node": "^0.0.1-beta.7", "@matterlabs/hardhat-zksync-solc": "^0.4.2", - "@matterlabs/prettier-config": "^1.0.3", "@nomicfoundation/hardhat-chai-matchers": "^1.0.3", - "@nomiclabs/hardhat-ethers": "^2.0.6", - "@typechain/ethers-v5": "^10.0.0", - "@typechain/hardhat": "^7.0.0", - "@types/chai": "^4.3.1", + "@nomiclabs/hardhat-ethers": "^2.0.0", + "@typechain/ethers-v5": "^2.0.0", + "@types/chai": "^4.2.21", "@types/lodash": "^4.14.199", - "@types/mocha": "^9.1.1", + "@types/mocha": "^8.2.3", "@types/node": "^17.0.34", - "@typescript-eslint/eslint-plugin": "^6.7.4", - "@typescript-eslint/parser": "^6.7.4", - "chai": "^4.3.6", - "eslint": "^8.51.0", - "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-import": "^2.29.0", - "eslint-plugin-prettier": "^5.0.1", + "chai": "^4.3.10", + "hardhat-typechain": "^0.3.3", "lodash": "^4.17.21", - "markdownlint-cli": "^0.33.0", - "mocha": "^10.0.0", - "prettier": "^3.0.3", - "prettier-plugin-solidity": "^1.1.3", - "solhint": "^3.6.2", + "mocha": "^9.0.2", "template-file": "^6.0.1", "ts-generator": "^0.1.1", - "ts-node": "^10.7.0", - "typechain": "^8.1.1", - "typescript": "^4.6.4" + "ts-node": "^10.1.0", + "typechain": "^4.0.0", + "typescript": "^4.6.4", + "zksync-ethers": "^5.0.0" }, "mocha": { "timeout": 240000, @@ -54,25 +45,22 @@ ] }, "scripts": { - "build": "yarn build:sol && yarn build:yul", - "build:sol": "hardhat compile", - "build:yul": "yarn preprocess:yul && yarn compile-yul", + "build": "yarn build:system-contracts && yarn build:bootloader", + "build:bootloader": "yarn preprocess:bootloader && yarn compile-yul compile-bootloader", + "build:system-contracts": "yarn preprocess:system-contracts && hardhat compile && yarn compile-yul compile-precompiles", + "build:test-system-contracts": "yarn preprocess:system-contracts --test-mode && hardhat compile && yarn compile-yul compile-precompiles && yarn compile-zasm", "calculate-hashes:check": "ts-node scripts/calculate-hashes.ts --check-only", "calculate-hashes:fix": "ts-node scripts/calculate-hashes.ts", - "clean": "yarn clean:sol && yarn clean:yul", - "clean:sol": "hardhat clean", - "clean:yul": "rm -rf ./bootloader/build ./bootloader/tests/artifacts ./contracts/artifacts ./contracts/precompiles/artifacts", + "clean": "yarn clean:bootloader && yarn clean:system-contracts", + "clean:bootloader": "rm -rf ./bootloader/build ./bootloader/tests/artifacts", + "clean:system-contracts": "rm -rf ./contracts-preprocessed && hardhat clean", "compile-yul": "ts-node scripts/compile-yul.ts", + "compile-zasm": "ts-node scripts/compile-zasm.ts", "deploy-preimages": "ts-node scripts/deploy-preimages.ts", - "lint:check": "yarn lint:md && yarn lint:sol && yarn lint:ts && yarn prettier:check", - "lint:fix": "yarn lint:md --fix && yarn lint:sol --fix && yarn lint:ts --fix && yarn prettier:fix", - "lint:md": "markdownlint \"**/*.md\"", - "lint:sol": "solhint \"contracts/**/*.sol\"", - "lint:ts": "eslint .", - "preprocess:yul": "rm -rf ./bootloader/build && yarn ts-node scripts/process.ts", - "prettier:check": "prettier --check \"**/*.{js,json,md,sol,ts,yaml}\"", - "prettier:fix": "prettier --write \"**/*.{js,json,md,sol,ts,yaml}\"", - "test": "hardhat test --network zkSyncTestNode", + "preprocess:bootloader": "rm -rf ./bootloader/build && yarn ts-node scripts/preprocess-bootloader.ts", + "preprocess:system-contracts": "rm -rf ./contracts-preprocessed && ts-node scripts/preprocess-system-contracts.ts", + "test": "yarn build:test-system-contracts && hardhat test --network zkSyncTestNode", + "test-node": "hardhat node-zksync --tag v0.0.1-vm1.4.1", "test:bootloader": "cd bootloader/test_infra && cargo run" } } diff --git a/etc/system-contracts/scripts/calculate-hashes.ts b/etc/system-contracts/scripts/calculate-hashes.ts index bc7fb007..1fe368d7 100644 --- a/etc/system-contracts/scripts/calculate-hashes.ts +++ b/etc/system-contracts/scripts/calculate-hashes.ts @@ -18,19 +18,29 @@ type Hashes = { type SystemContractHashes = ContractDetails & Hashes; -const findDirsEndingWith = - (endingWith: string) => - (path: string): string[] => { - const absolutePath = makePathAbsolute(path); - try { - const dirs = fs.readdirSync(absolutePath, { withFileTypes: true }).filter((dirent) => dirent.isDirectory()); - const dirsEndingWithSol = dirs.filter((dirent) => dirent.name.endsWith(endingWith)); - return dirsEndingWithSol.map((dirent) => dirent.name); - } catch (err) { - const msg = err instanceof Error ? err.message : "Unknown error"; - throw new Error(`Failed to read directory: ${absolutePath} Error: ${msg}`); - } - }; +const findDirsEndingWith = (path: string, endingWith: string): string[] => { + const absolutePath = makePathAbsolute(path); + try { + const dirs = fs.readdirSync(absolutePath, { withFileTypes: true }).filter((dirent) => dirent.isDirectory()); + const dirsEndingWithSol = dirs.filter((dirent) => dirent.name.endsWith(endingWith)); + return dirsEndingWithSol.map((dirent) => dirent.name); + } catch (err) { + const msg = err instanceof Error ? err.message : "Unknown error"; + throw new Error(`Failed to read directory: ${absolutePath} Error: ${msg}`); + } +}; + +const findFilesEndingWith = (path: string, endingWith: string): string[] => { + const absolutePath = makePathAbsolute(path); + try { + const files = fs.readdirSync(absolutePath, { withFileTypes: true }).filter((dirent) => dirent.isFile()); + const filesEndingWithSol = files.filter((dirent) => dirent.name.endsWith(endingWith)); + return filesEndingWithSol.map((dirent) => dirent.name); + } catch (err) { + const msg = err instanceof Error ? err.message : "Unknown error"; + throw new Error(`Failed to read directory: ${absolutePath} Error: ${msg}`); + } +}; const SOLIDITY_ARTIFACTS_DIR = "artifacts-zk"; @@ -46,7 +56,7 @@ const getSolidityContractDetails = (dir: string, contractName: string): Contract const getSolidityContractsDetails = (dir: string): ContractDetails[] => { const bytecodesDir = join(SOLIDITY_ARTIFACTS_DIR, dir); - const dirsEndingWithSol = findDirsEndingWith(".sol")(bytecodesDir); + const dirsEndingWithSol = findDirsEndingWith(bytecodesDir, ".sol"); const contractNames = dirsEndingWithSol.map((d) => d.replace(".sol", "")); const solidityContractsDetails = contractNames.map((c) => getSolidityContractDetails(dir, c)); return solidityContractsDetails; @@ -55,7 +65,7 @@ const getSolidityContractsDetails = (dir: string): ContractDetails[] => { const YUL_ARTIFACTS_DIR = "artifacts"; const getYulContractDetails = (dir: string, contractName: string): ContractDetails => { - const bytecodePath = join(dir, YUL_ARTIFACTS_DIR, contractName + ".yul", contractName + ".yul.zbin"); + const bytecodePath = join(dir, YUL_ARTIFACTS_DIR, contractName + ".yul.zbin"); const sourceCodePath = join(dir, contractName + ".yul"); return { contractName, @@ -65,8 +75,7 @@ const getYulContractDetails = (dir: string, contractName: string): ContractDetai }; const getYulContractsDetails = (dir: string): ContractDetails[] => { - const bytecodesDir = join(dir, YUL_ARTIFACTS_DIR); - const dirsEndingWithYul = findDirsEndingWith(".yul")(bytecodesDir); + const dirsEndingWithYul = findFilesEndingWith(dir, ".yul"); const contractNames = dirsEndingWithYul.map((d) => d.replace(".yul", "")); const yulContractsDetails = contractNames.map((c) => getYulContractDetails(dir, c)); return yulContractsDetails; @@ -180,8 +189,8 @@ const findDifferences = (newHashes: SystemContractHashes[], oldHashes: SystemCon return differencesList; }; -const SOLIDITY_SOURCE_CODE_PATHS = ["cache-zk/solpp-generated-contracts"]; -const YUL_SOURCE_CODE_PATHS = ["contracts", "contracts/precompiles", "bootloader/build"]; +const SOLIDITY_SOURCE_CODE_PATHS = ["contracts-preprocessed"]; +const YUL_SOURCE_CODE_PATHS = ["contracts-preprocessed", "contracts-preprocessed/precompiles", "bootloader/build"]; const OUTPUT_FILE_PATH = "SystemContractsHashes.json"; const main = async () => { @@ -209,7 +218,9 @@ const main = async () => { console.log("Calculated hashes differ from the hashes in the SystemContractsHashes.json file. Differences:"); console.log(differences); if (checkOnly) { - console.log("You can use the `yarn calculate-hashes:fix` command to update the SystemContractsHashes.json file."); + console.log( + "You can use the `yarn sc calculate-hashes:fix` command to update the SystemContractsHashes.json file." + ); console.log("Exiting..."); process.exit(1); } else { @@ -225,6 +236,6 @@ main() .then(() => process.exit(0)) .catch((err) => { console.error("Error:", err.message || err); - console.log("Please make sure to run `yarn build` before running this script."); + console.log("Please make sure to run `yarn sc build` before running this script."); process.exit(1); }); diff --git a/etc/system-contracts/scripts/compile-yul.ts b/etc/system-contracts/scripts/compile-yul.ts index 15983fcf..83ed95a8 100644 --- a/etc/system-contracts/scripts/compile-yul.ts +++ b/etc/system-contracts/scripts/compile-yul.ts @@ -1,101 +1,48 @@ -import * as hre from "hardhat"; - -import { getZksolcUrl, saltFromUrl } from "@matterlabs/hardhat-zksync-solc"; -import { spawn as _spawn } from "child_process"; +import type { CompilerPaths } from "./utils"; +import { spawn, compilerLocation, prepareCompilerPaths } from "./utils"; import * as fs from "fs"; -import { getCompilersDir } from "hardhat/internal/util/global-dir"; -import path from "path"; +import { Command } from "commander"; -const COMPILER_VERSION = "1.3.14"; +const COMPILER_VERSION = "1.3.18"; const IS_COMPILER_PRE_RELEASE = false; -async function compilerLocation(): Promise { - const compilersCache = await getCompilersDir(); - - let salt = ""; - - if (IS_COMPILER_PRE_RELEASE) { - // @ts-ignore - const url = getZksolcUrl("https://github.com/matter-labs/zksolc-prerelease", hre.config.zksolc.version); - salt = saltFromUrl(url); - } - - return path.join(compilersCache, "zksolc", `zksolc-v${COMPILER_VERSION}${salt ? "-" : ""}${salt}`); -} - -// executes a command in a new shell -// but pipes data to parent's stdout/stderr -export function spawn(command: string) { - command = command.replace(/\n/g, " "); - const child = _spawn(command, { stdio: "inherit", shell: true }); - return new Promise((resolve, reject) => { - child.on("error", reject); - child.on("close", (code) => { - code == 0 ? resolve(code) : reject(`Child process exited with code ${code}`); - }); - }); -} - -export async function compileYul(path: string, files: string[], outputDirName: string | null) { - if (!files.length) { - console.log(`No test files provided in folder ${path}.`); - return; - } - const paths = preparePaths(path, files, outputDirName); - - const zksolcLocation = await compilerLocation(); - await spawn( - `${zksolcLocation} ${paths.absolutePathSources}/${paths.outputDir} --optimization 3 --system-mode --yul --bin --overwrite -o ${paths.absolutePathArtifacts}/${paths.outputDir}` - ); +export async function compileYul(paths: CompilerPaths, file: string) { + const zksolcLocation = await compilerLocation(COMPILER_VERSION, IS_COMPILER_PRE_RELEASE); + await spawn( + `${zksolcLocation} ${paths.absolutePathSources}/${file} --optimization 3 --system-mode --yul --bin --overwrite -o ${paths.absolutePathArtifacts}` + ); } export async function compileYulFolder(path: string) { - const files: string[] = (await fs.promises.readdir(path)).filter((fn) => fn.endsWith(".yul")); - for (const file of files) { - await compileYul(path, [file], `${file}`); - } + const paths = prepareCompilerPaths(path); + const files: string[] = (await fs.promises.readdir(path)).filter((fn) => fn.endsWith(".yul")); + for (const file of files) { + await compileYul(paths, `${file}`); + } } -function preparePaths(path: string, files: string[], outputDirName: string | null): CompilerPaths { - const filePaths = files - .map((val) => { - return `sources/${val}`; - }) - .join(" "); - const currentWorkingDirectory = process.cwd(); - console.log(`Yarn project directory: ${currentWorkingDirectory}`); - - const outputDir = outputDirName || files[0]; - // This script is located in `system-contracts/scripts`, so we get one directory back. - const absolutePathSources = `${__dirname}/../${path}`; - const absolutePathArtifacts = `${__dirname}/../${path}/artifacts`; - - return new CompilerPaths(filePaths, outputDir, absolutePathSources, absolutePathArtifacts); -} +async function main() { + const program = new Command(); -class CompilerPaths { - public filePath: string; - public outputDir: string; - public absolutePathSources: string; - public absolutePathArtifacts: string; - constructor(filePath: string, outputDir: string, absolutePathSources: string, absolutePathArtifacts: string) { - this.filePath = filePath; - this.outputDir = outputDir; - this.absolutePathSources = absolutePathSources; - this.absolutePathArtifacts = absolutePathArtifacts; - } -} + program.version("0.1.0").name("compile yul").description("publish preimages for the L2 contracts"); -async function main() { - await compileYulFolder("contracts"); - await compileYulFolder("contracts/precompiles"); + program.command("compile-bootloader").action(async () => { await compileYulFolder("bootloader/build"); await compileYulFolder("bootloader/tests"); + }); + + program.command("compile-precompiles").action(async () => { + await compileYulFolder("contracts-preprocessed"); + await compileYulFolder("contracts-preprocessed/precompiles"); + await compileYulFolder("contracts-preprocessed/precompiles/test-contracts"); + }); + + await program.parseAsync(process.argv); } main() - .then(() => process.exit(0)) - .catch((err) => { - console.error("Error:", err.message || err); - process.exit(1); - }); + .then(() => process.exit(0)) + .catch((err) => { + console.error("Error:", err.message || err); + process.exit(1); + }); diff --git a/etc/system-contracts/scripts/compile-zasm.ts b/etc/system-contracts/scripts/compile-zasm.ts new file mode 100644 index 00000000..46e41ed9 --- /dev/null +++ b/etc/system-contracts/scripts/compile-zasm.ts @@ -0,0 +1,33 @@ +import type { CompilerPaths } from "./utils"; +import { spawn, compilerLocation, prepareCompilerPaths } from "./utils"; +import * as fs from "fs"; + +const COMPILER_VERSION = "1.3.18"; +const IS_COMPILER_PRE_RELEASE = false; + +export async function compileZasm(paths: CompilerPaths, file: string) { + const zksolcLocation = await compilerLocation(COMPILER_VERSION, IS_COMPILER_PRE_RELEASE); + await spawn( + `${zksolcLocation} ${paths.absolutePathSources}/${file} --zkasm --bin --overwrite -o ${paths.absolutePathArtifacts}` + ); +} + +export async function compileZasmFolder(path: string) { + const paths = prepareCompilerPaths(path); + const files: string[] = (await fs.promises.readdir(path)).filter((fn) => fn.endsWith(".zasm")); + for (const file of files) { + await compileZasm(paths, `${file}`); + } +} + +// Currently used only for the test contracts +async function main() { + await compileZasmFolder("contracts-preprocessed/test-contracts"); +} + +main() + .then(() => process.exit(0)) + .catch((err) => { + console.error("Error:", err.message || err); + process.exit(1); + }); diff --git a/etc/system-contracts/scripts/constants.ts b/etc/system-contracts/scripts/constants.ts index 991f5ef9..9cd5675c 100644 --- a/etc/system-contracts/scripts/constants.ts +++ b/etc/system-contracts/scripts/constants.ts @@ -5,137 +5,144 @@ export const BOOTLOADER_FORMAL_ADDRESS = "0x000000000000000000000000000000000000 export const ETH_ADDRESS = constants.AddressZero; export enum Language { - Solidity = "solidity", - Yul = "yul", + Solidity = "solidity", + Yul = "yul", + Zasm = "zasm", } export interface SystemContractDescription { - address: string; - codeName: string; + address: string; + codeName: string; } export interface YulContractDescrption extends SystemContractDescription { - lang: Language.Yul; - path: string; + lang: Language.Yul; + path: string; +} + +// Currently used only for the tests +export interface ZasmContractDescrption extends SystemContractDescription { + lang: Language.Zasm; + path: string; } export interface SolidityContractDescription extends SystemContractDescription { - lang: Language.Solidity; + lang: Language.Solidity; } interface ISystemContracts { - [key: string]: YulContractDescrption | SolidityContractDescription; + [key: string]: YulContractDescrption | SolidityContractDescription; } export const SYSTEM_CONTRACTS: ISystemContracts = { - zeroAddress: { - // zero address has EmptyContract code - address: "0x0000000000000000000000000000000000000000", - codeName: "EmptyContract", - lang: Language.Solidity, - }, - ecrecover: { - address: "0x0000000000000000000000000000000000000001", - codeName: "Ecrecover", - lang: Language.Yul, - path: "precompiles", - }, - sha256: { - address: "0x0000000000000000000000000000000000000002", - codeName: "SHA256", - lang: Language.Yul, - path: "precompiles", - }, - ecAdd: { - address: "0x0000000000000000000000000000000000000006", - codeName: "EcAdd", - lang: Language.Yul, - path: "precompiles", - }, - ecMul: { - address: "0x0000000000000000000000000000000000000007", - codeName: "EcMul", - lang: Language.Yul, - path: "precompiles", - }, - bootloader: { - // Bootloader has EmptyContract code - address: "0x0000000000000000000000000000000000008001", - codeName: "EmptyContract", - lang: Language.Solidity, - }, - accountCodeStorage: { - address: "0x0000000000000000000000000000000000008002", - codeName: "AccountCodeStorage", - lang: Language.Solidity, - }, - nonceHolder: { - address: "0x0000000000000000000000000000000000008003", - codeName: "NonceHolder", - lang: Language.Solidity, - }, - knownCodesStorage: { - address: "0x0000000000000000000000000000000000008004", - codeName: "KnownCodesStorage", - lang: Language.Solidity, - }, - immutableSimulator: { - address: "0x0000000000000000000000000000000000008005", - codeName: "ImmutableSimulator", - lang: Language.Solidity, - }, - contractDeployer: { - address: "0x0000000000000000000000000000000000008006", - codeName: "ContractDeployer", - lang: Language.Solidity, - }, - l1Messenger: { - address: "0x0000000000000000000000000000000000008008", - codeName: "L1Messenger", - lang: Language.Solidity, - }, - msgValueSimulator: { - address: "0x0000000000000000000000000000000000008009", - codeName: "MsgValueSimulator", - lang: Language.Solidity, - }, - l2EthToken: { - address: "0x000000000000000000000000000000000000800a", - codeName: "L2EthToken", - lang: Language.Solidity, - }, - systemContext: { - address: "0x000000000000000000000000000000000000800b", - codeName: "SystemContext", - lang: Language.Solidity, - }, - bootloaderUtilities: { - address: "0x000000000000000000000000000000000000800c", - codeName: "BootloaderUtilities", - lang: Language.Solidity, - }, - eventWriter: { - address: "0x000000000000000000000000000000000000800d", - codeName: "EventWriter", - lang: Language.Yul, - path: "", - }, - compressor: { - address: "0x000000000000000000000000000000000000800e", - codeName: "Compressor", - lang: Language.Solidity, - }, - complexUpgrader: { - address: "0x000000000000000000000000000000000000800f", - codeName: "ComplexUpgrader", - lang: Language.Solidity, - }, - keccak256: { - address: "0x0000000000000000000000000000000000008010", - codeName: "Keccak256", - lang: Language.Yul, - path: "precompiles", - }, + zeroAddress: { + // zero address has EmptyContract code + address: "0x0000000000000000000000000000000000000000", + codeName: "EmptyContract", + lang: Language.Solidity, + }, + ecrecover: { + address: "0x0000000000000000000000000000000000000001", + codeName: "Ecrecover", + lang: Language.Yul, + path: "precompiles", + }, + sha256: { + address: "0x0000000000000000000000000000000000000002", + codeName: "SHA256", + lang: Language.Yul, + path: "precompiles", + }, + ecAdd: { + address: "0x0000000000000000000000000000000000000006", + codeName: "EcAdd", + lang: Language.Yul, + path: "precompiles", + }, + ecMul: { + address: "0x0000000000000000000000000000000000000007", + codeName: "EcMul", + lang: Language.Yul, + path: "precompiles", + }, + bootloader: { + // Bootloader has EmptyContract code + address: "0x0000000000000000000000000000000000008001", + codeName: "EmptyContract", + lang: Language.Solidity, + }, + accountCodeStorage: { + address: "0x0000000000000000000000000000000000008002", + codeName: "AccountCodeStorage", + lang: Language.Solidity, + }, + nonceHolder: { + address: "0x0000000000000000000000000000000000008003", + codeName: "NonceHolder", + lang: Language.Solidity, + }, + knownCodesStorage: { + address: "0x0000000000000000000000000000000000008004", + codeName: "KnownCodesStorage", + lang: Language.Solidity, + }, + immutableSimulator: { + address: "0x0000000000000000000000000000000000008005", + codeName: "ImmutableSimulator", + lang: Language.Solidity, + }, + contractDeployer: { + address: "0x0000000000000000000000000000000000008006", + codeName: "ContractDeployer", + lang: Language.Solidity, + }, + l1Messenger: { + address: "0x0000000000000000000000000000000000008008", + codeName: "L1Messenger", + lang: Language.Solidity, + }, + msgValueSimulator: { + address: "0x0000000000000000000000000000000000008009", + codeName: "MsgValueSimulator", + lang: Language.Solidity, + }, + l2EthToken: { + address: "0x000000000000000000000000000000000000800a", + codeName: "L2EthToken", + lang: Language.Solidity, + }, + systemContext: { + address: "0x000000000000000000000000000000000000800b", + codeName: "SystemContext", + lang: Language.Solidity, + }, + bootloaderUtilities: { + address: "0x000000000000000000000000000000000000800c", + codeName: "BootloaderUtilities", + lang: Language.Solidity, + }, + eventWriter: { + address: "0x000000000000000000000000000000000000800d", + codeName: "EventWriter", + lang: Language.Yul, + path: "", + }, + compressor: { + address: "0x000000000000000000000000000000000000800e", + codeName: "Compressor", + lang: Language.Solidity, + }, + complexUpgrader: { + address: "0x000000000000000000000000000000000000800f", + codeName: "ComplexUpgrader", + lang: Language.Solidity, + }, + keccak256: { + address: "0x0000000000000000000000000000000000008010", + codeName: "Keccak256", + lang: Language.Yul, + path: "precompiles", + }, } as const; export const EIP712_TX_ID = 113; @@ -143,61 +150,61 @@ export const CHAIN_ID = 270; // For now, these types are hardcoded, but maybe it will make sense export const EIP712_DOMAIN = { - name: "zkSync", - version: "2", - chainId: CHAIN_ID, - // zkSync contract doesn't verify EIP712 signatures. + name: "zkSync", + version: "2", + chainId: CHAIN_ID, + // zkSync contract doesn't verify EIP712 signatures. }; export interface TransactionData { - txType: BigNumberish; - from: BigNumberish; - to: BigNumberish; - gasLimit: BigNumberish; - gasPerPubdataByteLimit: BigNumberish; - gasPrice: BigNumberish; - // In the future, we might want to add some - // new fields to the struct. The `txData` struct - // is to be passed to account and any changes to its structure - // would mean a breaking change to these accounts. In order to prevent this, - // we should keep some fields as "reserved". - // It is also recommended that their length is fixed, since - // it would allow easier proof integration (in case we will need - // some special circuit for preprocessing transactions). - reserved: BigNumberish[]; - data: BytesLike; - signature: BytesLike; - // Reserved dynamic type for the future use-case. Using it should be avoided, - // But it is still here, just in case we want to enable some additional functionality. - reservedDynamic: BytesLike; + txType: BigNumberish; + from: BigNumberish; + to: BigNumberish; + gasLimit: BigNumberish; + gasPerPubdataByteLimit: BigNumberish; + gasPrice: BigNumberish; + // In the future, we might want to add some + // new fields to the struct. The `txData` struct + // is to be passed to account and any changes to its structure + // would mean a breaking change to these accounts. In order to prevent this, + // we should keep some fields as "reserved". + // It is also recommended that their length is fixed, since + // it would allow easier proof integration (in case we will need + // some special circuit for preprocessing transactions). + reserved: BigNumberish[]; + data: BytesLike; + signature: BytesLike; + // Reserved dynamic type for the future use-case. Using it should be avoided, + // But it is still here, just in case we want to enable some additional functionality. + reservedDynamic: BytesLike; } export interface EIP712Tx { - txType: BigNumberish; - from: BigNumberish; - to: BigNumberish; - value: BigNumberish; - gasLimit: BigNumberish; - gasPerPubdataByteLimit: BigNumberish; - gasPrice: BigNumberish; - nonce: BigNumberish; - data: BytesLike; - signature: BytesLike; + txType: BigNumberish; + from: BigNumberish; + to: BigNumberish; + value: BigNumberish; + gasLimit: BigNumberish; + gasPerPubdataByteLimit: BigNumberish; + gasPrice: BigNumberish; + nonce: BigNumberish; + data: BytesLike; + signature: BytesLike; } export type Address = string; export const EIP712_TX_TYPE = { - Transaction: [ - { name: "txType", type: "uint8" }, - { name: "to", type: "uint256" }, - { name: "value", type: "uint256" }, - { name: "data", type: "bytes" }, - { name: "gasLimit", type: "uint256" }, - { name: "gasPerPubdataByteLimit", type: "uint256" }, - { name: "gasPrice", type: "uint256" }, - { name: "nonce", type: "uint256" }, - ], + Transaction: [ + { name: "txType", type: "uint8" }, + { name: "to", type: "uint256" }, + { name: "value", type: "uint256" }, + { name: "data", type: "bytes" }, + { name: "gasLimit", type: "uint256" }, + { name: "gasPerPubdataByteLimit", type: "uint256" }, + { name: "gasPrice", type: "uint256" }, + { name: "nonce", type: "uint256" }, + ], }; export type DynamicType = "bytes" | "bytes32[]"; @@ -205,63 +212,63 @@ export type FixedType = "address" | "uint256" | "uint128" | "uint32"; export type FieldType = FixedType | DynamicType; function isDynamicType(x: FieldType): x is DynamicType { - return x == "bytes" || x == "bytes32[]"; + return x == "bytes" || x == "bytes32[]"; } function isFixedType(x: FieldType): x is FixedType { - return !isDynamicType(x); + return !isDynamicType(x); } export const TransactionFields: Record = { - txType: "uint256", - from: "address", - to: "address", - gasLimit: "uint32", - gasPerPubdataByteLimit: "uint32", - maxFeePerGas: "uint256", - maxPriorityFeePerGas: "uint256", - paymaster: "address", - // In the future, we might want to add some - // new fields to the struct. The `txData` struct - // is to be passed to account and any changes to its structure - // would mean a breaking change to these accounts. In order to prevent this, - // we should keep some fields as "reserved". - // It is also recommended that their length is fixed, since - // it would allow easier proof integration (in case we will need - // some special circuit for preprocessing transactions). - reserved: Array(6).fill("uint256"), - data: "bytes", - signature: "bytes", - factoryDeps: "bytes32[]", - paymasterInput: "bytes", - // Reserved dynamic type for the future use-case. Using it should be avoided, - // But it is still here, just in case we want to enable some additional functionality. - reservedDynamic: "bytes", + txType: "uint256", + from: "address", + to: "address", + gasLimit: "uint32", + gasPerPubdataByteLimit: "uint32", + maxFeePerGas: "uint256", + maxPriorityFeePerGas: "uint256", + paymaster: "address", + // In the future, we might want to add some + // new fields to the struct. The `txData` struct + // is to be passed to account and any changes to its structure + // would mean a breaking change to these accounts. In order to prevent this, + // we should keep some fields as "reserved". + // It is also recommended that their length is fixed, since + // it would allow easier proof integration (in case we will need + // some special circuit for preprocessing transactions). + reserved: Array(6).fill("uint256"), + data: "bytes", + signature: "bytes", + factoryDeps: "bytes32[]", + paymasterInput: "bytes", + // Reserved dynamic type for the future use-case. Using it should be avoided, + // But it is still here, just in case we want to enable some additional functionality. + reservedDynamic: "bytes", }; function capitalize(s: string) { - if (!s.length) { - return s; - } - return `${s[0].toUpperCase()}${s.substring(1)}`; + if (!s.length) { + return s; + } + return `${s[0].toUpperCase()}${s.substring(1)}`; } function memPosFromOffset(offset: number) { - return offset === 0 ? "innerTxDataOffset" : `add(innerTxDataOffset, ${offset})`; + return offset === 0 ? "innerTxDataOffset" : `add(innerTxDataOffset, ${offset})`; } function getGetterName(fieldName: string) { - return `get${capitalize(fieldName)}`; + return `get${capitalize(fieldName)}`; } function getPtrGetterName(fieldName: string) { - return `get${capitalize(fieldName)}Ptr`; + return `get${capitalize(fieldName)}Ptr`; } function getGetter(fieldName: string, offset: number) { - const getterName = getGetterName(fieldName); - const memPos = memPosFromOffset(offset); - return ` + const getterName = getGetterName(fieldName); + const memPos = memPosFromOffset(offset); + return ` function ${getterName}(innerTxDataOffset) -> ret { ret := mload(${memPos}) } @@ -269,9 +276,9 @@ function getGetter(fieldName: string, offset: number) { } function getPtrGetter(fieldName: string, offset: number) { - const getterName = getPtrGetterName(fieldName); - const memPos = memPosFromOffset(offset); - return ` + const getterName = getPtrGetterName(fieldName); + const memPos = memPosFromOffset(offset); + return ` function ${getterName}(innerTxDataOffset) -> ret { ret := mload(${memPos}) ret := add(innerTxDataOffset, ret) @@ -280,29 +287,29 @@ function getPtrGetter(fieldName: string, offset: number) { } function getTypeValidationMethodName(type: FieldType) { - if (type == "bytes32[]") { - return "validateBytes32Array"; - } else { - return `validate${capitalize(type)}`; - } + if (type == "bytes32[]") { + return "validateBytes32Array"; + } else { + return `validate${capitalize(type)}`; + } } function getBytesLengthGetterName(fieldName: string): string { - return `get${capitalize(fieldName)}BytesLength`; + return `get${capitalize(fieldName)}BytesLength`; } function getBytesLengthGetter(fieldName: string, type: DynamicType) { - let lengthToBytes: string; - if (type == "bytes") { - lengthToBytes = "lengthToWords(mload(ptr))"; - } else if (type == "bytes32[]") { - lengthToBytes = "mul(mload(ptr),32)"; - } else { - throw new Error(`Type ${type} is not supported`); - } - - const getterName = getBytesLengthGetterName(fieldName); - return ` + let lengthToBytes: string; + if (type == "bytes") { + lengthToBytes = "lengthToWords(mload(ptr))"; + } else if (type == "bytes32[]") { + lengthToBytes = "mul(mload(ptr),32)"; + } else { + throw new Error(`Type ${type} is not supported`); + } + + const getterName = getBytesLengthGetterName(fieldName); + return ` function ${getterName}(innerTxDataOffset) -> ret { let ptr := ${getPtrGetterName(fieldName)}(innerTxDataOffset) ret := ${lengthToBytes} @@ -311,14 +318,14 @@ function getBytesLengthGetter(fieldName: string, type: DynamicType) { } function getDataLength(baseLength: number, dynamicFields: [string, DynamicType][]) { - const ptrAdders = dynamicFields - .map(([fieldName]) => { - return ` + const ptrAdders = dynamicFields + .map(([fieldName]) => { + return ` ret := add(ret, ${getBytesLengthGetterName(fieldName)}(innerTxDataOffset))`; - }) - .join(""); + }) + .join(""); - return ` + return ` function getDataLength(innerTxDataOffset) -> ret { // To get the length of the txData in bytes, we can simply // get the number of fields * 32 + the length of the dynamic types @@ -331,13 +338,13 @@ function getDataLength(baseLength: number, dynamicFields: [string, DynamicType][ } function validateFixedSizeField(fieldName: string, type: FixedType): string { - if (type == "uint256") { - // There is no validation for uint256 - return ""; - } - const assertionErrorStr = getEncodingError(fieldName); - const fieldValue = `${fieldName}Value`; - return ` + if (type == "uint256") { + // There is no validation for uint256 + return ""; + } + const assertionErrorStr = getEncodingError(fieldName); + const fieldValue = `${fieldName}Value`; + return ` let ${fieldValue} := ${getGetterName(fieldName)}(innerTxDataOffset) if iszero(${getTypeValidationMethodName(type)}(${fieldValue})) { assertionError("${assertionErrorStr}") @@ -346,39 +353,39 @@ function validateFixedSizeField(fieldName: string, type: FixedType): string { } function getEncodingError(fieldName: string) { - // Unfortunately we have to keep this not-so-readable name - // because the maximum length is 32. - const assertionError = `Encoding ${fieldName}`; + // Unfortunately we have to keep this not-so-readable name + // because the maximum length is 32. + const assertionError = `Encoding ${fieldName}`; - if (assertionError.length > 32) { - throw new Error(`Assertion str too long: ${assertionError}`); - } + if (assertionError.length > 32) { + throw new Error(`Assertion str too long: ${assertionError}`); + } - return assertionError; + return assertionError; } function getValidateTxStructure( - fixedFieldsChecks: string, - fixedLenPart: number, - dynamicFields: [string, DynamicType][] + fixedFieldsChecks: string, + fixedLenPart: number, + dynamicFields: [string, DynamicType][] ): string { - const dynamicChecks = dynamicFields - .map(([fieldName, type]) => { - const lengthPos = `${fieldName}LengthPos`; - const assertionError = getEncodingError(fieldName); - const validationMethod = getTypeValidationMethodName(type); + const dynamicChecks = dynamicFields + .map(([fieldName, type]) => { + const lengthPos = `${fieldName}LengthPos`; + const assertionError = getEncodingError(fieldName); + const validationMethod = getTypeValidationMethodName(type); - return ` + return ` let ${lengthPos} := ${getPtrGetterName(fieldName)}(innerTxDataOffset) if iszero(eq(${lengthPos}, expectedDynamicLenPtr)) { assertionError("${assertionError}") } expectedDynamicLenPtr := ${validationMethod}(${lengthPos}) `; - }) - .join("\n"); + }) + .join("\n"); - return ` + return ` /// This method checks that the transaction's structure is correct /// and tightly packed function validateAbiEncoding(innerTxDataOffset) -> ret { @@ -390,42 +397,42 @@ function getValidateTxStructure( } export function getTransactionUtils(): string { - let result = `/// + let result = `/// /// TransactionData utilities ///\n`; - let innerOffsetBytes = 0; - let checksStr = ""; - - const dynamicFields: [string, DynamicType][] = []; - for (const [key, value] of Object.entries(TransactionFields)) { - if (Array.isArray(value)) { - // We assume that the - for (let i = 0; i < value.length; i++) { - const keyName = `${key}${i}`; - result += getGetter(keyName, innerOffsetBytes); - checksStr += validateFixedSizeField(keyName, value[i]); - innerOffsetBytes += 32; - } - } else if (isFixedType(value)) { - result += getGetter(key, innerOffsetBytes); - checksStr += validateFixedSizeField(key, value); - innerOffsetBytes += 32; - } else { - result += getPtrGetter(key, innerOffsetBytes); - result += getBytesLengthGetter(key, value); - dynamicFields.push([key, value]); - innerOffsetBytes += 32; - } + let innerOffsetBytes = 0; + let checksStr = ""; + + const dynamicFields: [string, DynamicType][] = []; + for (const [key, value] of Object.entries(TransactionFields)) { + if (Array.isArray(value)) { + // We assume that the + for (let i = 0; i < value.length; i++) { + const keyName = `${key}${i}`; + result += getGetter(keyName, innerOffsetBytes); + checksStr += validateFixedSizeField(keyName, value[i]); + innerOffsetBytes += 32; + } + } else if (isFixedType(value)) { + result += getGetter(key, innerOffsetBytes); + checksStr += validateFixedSizeField(key, value); + innerOffsetBytes += 32; + } else { + result += getPtrGetter(key, innerOffsetBytes); + result += getBytesLengthGetter(key, value); + dynamicFields.push([key, value]); + innerOffsetBytes += 32; } + } - result += getValidateTxStructure(checksStr, innerOffsetBytes, dynamicFields); + result += getValidateTxStructure(checksStr, innerOffsetBytes, dynamicFields); - result += getDataLength(innerOffsetBytes, dynamicFields); + result += getDataLength(innerOffsetBytes, dynamicFields); - return result; + return result; } export function getRevertSelector(): string { - return ethers.utils.keccak256(ethers.utils.toUtf8Bytes("Error(string)")).substring(0, 10); + return ethers.utils.keccak256(ethers.utils.toUtf8Bytes("Error(string)")).substring(0, 10); } diff --git a/etc/system-contracts/scripts/deploy-preimages.ts b/etc/system-contracts/scripts/deploy-preimages.ts index 20cc8611..4f45ef56 100644 --- a/etc/system-contracts/scripts/deploy-preimages.ts +++ b/etc/system-contracts/scripts/deploy-preimages.ts @@ -2,16 +2,17 @@ import * as hre from "hardhat"; import { Deployer } from "@matterlabs/hardhat-zksync-deploy"; import { Command } from "commander"; -import type { BigNumber } from "ethers"; +import type { BigNumber, BytesLike } from "ethers"; import { ethers } from "ethers"; import { formatUnits, parseUnits } from "ethers/lib/utils"; import * as fs from "fs"; import * as path from "path"; +import type { types } from "zksync-web3"; import { Provider, Wallet } from "zksync-web3"; import { hashBytecode } from "zksync-web3/build/src/utils"; import { Language, SYSTEM_CONTRACTS } from "./constants"; import type { Dependency, DeployedDependency } from "./utils"; -import { filterPublishedFactoryDeps, publishFactoryDeps, readYulBytecode } from "./utils"; +import { checkMarkers, filterPublishedFactoryDeps, getBytecodes, publishFactoryDeps, readYulBytecode } from "./utils"; const testConfigPath = path.join(process.env.ZKSYNC_HOME as string, "etc/test_config/constant"); const ethTestConfig = JSON.parse(fs.readFileSync(`${testConfigPath}/eth.json`, { encoding: "utf-8" })); @@ -22,6 +23,58 @@ const MAX_COMBINED_LENGTH = 90000; const DEFAULT_ACCOUNT_CONTRACT_NAME = "DefaultAccount"; const BOOTLOADER_CONTRACT_NAME = "Bootloader"; +const CONSOLE_COLOR_RESET = "\x1b[0m"; +const CONSOLE_COLOR_RED = "\x1b[31m"; +const CONSOLE_COLOR_GREEN = "\x1b[32m"; + +interface TransactionReport { + msg: string; + success: boolean; +} + +class PublishReporter { + // Promises for pending L1->L2 transactions with submitted bytecode hashes. + // Each promise will return either string with error or null denoting success. + pendingPromises: Promise[] = []; + + async appendPublish(bytecodes: BytesLike[], deployer: Deployer, transaction: types.PriorityOpResponse) { + const waitAndDoubleCheck = async () => { + // Waiting for the transaction to be processed by the server + await transaction.wait(); + + // Double checking that indeed the dependencies have been marked as known + await checkMarkers(bytecodes, deployer); + }; + + this.pendingPromises.push( + waitAndDoubleCheck() + .catch((err) => { + return Promise.resolve({ + msg: `Transaction ${transaction.hash} failed with ${err.message || err}`, + success: false, + }); + }) + .then(() => { + return Promise.resolve({ + msg: `Transaction ${transaction.hash} was successful`, + success: true, + }); + }) + ); + } + + async report() { + const results = await Promise.all(this.pendingPromises); + results.forEach((result) => { + if (result.success) { + console.log(CONSOLE_COLOR_GREEN + result.msg + CONSOLE_COLOR_RESET); + } else { + console.log(CONSOLE_COLOR_RED + result.msg + CONSOLE_COLOR_RESET); + } + }); + } +} + class ZkSyncDeployer { deployer: Deployer; gasPrice: BigNumber; @@ -29,15 +82,23 @@ class ZkSyncDeployer { dependenciesToUpgrade: DeployedDependency[]; defaultAccountToUpgrade?: DeployedDependency; bootloaderToUpgrade?: DeployedDependency; + reporter: PublishReporter; constructor(deployer: Deployer, gasPrice: BigNumber, nonce: number) { this.deployer = deployer; this.gasPrice = gasPrice; this.nonce = nonce; this.dependenciesToUpgrade = []; + this.reporter = new PublishReporter(); } async publishFactoryDeps(dependencies: Dependency[]) { - await publishFactoryDeps(dependencies, this.deployer, this.nonce, this.gasPrice); + if (dependencies.length === 0) { + return; + } + + const priorityOpHandle = await publishFactoryDeps(dependencies, this.deployer, this.nonce, this.gasPrice); + + await this.reporter.appendPublish(getBytecodes(dependencies), this.deployer, priorityOpHandle); this.nonce += 1; } @@ -80,7 +141,6 @@ class ZkSyncDeployer { bytecodes: defaultAccountBytecodes, }, ]); - this.nonce += 1; } // Publishes the bytecode of default AA and appends it to the deployed bytecodes if needed. @@ -128,9 +188,7 @@ class ZkSyncDeployer { } async processBootloader() { - const bootloaderCode = ethers.utils.hexlify( - fs.readFileSync("./bootloader/build/artifacts/proved_batch.yul/proved_batch.yul.zbin") - ); + const bootloaderCode = ethers.utils.hexlify(fs.readFileSync("./bootloader/build/artifacts/proved_batch.yul.zbin")); await this.publishBootloader(bootloaderCode); await this.checkShouldUpgradeBootloader(bootloaderCode); @@ -286,6 +344,9 @@ async function main() { await zkSyncDeployer.publishDependencies(dependenciesToPublish); } + console.log("\nSending all L1->L2 transactions done. Now waiting for the reports on those...\n"); + await zkSyncDeployer.reporter.report(); + const result = zkSyncDeployer.returnResult(); console.log(JSON.stringify(result, null, 2)); if (cmd.file) { diff --git a/etc/system-contracts/scripts/preprocess-bootloader.ts b/etc/system-contracts/scripts/preprocess-bootloader.ts new file mode 100644 index 00000000..98de5943 --- /dev/null +++ b/etc/system-contracts/scripts/preprocess-bootloader.ts @@ -0,0 +1,243 @@ +import * as hre from "hardhat"; + +import { ethers } from "ethers"; +import { existsSync, mkdirSync, writeFileSync, readFileSync } from "fs"; +import { render, renderFile } from "template-file"; +import { utils } from "zksync-web3"; +import { getRevertSelector, getTransactionUtils } from "./constants"; + +/* eslint-disable @typescript-eslint/no-var-requires */ +const preprocess = require("preprocess"); +// TEST NODE CHANGE BEGIN: path changed from "../../SystemConfig.json" +const SYSTEM_PARAMS = require("../SystemConfig.json"); +// TEST NODE CHANGE END +/* eslint-enable@typescript-eslint/no-var-requires */ + +const OUTPUT_DIR = "bootloader/build"; + +const PREPROCCESING_MODES = ["proved_batch", "playground_batch"]; + +function getSelector(contractName: string, method: string): string { + const artifact = hre.artifacts.readArtifactSync(contractName); + const contractInterface = new ethers.utils.Interface(artifact.abi); + + return contractInterface.getSighash(method); +} + +// Methods from ethers do zero pad from left, but we need to pad from the right +function padZeroRight(hexData: string, length: number): string { + while (hexData.length < length) { + hexData += "0"; + } + + return hexData; +} + +const PADDED_SELECTOR_LENGTH = 32 * 2 + 2; +function getPaddedSelector(contractName: string, method: string): string { + const result = getSelector(contractName, method); + + return padZeroRight(result, PADDED_SELECTOR_LENGTH); +} + +function getKeccak256ExpectedHash() { + const bytecode = readFileSync("contracts-preprocessed/precompiles/artifacts/Keccak256.yul.zbin"); + return ethers.utils.hexlify(utils.hashBytecode(bytecode)); +} + +// Maybe in the future some of these params will be passed +// in a JSON file. For now, a simple object is ok here. +const params = { + MARK_BATCH_AS_REPUBLISHED_SELECTOR: getSelector("KnownCodesStorage", "markFactoryDeps"), + VALIDATE_TX_SELECTOR: getSelector("IAccount", "validateTransaction"), + EXECUTE_TX_SELECTOR: getSelector("DefaultAccount", "executeTransaction"), + RIGHT_PADDED_GET_ACCOUNT_VERSION_SELECTOR: getPaddedSelector("ContractDeployer", "extendedAccountVersion"), + RIGHT_PADDED_GET_RAW_CODE_HASH_SELECTOR: getPaddedSelector("AccountCodeStorage", "getRawCodeHash"), + PAY_FOR_TX_SELECTOR: getSelector("DefaultAccount", "payForTransaction"), + PRE_PAYMASTER_SELECTOR: getSelector("DefaultAccount", "prepareForPaymaster"), + VALIDATE_AND_PAY_PAYMASTER: getSelector("IPaymaster", "validateAndPayForPaymasterTransaction"), + // It doesn't used directly now but is important to keep the way to regenerate it when needed + TX_UTILITIES: getTransactionUtils(), + RIGHT_PADDED_POST_TRANSACTION_SELECTOR: getPaddedSelector("IPaymaster", "postTransaction"), + RIGHT_PADDED_SET_TX_ORIGIN: getPaddedSelector("SystemContext", "setTxOrigin"), + RIGHT_PADDED_SET_GAS_PRICE: getPaddedSelector("SystemContext", "setGasPrice"), + RIGHT_PADDED_INCREMENT_TX_NUMBER_IN_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "incrementTxNumberInBatch"), + RIGHT_PADDED_RESET_TX_NUMBER_IN_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "resetTxNumberInBatch"), + RIGHT_PADDED_SEND_L2_TO_L1_LOG_SELECTOR: getPaddedSelector("L1Messenger", "sendL2ToL1Log"), + PUBLISH_PUBDATA_SELECTOR: getSelector("L1Messenger", "publishPubdataAndClearState"), + RIGHT_PADDED_SET_NEW_BATCH_SELECTOR: getPaddedSelector("SystemContext", "setNewBatch"), + RIGHT_PADDED_OVERRIDE_BATCH_SELECTOR: getPaddedSelector("SystemContext", "unsafeOverrideBatch"), + // Error + REVERT_ERROR_SELECTOR: padZeroRight(getRevertSelector(), PADDED_SELECTOR_LENGTH), + RIGHT_PADDED_VALIDATE_NONCE_USAGE_SELECTOR: getPaddedSelector("INonceHolder", "validateNonceUsage"), + RIGHT_PADDED_MINT_ETHER_SELECTOR: getPaddedSelector("L2EthToken", "mint"), + GET_TX_HASHES_SELECTOR: getSelector("BootloaderUtilities", "getTransactionHashes"), + CREATE_SELECTOR: getSelector("ContractDeployer", "create"), + CREATE2_SELECTOR: getSelector("ContractDeployer", "create2"), + CREATE_ACCOUNT_SELECTOR: getSelector("ContractDeployer", "createAccount"), + CREATE2_ACCOUNT_SELECTOR: getSelector("ContractDeployer", "create2Account"), + PADDED_TRANSFER_FROM_TO_SELECTOR: getPaddedSelector("L2EthToken", "transferFromTo"), + SUCCESSFUL_ACCOUNT_VALIDATION_MAGIC_VALUE: getPaddedSelector("IAccount", "validateTransaction"), + SUCCESSFUL_PAYMASTER_VALIDATION_MAGIC_VALUE: getPaddedSelector("IPaymaster", "validateAndPayForPaymasterTransaction"), + PUBLISH_COMPRESSED_BYTECODE_SELECTOR: getSelector("Compressor", "publishCompressedBytecode"), + GET_MARKER_PADDED_SELECTOR: getPaddedSelector("KnownCodesStorage", "getMarker"), + RIGHT_PADDED_SET_L2_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "setL2Block"), + RIGHT_PADDED_APPEND_TRANSACTION_TO_L2_BLOCK_SELECTOR: getPaddedSelector( + "SystemContext", + "appendTransactionToCurrentL2Block" + ), + RIGHT_PADDED_PUBLISH_TIMESTAMP_DATA_TO_L1_SELECTOR: getPaddedSelector("SystemContext", "publishTimestampDataToL1"), + COMPRESSED_BYTECODES_SLOTS: 32768, + ENSURE_RETURNED_MAGIC: 1, + FORBID_ZERO_GAS_PER_PUBDATA: 1, + KECCAK256_EXPECTED_CODE_HASH: getKeccak256ExpectedHash(), + PADDED_FORCE_DEPLOY_KECCAK256_SELECTOR: getPaddedSelector("ContractDeployer", "forceDeployKeccak256"), + // One of "worst case" scenarios for the number of state diffs in a batch is when 120kb of pubdata is spent + // on repeated writes, that are all zeroed out. In this case, the number of diffs is 120k / 5 = 24k. This means that they will have + // accoomdate 6528000 bytes of calldata for the uncompressed state diffs. Adding 120k on top leaves us with + // roughly 6650000 bytes needed for calldata. 207813 slots are needed to accomodate this amount of data. + // We round up to 208000 slots just in case. + // + // In theory though much more calldata could be used (if for instance 1 byte is used for enum index). It is the responsibility of the + // operator to ensure that it can form the correct calldata for the L1Messenger. + OPERATOR_PROVIDED_L1_MESSENGER_PUBDATA_SLOTS: 208000, + ...SYSTEM_PARAMS, +}; + +function extractTestFunctionNames(sourceCode: string): string[] { + // Remove single-line comments + sourceCode = sourceCode.replace(/\/\/[^\n]*/g, ""); + + // Remove multi-line comments + sourceCode = sourceCode.replace(/\/\*[\s\S]*?\*\//g, ""); + + const regexPatterns = [/function\s+(TEST\w+)/g]; + + const results: string[] = []; + for (const pattern of regexPatterns) { + let match; + while ((match = pattern.exec(sourceCode)) !== null) { + results.push(match[1]); + } + } + + return [...new Set(results)]; // Remove duplicates +} + +function createTestFramework(tests: string[]): string { + let testFramework = ` + let test_id:= mload(0) + + switch test_id + case 0 { + testing_totalTests(${tests.length}) + } + `; + + tests.forEach((value, index) => { + testFramework += ` + case ${index + 1} { + testing_start("${value}") + ${value}() + } + `; + }); + + testFramework += ` + default { + } + return (0, 0) + `; + + return testFramework; +} + +function validateSource(source: string) { + const matches = source.matchAll(//g); + for (const match of matches) { + if (!PREPROCCESING_MODES.includes(match[1])) { + throw Error(`Invalid preprocessing mode '${match[1]}' at postion ${match.index}`); + } + } +} + +async function main() { + const bootloaderSource = readFileSync("bootloader/bootloader.yul").toString(); + validateSource(bootloaderSource); + + const bootloader = await render(bootloaderSource, params); + // The overhead is unknown for gas tests and so it should be zero to calculate it + const gasTestBootloaderTemplate = await render(bootloaderSource, { + ...params, + L2_TX_INTRINSIC_GAS: 0, + L2_TX_INTRINSIC_PUBDATA: 0, + L1_TX_INTRINSIC_L2_GAS: 0, + L1_TX_INTRINSIC_PUBDATA: 0, + FORBID_ZERO_GAS_PER_PUBDATA: 0, + }); + + const feeEstimationBootloaderTemplate = await render(bootloaderSource, { + ...params, + ENSURE_RETURNED_MAGIC: 0, + }); + + console.log("Preprocessing production bootloader"); + const provedBatchBootloader = preprocess.preprocess(bootloader, { BOOTLOADER_TYPE: "proved_batch" }); + console.log("Preprocessing playground block bootloader"); + const playgroundBatchBootloader = preprocess.preprocess(bootloader, { BOOTLOADER_TYPE: "playground_batch" }); + console.log("Preprocessing gas test bootloader"); + const gasTestBootloader = preprocess.preprocess(gasTestBootloaderTemplate, { BOOTLOADER_TYPE: "proved_batch" }); + console.log("Preprocessing fee estimation bootloader"); + const feeEstimationBootloader = preprocess.preprocess(feeEstimationBootloaderTemplate, { + BOOTLOADER_TYPE: "playground_batch", + }); + + // For impersonating block start + console.log('Preprocessing production impersonating bootloader'); + const provedBatchImpersonatingBootloader = preprocess.preprocess( + bootloader, + { BOOTLOADER_TYPE: 'proved_batch', ACCOUNT_IMPERSONATING: true } + ); + console.log('Preprocessing fee estimation impersonating bootloader'); + const feeEstimationImpersonatingBootloader = preprocess.preprocess( + bootloader, + { BOOTLOADER_TYPE: 'playground_batch', ACCOUNT_IMPERSONATING: true } + ); + // For impersonating block end + + console.log("Preprocessing bootloader tests"); + const bootloaderTests = await renderFile("bootloader/tests/bootloader/bootloader_test.yul", {}); + + const testMethods = extractTestFunctionNames(bootloaderTests); + + console.log("Found tests: " + testMethods); + + const testFramework = createTestFramework(testMethods); + + const bootloaderTestUtils = await renderFile("bootloader/tests/utils/test_utils.yul", {}); + + const bootloaderWithTests = await render(bootloaderSource, { + ...params, + CODE_START_PLACEHOLDER: "\n" + bootloaderTestUtils + "\n" + bootloaderTests + "\n" + testFramework, + }); + const provedBootloaderWithTests = preprocess.preprocess(bootloaderWithTests, { BOOTLOADER_TYPE: "proved_batch" }); + + if (!existsSync(OUTPUT_DIR)) { + mkdirSync(OUTPUT_DIR); + } + + writeFileSync(`${OUTPUT_DIR}/bootloader_test.yul`, provedBootloaderWithTests); + writeFileSync(`${OUTPUT_DIR}/proved_batch.yul`, provedBatchBootloader); + writeFileSync(`${OUTPUT_DIR}/playground_batch.yul`, playgroundBatchBootloader); + writeFileSync(`${OUTPUT_DIR}/gas_test.yul`, gasTestBootloader); + writeFileSync(`${OUTPUT_DIR}/fee_estimate.yul`, feeEstimationBootloader); + + // For impersonating block start + writeFileSync(`${OUTPUT_DIR}/proved_batch_impersonating.yul`, provedBatchImpersonatingBootloader); + writeFileSync(`${OUTPUT_DIR}/fee_estimate_impersonating.yul`, feeEstimationImpersonatingBootloader); + // For impersonating block end + + console.log("Bootloader preprocessing done!"); +} + +main(); diff --git a/etc/system-contracts/scripts/preprocess-system-contracts.ts b/etc/system-contracts/scripts/preprocess-system-contracts.ts new file mode 100644 index 00000000..acecee1a --- /dev/null +++ b/etc/system-contracts/scripts/preprocess-system-contracts.ts @@ -0,0 +1,50 @@ +import { existsSync, mkdirSync, writeFileSync } from "fs"; +import path from "path"; +import { renderFile } from "template-file"; +import { glob } from "fast-glob"; +import { Command } from "commander"; + +const CONTRACTS_DIR = "contracts"; +const OUTPUT_DIR = "contracts-preprocessed"; + +const params = { + SYSTEM_CONTRACTS_OFFSET: "0x8000", +}; + +async function preprocess(testMode: boolean) { + if (testMode) { + console.log("\x1b[31mWarning: test mode for the preprocessing being used!\x1b[0m"); + params.SYSTEM_CONTRACTS_OFFSET = "0x9000"; + } + + const contracts = await glob( + [`${CONTRACTS_DIR}/**/*.sol`, `${CONTRACTS_DIR}/**/*.yul`, `${CONTRACTS_DIR}/**/*.zasm`], + { onlyFiles: true } + ); + + for (const contract of contracts) { + const preprocessed = await renderFile(contract, params); + const fileName = `${OUTPUT_DIR}/${contract.slice(CONTRACTS_DIR.length)}`; + const directory = path.dirname(fileName); + if (!existsSync(directory)) { + mkdirSync(directory, { recursive: true }); + } + writeFileSync(fileName, preprocessed); + } + + console.log("System Contracts preprocessing done!"); +} + +async function main() { + const program = new Command(); + + program.version("0.1.0").name("system contracts preprocessor").description("preprocess the system contracts"); + + program.option("--test-mode").action(async (cmd) => { + await preprocess(cmd.testMode); + }); + + await program.parseAsync(process.argv); +} + +main(); diff --git a/etc/system-contracts/scripts/process.ts b/etc/system-contracts/scripts/process.ts deleted file mode 100644 index 3c230f61..00000000 --- a/etc/system-contracts/scripts/process.ts +++ /dev/null @@ -1,274 +0,0 @@ -import * as hre from "hardhat"; - -import { ethers } from "ethers"; -import { existsSync, mkdirSync, writeFileSync } from "fs"; -import { join } from "path"; -import { renderFile } from "template-file"; -import { utils } from "zksync-web3"; -import { SYSTEM_CONTRACTS, getRevertSelector, getTransactionUtils } from "./constants"; -import type { ForceDeployment } from "./utils"; - -/* eslint-disable @typescript-eslint/no-var-requires */ -const preprocess = require("preprocess"); -const SYSTEM_PARAMS = require("../SystemConfig.json"); -/* eslint-enable@typescript-eslint/no-var-requires */ - -const OUTPUT_DIR = "bootloader/build"; - -function path(...args: string[]): string { - return join(__dirname, ...args); -} - -function getSelector(contractName: string, method: string): string { - const artifact = hre.artifacts.readArtifactSync(contractName); - const contractInterface = new ethers.utils.Interface(artifact.abi); - - return contractInterface.getSighash(method); -} - -// Methods from ethers do zero pad from left, but we need to pad from the right -function padZeroRight(hexData: string, length: number): string { - while (hexData.length < length) { - hexData += "0"; - } - - return hexData; -} - -const PADDED_SELECTOR_LENGTH = 32 * 2 + 2; -function getPaddedSelector(contractName: string, method: string): string { - const result = getSelector(contractName, method); - - return padZeroRight(result, PADDED_SELECTOR_LENGTH); -} - -function getSystemContextExpectedHash() { - const artifact = hre.artifacts.readArtifactSync("SystemContext"); - return ethers.utils.hexlify(utils.hashBytecode(artifact.bytecode)); -} - -function upgradeSystemContextCalldata() { - // Here we need to encode the force deployment for the system context contract as well as transform - // it into writing of the calldata into the bootloader memory. - - const newHash = getSystemContextExpectedHash(); - const artifact = new ethers.utils.Interface(hre.artifacts.readArtifactSync("ContractDeployer").abi); - - const forceDeplyment: ForceDeployment = { - bytecodeHash: newHash, - newAddress: SYSTEM_CONTRACTS.systemContext.address, - callConstructor: false, - value: 0, - input: "0x", - }; - - let calldata = artifact.encodeFunctionData("forceDeployOnAddresses", [[forceDeplyment]]); - const originalLength = (calldata.length - 2) / 2; - - // Padding calldata from the right. We really need to do it, since Yul would "implicitly" pad it from the left and it - // it is not what we want. - while ((calldata.length - 2) % 64 != 0) { - calldata += "0"; - } - - // We will apply tabulation to make the compiled bootloader code more readable - const TABULATION = "\t\t\t\t\t"; - // In the first slot we need to store the calldata's length - let data = `mstore(0x00, ${originalLength})\n`; - - const slices = (calldata.length - 2) / 64; - - for (let slice = 0; slice < slices; slice++) { - const offset = slice * 32; - const sliceHex = calldata.slice(2 + offset * 2, 2 + offset * 2 + 64); - - data += `${TABULATION}mstore(${offset + 32}, 0x${sliceHex})\n`; - } - - return data; -} - -// Maybe in the future some of these params will be passed -// in a JSON file. For now, a simple object is ok here. -const params = { - MARK_BATCH_AS_REPUBLISHED_SELECTOR: getSelector("KnownCodesStorage", "markFactoryDeps"), - VALIDATE_TX_SELECTOR: getSelector("IAccount", "validateTransaction"), - EXECUTE_TX_SELECTOR: getSelector("DefaultAccount", "executeTransaction"), - RIGHT_PADDED_GET_ACCOUNT_VERSION_SELECTOR: getPaddedSelector("ContractDeployer", "extendedAccountVersion"), - RIGHT_PADDED_GET_RAW_CODE_HASH_SELECTOR: getPaddedSelector("AccountCodeStorage", "getRawCodeHash"), - PAY_FOR_TX_SELECTOR: getSelector("DefaultAccount", "payForTransaction"), - PRE_PAYMASTER_SELECTOR: getSelector("DefaultAccount", "prepareForPaymaster"), - VALIDATE_AND_PAY_PAYMASTER: getSelector("IPaymaster", "validateAndPayForPaymasterTransaction"), - // It doesn't used directly now but is important to keep the way to regenerate it when needed - TX_UTILITIES: getTransactionUtils(), - RIGHT_PADDED_POST_TRANSACTION_SELECTOR: getPaddedSelector("IPaymaster", "postTransaction"), - RIGHT_PADDED_SET_TX_ORIGIN: getPaddedSelector("SystemContext", "setTxOrigin"), - RIGHT_PADDED_SET_GAS_PRICE: getPaddedSelector("SystemContext", "setGasPrice"), - RIGHT_PADDED_INCREMENT_TX_NUMBER_IN_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "incrementTxNumberInBatch"), - RIGHT_PADDED_RESET_TX_NUMBER_IN_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "resetTxNumberInBatch"), - RIGHT_PADDED_SEND_L2_TO_L1_LOG_SELECTOR: getPaddedSelector("L1Messenger", "sendL2ToL1Log"), - PUBLISH_PUBDATA_SELECTOR: getSelector("L1Messenger", "publishPubdataAndClearState"), - RIGHT_PADDED_SET_NEW_BATCH_SELECTOR: getPaddedSelector("SystemContext", "setNewBatch"), - RIGHT_PADDED_OVERRIDE_BATCH_SELECTOR: getPaddedSelector("SystemContext", "unsafeOverrideBatch"), - // Error - REVERT_ERROR_SELECTOR: padZeroRight(getRevertSelector(), PADDED_SELECTOR_LENGTH), - RIGHT_PADDED_VALIDATE_NONCE_USAGE_SELECTOR: getPaddedSelector("INonceHolder", "validateNonceUsage"), - RIGHT_PADDED_MINT_ETHER_SELECTOR: getPaddedSelector("L2EthToken", "mint"), - GET_TX_HASHES_SELECTOR: getSelector("BootloaderUtilities", "getTransactionHashes"), - CREATE_SELECTOR: getSelector("ContractDeployer", "create"), - CREATE2_SELECTOR: getSelector("ContractDeployer", "create2"), - CREATE_ACCOUNT_SELECTOR: getSelector("ContractDeployer", "createAccount"), - CREATE2_ACCOUNT_SELECTOR: getSelector("ContractDeployer", "create2Account"), - PADDED_TRANSFER_FROM_TO_SELECTOR: getPaddedSelector("L2EthToken", "transferFromTo"), - SUCCESSFUL_ACCOUNT_VALIDATION_MAGIC_VALUE: getPaddedSelector("IAccount", "validateTransaction"), - SUCCESSFUL_PAYMASTER_VALIDATION_MAGIC_VALUE: getPaddedSelector("IPaymaster", "validateAndPayForPaymasterTransaction"), - PUBLISH_COMPRESSED_BYTECODE_SELECTOR: getSelector("Compressor", "publishCompressedBytecode"), - GET_MARKER_PADDED_SELECTOR: getPaddedSelector("KnownCodesStorage", "getMarker"), - RIGHT_PADDED_SET_L2_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "setL2Block"), - RIGHT_PADDED_APPEND_TRANSACTION_TO_L2_BLOCK_SELECTOR: getPaddedSelector( - "SystemContext", - "appendTransactionToCurrentL2Block" - ), - RIGHT_PADDED_PUBLISH_TIMESTAMP_DATA_TO_L1_SELECTOR: getPaddedSelector("SystemContext", "publishTimestampDataToL1"), - COMPRESSED_BYTECODES_SLOTS: 32768, - ENSURE_RETURNED_MAGIC: 1, - FORBID_ZERO_GAS_PER_PUBDATA: 1, - SYSTEM_CONTEXT_EXPECTED_CODE_HASH: getSystemContextExpectedHash(), - UPGRADE_SYSTEM_CONTEXT_CALLDATA: upgradeSystemContextCalldata(), - // One of "worst case" scenarios for the number of state diffs in a batch is when 120kb of pubdata is spent - // on repeated writes, that are all zeroed out. In this case, the number of diffs is 120k / 5 = 24k. This means that they will have - // accoomdate 6528000 bytes of calldata for the uncompressed state diffs. Adding 120k on top leaves us with - // roughly 6650000 bytes needed for calldata. 207813 slots are needed to accomodate this amount of data. - // We round up to 208000 slots just in case. - // - // In theory though much more calldata could be used (if for instance 1 byte is used for enum index). It is the responsibility of the - // operator to ensure that it can form the correct calldata for the L1Messenger. - OPERATOR_PROVIDED_L1_MESSENGER_PUBDATA_SLOTS: 208000, - ...SYSTEM_PARAMS, -}; - -function extractTestFunctionNames(sourceCode: string): string[] { - // Remove single-line comments - sourceCode = sourceCode.replace(/\/\/[^\n]*/g, ""); - - // Remove multi-line comments - sourceCode = sourceCode.replace(/\/\*[\s\S]*?\*\//g, ""); - - const regexPatterns = [/function\s+(TEST\w+)/g]; - - const results: string[] = []; - for (const pattern of regexPatterns) { - let match; - while ((match = pattern.exec(sourceCode)) !== null) { - results.push(match[1]); - } - } - - return [...new Set(results)]; // Remove duplicates -} - -function createTestFramework(tests: string[]): string { - let testFramework = ` - let test_id:= mload(0) - - switch test_id - case 0 { - testing_totalTests(${tests.length}) - } - `; - - tests.forEach((value, index) => { - testFramework += ` - case ${index + 1} { - testing_start("${value}") - ${value}() - } - `; - }); - - testFramework += ` - default { - } - return (0, 0) - `; - - return testFramework; -} - -async function main() { - const bootloader = await renderFile("bootloader/bootloader.yul", params); - // The overhead is unknown for gas tests and so it should be zero to calculate it - const gasTestBootloaderTemplate = await renderFile("bootloader/bootloader.yul", { - ...params, - L2_TX_INTRINSIC_GAS: 0, - L2_TX_INTRINSIC_PUBDATA: 0, - L1_TX_INTRINSIC_L2_GAS: 0, - L1_TX_INTRINSIC_PUBDATA: 0, - FORBID_ZERO_GAS_PER_PUBDATA: 0, - }); - - const feeEstimationBootloaderTemplate = await renderFile("bootloader/bootloader.yul", { - ...params, - ENSURE_RETURNED_MAGIC: 0, - }); - - console.log("Preprocessing production bootloader"); - const provedBatchBootloader = preprocess.preprocess(bootloader, { BOOTLOADER_TYPE: "proved_batch" }); - console.log("Preprocessing playground block bootloader"); - const playgroundBatchBootloader = preprocess.preprocess(bootloader, { BOOTLOADER_TYPE: "playground_batch" }); - console.log("Preprocessing gas test bootloader"); - const gasTestBootloader = preprocess.preprocess(gasTestBootloaderTemplate, { BOOTLOADER_TYPE: "proved_batch" }); - console.log("Preprocessing fee estimation bootloader"); - const feeEstimationBootloader = preprocess.preprocess(feeEstimationBootloaderTemplate, { - BOOTLOADER_TYPE: "playground_batch", - }); - - // For impersonating block start - console.log('Preprocessing production impersonating bootloader'); - const provedBatchImpersonatingBootloader = preprocess.preprocess( - bootloader, - { BOOTLOADER_TYPE: 'proved_batch', ACCOUNT_IMPERSONATING: true } - ); - console.log('Preprocessing fee estimation impersonating bootloader'); - const feeEstimationImpersonatingBootloader = preprocess.preprocess( - bootloader, - { BOOTLOADER_TYPE: 'playground_batch', ACCOUNT_IMPERSONATING: true } - ); - // For impersonating block end - - console.log("Preprocessing bootloader tests"); - const bootloaderTests = await renderFile("bootloader/tests/bootloader/bootloader_test.yul", {}); - - const testMethods = extractTestFunctionNames(bootloaderTests); - - console.log("Found tests: " + testMethods); - - const testFramework = createTestFramework(testMethods); - - const bootloaderTestUtils = await renderFile("bootloader/tests/utils/test_utils.yul", {}); - - const bootloaderWithTests = await renderFile("bootloader/bootloader.yul", { - ...params, - CODE_START_PLACEHOLDER: "\n" + bootloaderTestUtils + "\n" + bootloaderTests + "\n" + testFramework, - }); - const provedBootloaderWithTests = preprocess.preprocess(bootloaderWithTests, { BOOTLOADER_TYPE: "proved_batch" }); - - if (!existsSync(OUTPUT_DIR)) { - mkdirSync(OUTPUT_DIR); - } - - writeFileSync(path(`../${OUTPUT_DIR}/bootloader_test.yul`), provedBootloaderWithTests); - writeFileSync(path(`../${OUTPUT_DIR}/proved_batch.yul`), provedBatchBootloader); - writeFileSync(path(`../${OUTPUT_DIR}/playground_batch.yul`), playgroundBatchBootloader); - writeFileSync(path(`../${OUTPUT_DIR}/gas_test.yul`), gasTestBootloader); - writeFileSync(path(`../${OUTPUT_DIR}/fee_estimate.yul`), feeEstimationBootloader); - - // For impersonating block start - writeFileSync(path(`../${OUTPUT_DIR}/proved_batch_impersonating.yul`), provedBatchImpersonatingBootloader); - writeFileSync(path(`../${OUTPUT_DIR}/fee_estimate_impersonating.yul`), feeEstimationImpersonatingBootloader); - // For impersonating block end - - console.log("Preprocessing done!"); -} - -main(); diff --git a/etc/system-contracts/scripts/quick-setup.sh b/etc/system-contracts/scripts/quick-setup.sh deleted file mode 100755 index 341d77d2..00000000 --- a/etc/system-contracts/scripts/quick-setup.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# install rust -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - -rustup toolchain install nightly - -# install era-test-node -cargo +nightly install --git https://github.com/matter-labs/era-test-node.git --locked --branch boojum-integration - -yarn -yarn build -era_test_node run > /dev/null 2>&1 & export TEST_NODE_PID=$! -yarn test -kill $TEST_NODE_PID diff --git a/etc/system-contracts/scripts/utils.ts b/etc/system-contracts/scripts/utils.ts index 8ef1dfff..13d1b721 100644 --- a/etc/system-contracts/scripts/utils.ts +++ b/etc/system-contracts/scripts/utils.ts @@ -5,65 +5,75 @@ import type { BigNumberish, BytesLike } from "ethers"; import { BigNumber, ethers } from "ethers"; import * as fs from "fs"; import { hashBytecode } from "zksync-web3/build/src/utils"; -import type { YulContractDescrption } from "./constants"; +import type { YulContractDescrption, ZasmContractDescrption } from "./constants"; import { Language, SYSTEM_CONTRACTS } from "./constants"; +import { getCompilersDir } from "hardhat/internal/util/global-dir"; +import { getZksolcUrl, saltFromUrl } from "@matterlabs/hardhat-zksync-solc"; +import path from "path"; +import { spawn as _spawn } from "child_process"; export interface Dependency { - name: string; - bytecodes: BytesLike[]; - address?: string; + name: string; + bytecodes: BytesLike[]; + address?: string; } export interface DeployedDependency { - name: string; - bytecodeHashes: string[]; - address?: string; + name: string; + bytecodeHashes: string[]; + address?: string; } export function readYulBytecode(description: YulContractDescrption) { - const contractName = description.codeName; - const path = `contracts/${description.path}/artifacts/${contractName}.yul/${contractName}.yul.zbin`; - return ethers.utils.hexlify(fs.readFileSync(path)); + const contractName = description.codeName; + const path = `contracts-preprocessed/${description.path}/artifacts/${contractName}.yul.zbin`; + return ethers.utils.hexlify(fs.readFileSync(path)); +} + +export function readZasmBytecode(description: ZasmContractDescrption) { + const contractName = description.codeName; + const path = `contracts-preprocessed/${description.path}/artifacts/${contractName}.zasm.zbin`; + return ethers.utils.hexlify(fs.readFileSync(path)); } // The struct used to represent the parameters of a forced deployment -- a deployment during upgrade // which sets a bytecode onto an address. Typically used for updating system contracts. export interface ForceDeployment { - // The bytecode hash to put on an address - bytecodeHash: BytesLike; - // The address on which to deploy the bytecodehash to - newAddress: string; - // Whether to call the constructor - callConstructor: boolean; - // The value with which to initialize a contract - value: BigNumberish; - // The constructor calldata - input: BytesLike; + // The bytecode hash to put on an address + bytecodeHash: BytesLike; + // The address on which to deploy the bytecodehash to + newAddress: string; + // Whether to call the constructor + callConstructor: boolean; + // The value with which to initialize a contract + value: BigNumberish; + // The constructor calldata + input: BytesLike; } export async function outputSystemContracts(): Promise { - const upgradeParamsPromises: Promise[] = Object.values(SYSTEM_CONTRACTS).map( - async (systemContractInfo) => { - let bytecode: string; - - if (systemContractInfo.lang === Language.Yul) { - bytecode = readYulBytecode(systemContractInfo); - } else { - bytecode = (await hre.artifacts.readArtifact(systemContractInfo.codeName)).bytecode; - } - const bytecodeHash = hashBytecode(bytecode); - - return { - bytecodeHash: ethers.utils.hexlify(bytecodeHash), - newAddress: systemContractInfo.address, - value: "0", - input: "0x", - callConstructor: false, - }; - } - ); - - return await Promise.all(upgradeParamsPromises); + const upgradeParamsPromises: Promise[] = Object.values(SYSTEM_CONTRACTS).map( + async (systemContractInfo) => { + let bytecode: string; + + if (systemContractInfo.lang === Language.Yul) { + bytecode = readYulBytecode(systemContractInfo); + } else { + bytecode = (await hre.artifacts.readArtifact(systemContractInfo.codeName)).bytecode; + } + const bytecodeHash = hashBytecode(bytecode); + + return { + bytecodeHash: ethers.utils.hexlify(bytecodeHash), + newAddress: systemContractInfo.address, + value: "0", + input: "0x", + callConstructor: false, + }; + } + ); + + return await Promise.all(upgradeParamsPromises); } // Script that publishes preimages for all the system contracts on zkSync @@ -74,110 +84,156 @@ const DEFAULT_L2_TX_GAS_LIMIT = 2097152; // for each dependency the bytecodeHash is its versioned hash and marker is whether // the hash has been published before. export async function getMarkers(dependencies: BytesLike[], deployer: Deployer): Promise<[string, boolean][]> { - const contract = new ethers.Contract( - SYSTEM_CONTRACTS.knownCodesStorage.address, - (await hre.artifacts.readArtifact("KnownCodesStorage")).abi, - deployer.zkWallet - ); + const contract = new ethers.Contract( + SYSTEM_CONTRACTS.knownCodesStorage.address, + (await hre.artifacts.readArtifact("KnownCodesStorage")).abi, + deployer.zkWallet + ); - const promises = dependencies.map(async (dep) => { - const hash = ethers.utils.hexlify(hashBytecode(dep)); - const marker = BigNumber.from(await contract.getMarker(hash)); + const promises = dependencies.map(async (dep) => { + const hash = ethers.utils.hexlify(hashBytecode(dep)); + const marker = BigNumber.from(await contract.getMarker(hash)); - return [hash, marker.eq(1)] as [string, boolean]; - }); + return [hash, marker.eq(1)] as [string, boolean]; + }); - return await Promise.all(promises); + return await Promise.all(promises); } // Checks whether the marker has been set correctly in the KnownCodesStorage // system contract export async function checkMarkers(dependencies: BytesLike[], deployer: Deployer) { - const markers = await getMarkers(dependencies, deployer); + const markers = await getMarkers(dependencies, deployer); - for (const [bytecodeHash, marker] of markers) { - if (!marker) { - throw new Error(`Failed to mark ${bytecodeHash}`); - } + for (const [bytecodeHash, marker] of markers) { + if (!marker) { + throw new Error(`Failed to mark ${bytecodeHash}`); } + } } export function totalBytesLength(dependencies: BytesLike[]): number { - return dependencies.reduce((prev, curr) => prev + ethers.utils.arrayify(curr).length, 0); + return dependencies.reduce((prev, curr) => prev + ethers.utils.arrayify(curr).length, 0); } export function getBytecodes(dependencies: Dependency[]): BytesLike[] { - return dependencies.map((dep) => dep.bytecodes).flat(); + return dependencies.map((dep) => dep.bytecodes).flat(); } export async function publishFactoryDeps( - dependencies: Dependency[], - deployer: Deployer, - nonce: number, - gasPrice: BigNumber + dependencies: Dependency[], + deployer: Deployer, + nonce: number, + gasPrice: BigNumber ) { - if (dependencies.length == 0) { - return []; - } - const bytecodes = getBytecodes(dependencies); - const combinedLength = totalBytesLength(bytecodes); - - console.log( - `\nPublishing dependencies for contracts ${dependencies - .map((dep) => { - return dep.name; - }) - .join(", ")}` - ); - console.log(`Combined length ${combinedLength}`); - - const txHandle = await deployer.zkWallet.requestExecute({ - contractAddress: ethers.constants.AddressZero, - calldata: "0x", - l2GasLimit: DEFAULT_L2_TX_GAS_LIMIT, - factoryDeps: bytecodes, - overrides: { - nonce, - gasPrice, - gasLimit: 3000000, - }, - }); - console.log(`Transaction hash: ${txHandle.hash}`); - - // Waiting for the transaction to be processed by the server - await txHandle.wait(); - - console.log("Transaction complete! Checking markers on L2..."); - - // Double checking that indeed the dependencies have been marked as known - await checkMarkers(bytecodes, deployer); + if (dependencies.length === 0) { + throw new Error("The dependencies must be non-empty"); + } + + const bytecodes = getBytecodes(dependencies); + const combinedLength = totalBytesLength(bytecodes); + + console.log( + `\nPublishing dependencies for contracts ${dependencies + .map((dep) => { + return dep.name; + }) + .join(", ")}` + ); + console.log(`Combined length ${combinedLength}`); + + const txHandle = await deployer.zkWallet.requestExecute({ + contractAddress: ethers.constants.AddressZero, + calldata: "0x", + l2GasLimit: DEFAULT_L2_TX_GAS_LIMIT, + factoryDeps: bytecodes, + overrides: { + nonce, + gasPrice, + gasLimit: 3000000, + }, + }); + + console.log(`Transaction hash: ${txHandle.hash}`); + + console.log("Waiting for transaction commit on L1"); + + await txHandle.waitL1Commit(2); + + return txHandle; } // Returns an array of bytecodes that should be published along with their total length in bytes export async function filterPublishedFactoryDeps( - contractName: string, - factoryDeps: string[], - deployer: Deployer + contractName: string, + factoryDeps: string[], + deployer: Deployer ): Promise<[string[], number]> { - console.log(`\nFactory dependencies for contract ${contractName}:`); - let currentLength = 0; + console.log(`\nFactory dependencies for contract ${contractName}:`); + let currentLength = 0; - const bytecodesToDeploy: string[] = []; + const bytecodesToDeploy: string[] = []; - const hashesAndMarkers = await getMarkers(factoryDeps, deployer); + const hashesAndMarkers = await getMarkers(factoryDeps, deployer); - for (let i = 0; i < factoryDeps.length; i++) { - const depLength = ethers.utils.arrayify(factoryDeps[i]).length; - const [hash, marker] = hashesAndMarkers[i]; - console.log(`${hash} (length: ${depLength} bytes) (deployed: ${marker})`); + for (let i = 0; i < factoryDeps.length; i++) { + const depLength = ethers.utils.arrayify(factoryDeps[i]).length; + const [hash, marker] = hashesAndMarkers[i]; + console.log(`${hash} (length: ${depLength} bytes) (deployed: ${marker})`); - if (!marker) { - currentLength += depLength; - bytecodesToDeploy.push(factoryDeps[i]); - } + if (!marker) { + currentLength += depLength; + bytecodesToDeploy.push(factoryDeps[i]); } + } + + console.log(`Combined length to deploy: ${currentLength}`); + + return [bytecodesToDeploy, currentLength]; +} + +export async function compilerLocation(compilerVersion: string, isCompilerPreRelease: boolean): Promise { + const compilersCache = await getCompilersDir(); + + let salt = ""; + + if (isCompilerPreRelease) { + const url = getZksolcUrl("https://github.com/matter-labs/zksolc-prerelease", hre.config.zksolc.version); + salt = saltFromUrl(url); + } + + return path.join(compilersCache, "zksolc", `zksolc-v${compilerVersion}${salt ? "-" : ""}${salt}`); +} + +// executes a command in a new shell +// but pipes data to parent's stdout/stderr +export function spawn(command: string) { + command = command.replace(/\n/g, " "); + const child = _spawn(command, { stdio: "inherit", shell: true }); + return new Promise((resolve, reject) => { + child.on("error", reject); + child.on("close", (code) => { + code == 0 ? resolve(code) : reject(`Child process exited with code ${code}`); + }); + }); +} + +export class CompilerPaths { + public absolutePathSources: string; + public absolutePathArtifacts: string; + constructor(absolutePathSources: string, absolutePathArtifacts: string) { + this.absolutePathSources = absolutePathSources; + this.absolutePathArtifacts = absolutePathArtifacts; + } +} + +export function prepareCompilerPaths(path: string): CompilerPaths { + const currentWorkingDirectory = process.cwd(); + console.log(`Yarn project directory: ${currentWorkingDirectory}`); - console.log(`Combined length to deploy: ${currentLength}`); + // This script is located in `system-contracts/scripts`, so we get one directory back. + const absolutePathSources = `${__dirname}/../${path}`; + const absolutePathArtifacts = `${__dirname}/../${path}/artifacts`; - return [bytecodesToDeploy, currentLength]; + return new CompilerPaths(absolutePathSources, absolutePathArtifacts); } diff --git a/etc/system-contracts/yarn.lock b/etc/system-contracts/yarn.lock index 166747de..34c77800 100644 --- a/etc/system-contracts/yarn.lock +++ b/etc/system-contracts/yarn.lock @@ -2,33 +2,6 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - -"@babel/code-frame@^7.0.0": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== - dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - "@balena/dockerignore@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@balena/dockerignore/-/dockerignore-1.0.2.tgz#9ffe4726915251e8eb69f44ef3547e0da2c03e0d" @@ -90,38 +63,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.52.0": - version "8.52.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.52.0.tgz#78fe5f117840f69dc4a353adf9b9cd926353378c" - integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA== - "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" @@ -469,25 +410,6 @@ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.0.0.tgz#f22824caff3ae506b18207bad4126dbc6ccdb6b8" integrity sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ== -"@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== - dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== - "@jridgewell/resolve-uri@^3.0.3": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" @@ -506,11 +428,6 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@matterlabs/eslint-config-typescript@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@matterlabs/eslint-config-typescript/-/eslint-config-typescript-1.1.2.tgz#a9be4e56aedf298800f247c5049fc412f8b301a7" - integrity sha512-AhiWJQr+MSE3RVfgp5XwGoMK7kNSKh6a18+T7hkNJtyycP0306I6IGmuFA5ZVbcakGb+K32fQWzepSkrNCTAGg== - "@matterlabs/hardhat-zksync-chai-matchers@^0.1.4": version "0.1.4" resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-chai-matchers/-/hardhat-zksync-chai-matchers-0.1.4.tgz#105cb0ec1367c8fcd3ce7e3773f747c71fff675b" @@ -525,6 +442,16 @@ chalk "4.1.2" ts-morph "^19.0.0" +"@matterlabs/hardhat-zksync-node@^0.0.1-beta.7": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-node/-/hardhat-zksync-node-0.0.1.tgz#d44bda3c0069b149e2a67c9697eb81166b169ea6" + integrity sha512-rMabl+I813lzXINqTq5OvujQ30wsfO9mTLMPDXuYzEEhEzvnXlaVxuqynKBXrgXAxjmr+G79rqvcWgeKygtwBA== + dependencies: + "@matterlabs/hardhat-zksync-solc" "^1.0.5" + axios "^1.4.0" + chalk "4.1.2" + fs-extra "^11.1.1" + "@matterlabs/hardhat-zksync-solc@0.4.2", "@matterlabs/hardhat-zksync-solc@^0.4.2": version "0.4.2" resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.4.2.tgz#64121082e88c5ab22eb4e9594d120e504f6af499" @@ -537,10 +464,22 @@ proper-lockfile "^4.1.2" semver "^7.5.1" -"@matterlabs/prettier-config@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@matterlabs/prettier-config/-/prettier-config-1.0.3.tgz#3e2eb559c0112bbe9671895f935700dad2a15d38" - integrity sha512-JW7nHREPqEtjBWz3EfxLarkmJBD8vi7Kx/1AQ6eBZnz12eHc1VkOyrc6mpR5ogTf0dOUNXFAfZut+cDe2dn4kQ== +"@matterlabs/hardhat-zksync-solc@^1.0.5": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-1.1.2.tgz#d5c371acb8b745f018f0559403fe590e8c1dd8b4" + integrity sha512-4qyt9T3OevP+IGJqGd6cS/BKwJnne6XfYCq4gES2nnXoyIWOihmuaL9+KDsbvwVI4mBfB4bz84+SP68W5Bxuig== + dependencies: + "@nomiclabs/hardhat-docker" "^2.0.0" + chai "^4.3.6" + chalk "4.1.2" + debug "^4.3.4" + dockerode "^4.0.0" + fs-extra "^11.1.1" + proper-lockfile "^4.1.2" + semver "^7.5.1" + sinon "^16.0.0" + sinon-chai "^3.7.0" + undici "^5.14.0" "@metamask/eth-sig-util@^4.0.0": version "4.0.1" @@ -576,7 +515,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -584,31 +523,31 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@nomicfoundation/ethereumjs-block@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz#6f89664f55febbd723195b6d0974773d29ee133d" - integrity sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw== - dependencies: - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-trie" "6.0.1" - "@nomicfoundation/ethereumjs-tx" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" +"@nomicfoundation/ethereumjs-block@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz#13a7968f5964f1697da941281b7f7943b0465d04" + integrity sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-trie" "6.0.2" + "@nomicfoundation/ethereumjs-tx" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" ethereum-cryptography "0.1.3" ethers "^5.7.1" -"@nomicfoundation/ethereumjs-blockchain@7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz#80e0bd3535bfeb9baa29836b6f25123dab06a726" - integrity sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A== - dependencies: - "@nomicfoundation/ethereumjs-block" "5.0.1" - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-ethash" "3.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-trie" "6.0.1" - "@nomicfoundation/ethereumjs-tx" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" +"@nomicfoundation/ethereumjs-blockchain@7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz#45323b673b3d2fab6b5008535340d1b8fea7d446" + integrity sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.2" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-ethash" "3.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-trie" "6.0.2" + "@nomicfoundation/ethereumjs-tx" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" abstract-level "^1.0.3" debug "^4.3.3" ethereum-cryptography "0.1.3" @@ -616,103 +555,103 @@ lru-cache "^5.1.1" memory-level "^1.0.0" -"@nomicfoundation/ethereumjs-common@4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz#4702d82df35b07b5407583b54a45bf728e46a2f0" - integrity sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g== +"@nomicfoundation/ethereumjs-common@4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz#a15d1651ca36757588fdaf2a7d381a150662a3c3" + integrity sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg== dependencies: - "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.2" crc-32 "^1.2.0" -"@nomicfoundation/ethereumjs-ethash@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz#65ca494d53e71e8415c9a49ef48bc921c538fc41" - integrity sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w== +"@nomicfoundation/ethereumjs-ethash@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz#da77147f806401ee996bfddfa6487500118addca" + integrity sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg== dependencies: - "@nomicfoundation/ethereumjs-block" "5.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-block" "5.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" abstract-level "^1.0.3" bigint-crypto-utils "^3.0.23" ethereum-cryptography "0.1.3" -"@nomicfoundation/ethereumjs-evm@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz#f35681e203363f69ce2b3d3bf9f44d4e883ca1f1" - integrity sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ== +"@nomicfoundation/ethereumjs-evm@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz#4c2f4b84c056047102a4fa41c127454e3f0cfcf6" + integrity sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ== dependencies: "@ethersproject/providers" "^5.7.1" - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-tx" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-tx" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" debug "^4.3.3" ethereum-cryptography "0.1.3" mcl-wasm "^0.7.1" rustbn.js "~0.2.0" -"@nomicfoundation/ethereumjs-rlp@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz#0b30c1cf77d125d390408e391c4bb5291ef43c28" - integrity sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ== +"@nomicfoundation/ethereumjs-rlp@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz#4fee8dc58a53ac6ae87fb1fca7c15dc06c6b5dea" + integrity sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA== -"@nomicfoundation/ethereumjs-statemanager@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz#8824a97938db4471911e2d2f140f79195def5935" - integrity sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ== +"@nomicfoundation/ethereumjs-statemanager@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz#3ba4253b29b1211cafe4f9265fee5a0d780976e0" + integrity sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA== dependencies: - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" debug "^4.3.3" ethereum-cryptography "0.1.3" ethers "^5.7.1" js-sdsl "^4.1.4" -"@nomicfoundation/ethereumjs-trie@6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz#662c55f6b50659fd4b22ea9f806a7401cafb7717" - integrity sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA== +"@nomicfoundation/ethereumjs-trie@6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz#9a6dbd28482dca1bc162d12b3733acab8cd12835" + integrity sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ== dependencies: - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" "@types/readable-stream" "^2.3.13" ethereum-cryptography "0.1.3" readable-stream "^3.6.0" -"@nomicfoundation/ethereumjs-tx@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz#7629dc2036b4a33c34e9f0a592b43227ef4f0c7d" - integrity sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w== +"@nomicfoundation/ethereumjs-tx@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz#117813b69c0fdc14dd0446698a64be6df71d7e56" + integrity sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g== dependencies: "@chainsafe/ssz" "^0.9.2" "@ethersproject/providers" "^5.7.2" - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" ethereum-cryptography "0.1.3" -"@nomicfoundation/ethereumjs-util@9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz#530cda8bae33f8b5020a8f199ed1d0a2ce48ec89" - integrity sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA== +"@nomicfoundation/ethereumjs-util@9.0.2": + version "9.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz#16bdc1bb36f333b8a3559bbb4b17dac805ce904d" + integrity sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ== dependencies: "@chainsafe/ssz" "^0.10.0" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" ethereum-cryptography "0.1.3" -"@nomicfoundation/ethereumjs-vm@7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz#7d035e0993bcad10716c8b36e61dfb87fa3ca05f" - integrity sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ== - dependencies: - "@nomicfoundation/ethereumjs-block" "5.0.1" - "@nomicfoundation/ethereumjs-blockchain" "7.0.1" - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-evm" "2.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-statemanager" "2.0.1" - "@nomicfoundation/ethereumjs-trie" "6.0.1" - "@nomicfoundation/ethereumjs-tx" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" +"@nomicfoundation/ethereumjs-vm@7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz#3b0852cb3584df0e18c182d0672a3596c9ca95e6" + integrity sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.2" + "@nomicfoundation/ethereumjs-blockchain" "7.0.2" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-evm" "2.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-statemanager" "2.0.2" + "@nomicfoundation/ethereumjs-trie" "6.0.2" + "@nomicfoundation/ethereumjs-tx" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" debug "^4.3.3" ethereum-cryptography "0.1.3" mcl-wasm "^0.7.1" @@ -804,7 +743,7 @@ fs-extra "^7.0.1" node-fetch "^2.6.0" -"@nomiclabs/hardhat-ethers@^2.0.6": +"@nomiclabs/hardhat-ethers@^2.0.0": version "2.2.3" resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== @@ -817,18 +756,6 @@ fs-extra "^7.0.1" solpp "^0.11.5" -"@pkgr/utils@^2.3.1": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.3.0" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.6.0" - "@scure/base@~1.1.0": version "1.1.3" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" @@ -919,12 +846,47 @@ "@sentry/types" "5.30.0" tslib "^1.9.3" -"@solidity-parser/parser@^0.16.0": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.16.1.tgz#f7c8a686974e1536da0105466c4db6727311253c" - integrity sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw== +"@sinonjs/commons@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== + dependencies: + type-detect "4.0.8" + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== dependencies: - antlr4ts "^0.5.0-alpha.4" + "@sinonjs/commons" "^3.0.0" + +"@sinonjs/fake-timers@^11.2.2": + version "11.2.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz#50063cc3574f4a27bd8453180a04171c85cc9699" + integrity sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@sinonjs/samsam@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60" + integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew== + dependencies: + "@sinonjs/commons" "^2.0.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" + integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== "@ts-morph/common@~0.20.0": version "0.20.0" @@ -956,20 +918,12 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@typechain/ethers-v5@^10.0.0": - version "10.2.1" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz#50241e6957683281ecfa03fb5a6724d8a3ce2391" - integrity sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A== - dependencies: - lodash "^4.17.15" - ts-essentials "^7.0.1" - -"@typechain/hardhat@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-7.0.0.tgz#ffa7465328150e793007fee616ae7b76ed20784d" - integrity sha512-XB79i5ewg9Met7gMVGfgVkmypicbnI25T5clJBEooMoW2161p4zvKFpoS2O+lBppQyMrPIZkdvl2M3LMDayVcA== +"@typechain/ethers-v5@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-2.0.0.tgz#cd3ca1590240d587ca301f4c029b67bfccd08810" + integrity sha512-0xdCkyGOzdqh4h5JSf+zoWx85IusEjDcPIwNEHP8mrWSnCae4rvrqB+/gtpdNfX7zjlFlZiMeePn2r63EI3Lrw== dependencies: - fs-extra "^9.1.0" + ethers "^5.0.2" "@types/bn.js@^4.11.3": version "4.11.6" @@ -997,20 +951,10 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.6.tgz#7b489e8baf393d5dd1266fb203ddd4ea941259e6" integrity sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw== -"@types/chai@^4.3.1": - version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" - integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== - -"@types/json-schema@^7.0.12": - version "7.0.14" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.14.tgz#74a97a5573980802f32c8e47b663530ab3b6b7d1" - integrity sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/chai@^4.2.21": + version "4.3.11" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.11.tgz#e95050bf79a932cb7305dd130254ccdf9bde671c" + integrity sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ== "@types/lodash@^4.14.199": version "4.14.199" @@ -1029,10 +973,10 @@ dependencies: "@types/node" "*" -"@types/mocha@^9.1.1": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" - integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== +"@types/mocha@^8.2.3": + version "8.2.3" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" + integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== "@types/node@*": version "20.6.0" @@ -1078,100 +1022,10 @@ dependencies: "@types/node" "*" -"@types/semver@^7.5.0": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" - integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== - -"@typescript-eslint/eslint-plugin@^6.7.4": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.0.tgz#fdb6f3821c0167e3356e9d89c80e8230b2e401f4" - integrity sha512-lgX7F0azQwRPB7t7WAyeHWVfW1YJ9NIgd9mvGhfQpRY56X6AVf8mwM8Wol+0z4liE7XX3QOt8MN1rUKCfSjRIA== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.9.0" - "@typescript-eslint/type-utils" "6.9.0" - "@typescript-eslint/utils" "6.9.0" - "@typescript-eslint/visitor-keys" "6.9.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.4" - natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^6.7.4": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.9.0.tgz#2b402cadeadd3f211c25820e5433413347b27391" - integrity sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw== - dependencies: - "@typescript-eslint/scope-manager" "6.9.0" - "@typescript-eslint/types" "6.9.0" - "@typescript-eslint/typescript-estree" "6.9.0" - "@typescript-eslint/visitor-keys" "6.9.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.9.0.tgz#2626e9a7fe0e004c3e25f3b986c75f584431134e" - integrity sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw== - dependencies: - "@typescript-eslint/types" "6.9.0" - "@typescript-eslint/visitor-keys" "6.9.0" - -"@typescript-eslint/type-utils@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.9.0.tgz#23923c8c9677c2ad41457cf8e10a5f2946be1b04" - integrity sha512-XXeahmfbpuhVbhSOROIzJ+b13krFmgtc4GlEuu1WBT+RpyGPIA4Y/eGnXzjbDj5gZLzpAXO/sj+IF/x2GtTMjQ== - dependencies: - "@typescript-eslint/typescript-estree" "6.9.0" - "@typescript-eslint/utils" "6.9.0" - debug "^4.3.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/types@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.9.0.tgz#86a0cbe7ac46c0761429f928467ff3d92f841098" - integrity sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw== - -"@typescript-eslint/typescript-estree@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.0.tgz#d0601b245be873d8fe49f3737f93f8662c8693d4" - integrity sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ== - dependencies: - "@typescript-eslint/types" "6.9.0" - "@typescript-eslint/visitor-keys" "6.9.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.9.0.tgz#5bdac8604fca4823f090e4268e681c84d3597c9f" - integrity sha512-5Wf+Jsqya7WcCO8me504FBigeQKVLAMPmUzYgDbWchINNh1KJbxCgVya3EQ2MjvJMVeXl3pofRmprqX6mfQkjQ== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.9.0" - "@typescript-eslint/types" "6.9.0" - "@typescript-eslint/typescript-estree" "6.9.0" - semver "^7.5.4" - -"@typescript-eslint/visitor-keys@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.0.tgz#cc69421c10c4ac997ed34f453027245988164e80" - integrity sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg== - dependencies: - "@typescript-eslint/types" "6.9.0" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== JSONStream@1.3.2: version "1.3.2" @@ -1181,13 +1035,6 @@ JSONStream@1.3.2: jsonparse "^1.2.0" through ">=2.2.7 <3" -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" @@ -1201,11 +1048,6 @@ abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: module-error "^1.0.1" queue-microtask "^1.2.3" -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - acorn-walk@^8.1.1: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" @@ -1216,11 +1058,6 @@ acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== -acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== - adm-zip@^0.4.16: version "0.4.16" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" @@ -1246,25 +1083,12 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.12.4, ajv@^6.12.6: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" + string-width "^4.1.0" ansi-colors@4.1.1: version "4.1.1" @@ -1302,21 +1126,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -antlr4@^4.11.0: - version "4.13.1" - resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.1.tgz#1e0a1830a08faeb86217cb2e6c34716004e4253d" - integrity sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA== - antlr4@~4.8.0: version "4.8.0" resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.8.0.tgz#f938ec171be7fc2855cd3a533e87647185b32b6a" integrity sha512-en/MxQ4OkPgGJQ3wD/muzj1uDnFSzdFIhc2+c6bHZokWkuBb6RRvFjpWhPxWLbgQvaEzldJZ0GSQpfSAaE3hqg== -antlr4ts@^0.5.0-alpha.4: - version "0.5.0-alpha.4" - resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" - integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== - any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -1340,83 +1154,19 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-back@^3.0.1, array-back@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" - integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== - -array-back@^4.0.1, array-back@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" - integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - -array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== +array-back@^1.0.3, array-back@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" + integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + typical "^2.6.0" -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== +array-back@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-2.0.0.tgz#6877471d51ecc9c9bfa6136fb6c7d5fe69748022" + integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" + typical "^2.6.1" asn1@^0.2.6: version "0.2.6" @@ -1430,25 +1180,10 @@ assertion-error@^1.1.0: resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -ast-parents@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" - integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== axios@^0.21.1: version "0.21.4" @@ -1457,6 +1192,15 @@ axios@^0.21.1: dependencies: follow-redirects "^1.14.0" +axios@^1.4.0: + version "1.6.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" + integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== + dependencies: + follow-redirects "^1.15.4" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -1486,11 +1230,6 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - bigint-crypto-utils@^3.0.23: version "3.3.0" resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz#72ad00ae91062cf07f2b1def9594006c279c1d77" @@ -1541,12 +1280,19 @@ bn.js@^5.2.0, bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== +boxen@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== dependencies: - big-integer "^1.6.44" + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" brace-expansion@^1.1.7: version "1.1.11" @@ -1667,33 +1413,12 @@ buildcheck@~0.0.6: resolved "https://registry.yarnpkg.com/buildcheck/-/buildcheck-0.0.6.tgz#89aa6e417cfd1e2196e3f8fe915eb709d2fe4238" integrity sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A== -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^6.0.0: +camelcase@^6.0.0, camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -1715,6 +1440,19 @@ chai-as-promised@^7.1.1: dependencies: check-error "^1.0.2" +chai@^4.3.10: + version "4.4.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.0.8" + chai@^4.3.6: version "4.3.8" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.8.tgz#40c59718ad6928da6629c70496fe990b2bb5b17c" @@ -1728,7 +1466,7 @@ chai@^4.3.6: pathval "^1.1.1" type-detect "^4.0.5" -chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: +chalk@4.1.2, chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1750,6 +1488,13 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + chokidar@3.5.3, chokidar@^3.4.0: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -1799,6 +1544,11 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1837,41 +1587,32 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + command-exists@^1.2.8: version "1.2.9" resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== -command-line-args@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" - integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== - dependencies: - array-back "^3.1.0" - find-replace "^3.0.0" - lodash.camelcase "^4.3.0" - typical "^4.0.0" - -command-line-usage@^6.1.0: - version "6.1.3" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" - integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== +command-line-args@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" + integrity sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA== dependencies: - array-back "^4.0.2" - chalk "^2.4.2" - table-layout "^1.0.2" - typical "^5.2.0" + array-back "^2.0.0" + find-replace "^1.0.3" + typical "^2.6.1" commander@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - commander@^2.19.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -1882,11 +1623,6 @@ commander@^9.4.1: resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== -commander@~9.4.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" - integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1912,17 +1648,7 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^8.0.0: - version "8.3.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" - integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== - dependencies: - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - path-type "^4.0.0" - -cpu-features@~0.0.8: +cpu-features@~0.0.8, cpu-features@~0.0.9: version "0.0.9" resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.9.tgz#5226b92f0f1c63122b0a3eb84cb8335a4de499fc" integrity sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ== @@ -1963,23 +1689,21 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^3.2.6, debug@^3.2.7: +debug@4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +debug@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -1996,63 +1720,17 @@ decimal.js-light@^2.5.0: resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== -deep-eql@^4.0.1, deep-eql@^4.1.2: +deep-eql@^4.0.1, deep-eql@^4.1.2, deep-eql@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" -deep-extend@^0.6.0, deep-extend@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== depd@2.0.0: version "2.0.0" @@ -2069,12 +1747,10 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" +diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== docker-modem@^1.0.8: version "1.0.9" @@ -2096,6 +1772,16 @@ docker-modem@^3.0.0: split-ca "^1.0.1" ssh2 "^1.11.0" +docker-modem@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-5.0.3.tgz#50c06f11285289f58112b5c4c4d89824541c41d0" + integrity sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg== + dependencies: + debug "^4.1.1" + readable-stream "^3.5.0" + split-ca "^1.0.1" + ssh2 "^1.15.0" + dockerode@^2.5.8: version "2.5.8" resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.8.tgz#1b661e36e1e4f860e25f56e0deabe9f87f1d0acc" @@ -2114,19 +1800,14 @@ dockerode@^3.3.4: docker-modem "^3.0.0" tar-fs "~2.0.1" -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== +dockerode@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-4.0.2.tgz#dedc8529a1db3ac46d186f5912389899bc309f7d" + integrity sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w== dependencies: - esutils "^2.0.2" + "@balena/dockerignore" "^1.0.2" + docker-modem "^5.0.3" + tar-fs "~2.0.1" elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4: version "6.5.4" @@ -2153,14 +1834,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.12.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - enquirer@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" @@ -2169,99 +1842,17 @@ enquirer@^2.3.0: ansi-colors "^4.1.1" strip-ansi "^6.0.1" -entities@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" - integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== - env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" - -es-set-tostringtag@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" - integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== - dependencies: - get-intrinsic "^1.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: +escape-string-regexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -2271,156 +1862,6 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -eslint-import-resolver-node@^0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== - dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" - -eslint-import-resolver-typescript@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" - integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== - dependencies: - debug "^4.3.4" - enhanced-resolve "^5.12.0" - eslint-module-utils "^2.7.4" - fast-glob "^3.3.1" - get-tsconfig "^4.5.0" - is-core-module "^2.11.0" - is-glob "^4.0.3" - -eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== - dependencies: - debug "^3.2.7" - -eslint-plugin-import@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" - integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== - dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" - semver "^6.3.1" - tsconfig-paths "^3.14.2" - -eslint-plugin-prettier@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515" - integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.5" - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint@^8.51.0: - version "8.52.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.52.0.tgz#d0cd4a1fac06427a61ef9242b9353f36ea7062fc" - integrity sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.52.0" - "@humanwhocodes/config-array" "^0.11.13" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" @@ -2473,7 +1914,7 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethers@^5.7.0, ethers@^5.7.1: +ethers@^5.0.2, ethers@^5.7.0, ethers@^5.7.1, ethers@~5.7.0: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -2517,11 +1958,6 @@ ethjs-util@0.1.6, ethjs-util@^0.1.6: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -2530,47 +1966,7 @@ evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2, fast-diff@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: +fast-glob@^3.2.12: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -2581,29 +1977,23 @@ fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: - reusify "^1.0.4" + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: - flat-cache "^3.0.4" + reusify "^1.0.4" fill-range@^7.0.1: version "7.0.1" @@ -2612,14 +2002,15 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -find-replace@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" - integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== +find-replace@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.3.tgz#b88e7364d2d9c959559f388c66670d6130441fa0" + integrity sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA== dependencies: - array-back "^3.0.1" + array-back "^1.0.4" + test-value "^2.1.0" -find-up@5.0.0, find-up@^5.0.0: +find-up@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== @@ -2634,36 +2025,29 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" -flat-cache@^3.0.4: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" - integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== - follow-redirects@^1.12.1, follow-redirects@^1.14.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== +follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: - is-callable "^1.1.3" + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" fp-ts@1.19.3: version "1.19.3" @@ -2709,16 +2093,6 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2734,31 +2108,11 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -2769,40 +2123,10 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-stdin@~9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" - integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== - -get-stream@^6.0.0, get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-tsconfig@^4.5.0: - version "4.7.2" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" - integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== - dependencies: - resolve-pkg-maps "^1.0.0" +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" @@ -2811,25 +2135,6 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -2854,61 +2159,6 @@ glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -glob@~8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -globals@^13.19.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -2919,36 +2169,41 @@ graceful-fs@^4.2.0, graceful-fs@^4.2.4: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== -hardhat@=2.16.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.16.0.tgz#c5611d433416b31f6ce92f733b1f1b5236ad6230" - integrity sha512-7VQEJPQRAZdtrYUZaU9GgCpP3MBNy/pTdscARNJQMWKj5C+R7V32G5uIZKIqZ4QiqXa6CBfxxe+G+ahxUbHZHA== +hardhat-typechain@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/hardhat-typechain/-/hardhat-typechain-0.3.5.tgz#8e50616a9da348b33bd001168c8fda9c66b7b4af" + integrity sha512-w9lm8sxqTJACY+V7vijiH+NkPExnmtiQEjsV9JKD1KgMdVk2q8y+RhvU/c4B7+7b1+HylRUCxpOIvFuB3rE4+w== + +hardhat@^2.18.3: + version "2.19.5" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.5.tgz#6017c35ae2844b669e9bcc84c3d05346d4ef031c" + integrity sha512-vx8R7zWCYVgM56vA6o0Wqx2bIIptkN4TMs9QwDqZVNGRhMzBfzqUeEYbp+69gxWp1neg2V2nYQUaaUv7aom1kw== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/ethereumjs-block" "5.0.1" - "@nomicfoundation/ethereumjs-blockchain" "7.0.1" - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-evm" "2.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-statemanager" "2.0.1" - "@nomicfoundation/ethereumjs-trie" "6.0.1" - "@nomicfoundation/ethereumjs-tx" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" - "@nomicfoundation/ethereumjs-vm" "7.0.1" + "@nomicfoundation/ethereumjs-block" "5.0.2" + "@nomicfoundation/ethereumjs-blockchain" "7.0.2" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-evm" "2.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-statemanager" "2.0.2" + "@nomicfoundation/ethereumjs-trie" "6.0.2" + "@nomicfoundation/ethereumjs-tx" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" + "@nomicfoundation/ethereumjs-vm" "7.0.2" "@nomicfoundation/solidity-analyzer" "^0.1.0" "@sentry/node" "^5.18.1" "@types/bn.js" "^5.1.0" "@types/lru-cache" "^5.1.0" - abort-controller "^3.0.0" adm-zip "^0.4.16" aggregate-error "^3.0.0" ansi-escapes "^4.3.0" + boxen "^5.1.2" chalk "^2.4.2" chokidar "^3.4.0" ci-info "^2.0.0" @@ -2979,11 +2234,6 @@ hardhat@=2.16.0: uuid "^8.3.2" ws "^7.4.6" -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2994,30 +2244,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== - dependencies: - get-intrinsic "^1.2.2" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3042,13 +2268,6 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -3082,16 +2301,6 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -3104,29 +2313,11 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0, ignore@^5.2.4, ignore@~5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - immutable@^4.0.0-rc.12: version "4.3.4" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== -import-fresh@^3.2.1, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" @@ -3145,20 +2336,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" - integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== - -internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== - dependencies: - get-intrinsic "^1.2.2" - hasown "^2.0.0" - side-channel "^1.0.4" - io-ts@1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" @@ -3166,27 +2343,6 @@ io-ts@1.10.4: dependencies: fp-ts "^1.0.0" -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -3194,31 +2350,11 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-buffer@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.11.0, is-core-module@^2.13.1: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - is-core-module@^2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" @@ -3226,23 +2362,6 @@ is-core-module@^2.13.0: dependencies: has "^1.0.3" -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3253,7 +2372,7 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -3265,115 +2384,26 @@ is-hex-prefixed@1.0.0: resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3394,55 +2424,13 @@ js-sha3@0.8.0, js-sha3@^0.8.0: resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@4.1.0, js-yaml@^4.1.0: +js-yaml@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -jsonc-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" - integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== - jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -3471,6 +2459,11 @@ jsonparse@^1.2.0: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== +just-extend@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-6.2.0.tgz#b816abfb3d67ee860482e7401564672558163947" + integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== + keccak@^3.0.0, keccak@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" @@ -3480,13 +2473,6 @@ keccak@^3.0.0, keccak@^3.0.2: node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -3515,26 +2501,6 @@ level@^8.0.0: browser-level "^1.0.1" classic-level "^1.2.0" -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -linkify-it@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" - integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== - dependencies: - uc.micro "^1.0.1" - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -3550,20 +2516,10 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.truncate@^4.4.2: +lodash.get@^4.4.2: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" @@ -3585,6 +2541,13 @@ loupe@^2.3.1: dependencies: get-func-name "^2.0.0" +loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -3609,39 +2572,6 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -markdown-it@13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430" - integrity sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q== - dependencies: - argparse "^2.0.1" - entities "~3.0.1" - linkify-it "^4.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -markdownlint-cli@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.33.0.tgz#703af1234c32c309ab52fcd0e8bc797a34e2b096" - integrity sha512-zMK1oHpjYkhjO+94+ngARiBBrRDEUMzooDHBAHtmEIJ9oYddd9l3chCReY2mPlecwH7gflQp1ApilTo+o0zopQ== - dependencies: - commander "~9.4.1" - get-stdin "~9.0.0" - glob "~8.0.3" - ignore "~5.2.4" - js-yaml "^4.1.0" - jsonc-parser "~3.2.0" - markdownlint "~0.27.0" - minimatch "~5.1.2" - run-con "~1.2.11" - -markdownlint@~0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.27.0.tgz#9dabf7710a4999e2835e3c68317f1acd0bc89049" - integrity sha512-HtfVr/hzJJmE0C198F99JLaeada+646B5SaG2pVoEakLFI6iRGsvMqrnnrflq8hm1zQgwskEgqSnhDW11JBp0w== - dependencies: - markdown-it "13.0.1" - mcl-wasm@^0.7.1: version "0.7.9" resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" @@ -3656,11 +2586,6 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - memory-level@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" @@ -3675,12 +2600,7 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -3693,15 +2613,17 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" @@ -3713,6 +2635,13 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== +minimatch@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" + integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== + dependencies: + brace-expansion "^1.1.7" + minimatch@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" @@ -3720,20 +2649,13 @@ minimatch@5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@~5.1.2: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^7.4.3: version "7.4.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" @@ -3741,7 +2663,7 @@ minimatch@^7.4.3: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8: +minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -3802,6 +2724,36 @@ mocha@^10.0.0: yargs-parser "20.2.4" yargs-unparser "2.0.0" +mocha@^9.0.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" + integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.3" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + growl "1.10.5" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "4.2.1" + ms "2.1.3" + nanoid "3.3.1" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + workerpool "6.2.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + module-error@^1.0.1, module-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" @@ -3831,6 +2783,16 @@ nan@^2.17.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== +nan@^2.18.0: + version "2.18.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" + integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== + +nanoid@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== + nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" @@ -3841,10 +2803,16 @@ napi-macros@^2.2.2: resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +nise@^5.1.4: + version "5.1.9" + resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.9.tgz#0cb73b5e4499d738231a473cd89bd8afbb618139" + integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== + dependencies: + "@sinonjs/commons" "^3.0.0" + "@sinonjs/fake-timers" "^11.2.2" + "@sinonjs/text-encoding" "^0.7.2" + just-extend "^6.2.0" + path-to-regexp "^6.2.1" node-addon-api@^2.0.0: version "2.0.2" @@ -3868,73 +2836,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - -object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - obliterator@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" @@ -3947,42 +2853,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - ordinal@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" @@ -4040,23 +2910,6 @@ p-try@^1.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - path-browserify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" @@ -4077,25 +2930,15 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +path-to-regexp@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" + integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== pathington@^1.1.7: version "1.1.7" @@ -4118,26 +2961,11 @@ pbkdf2@^3.0.17: safe-buffer "^5.0.1" sha.js "^2.4.8" -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - preprocess@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/preprocess/-/preprocess-3.2.0.tgz#36b3e2c52331fbc6fabb26d4fd5709304b7e3675" @@ -4145,37 +2973,11 @@ preprocess@^3.2.0: dependencies: xregexp "3.1.0" -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier-plugin-solidity@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz#9a35124f578404caf617634a8cab80862d726cba" - integrity sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg== - dependencies: - "@solidity-parser/parser" "^0.16.0" - semver "^7.3.8" - solidity-comments-extractor "^0.0.7" - prettier@^2.1.2: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -prettier@^2.3.1, prettier@^2.8.3: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -prettier@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -4190,6 +2992,11 @@ proper-lockfile@^4.1.2: retry "^0.12.0" signal-exit "^3.0.2" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + pump@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" @@ -4206,11 +3013,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -4272,40 +3074,16 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -reduce-flatten@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" - integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== - -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -require-from-string@^2.0.0, require-from-string@^2.0.2: +require-from-string@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - resolve@1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" @@ -4322,15 +3100,6 @@ resolve@^1.10.0, resolve@^1.8.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -4348,13 +3117,6 @@ rimraf@^2.2.8: dependencies: glob "^7.1.3" -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -4370,23 +3132,6 @@ rlp@^2.2.3: dependencies: bn.js "^5.2.0" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - -run-con@~1.2.11: - version "1.2.12" - resolved "https://registry.yarnpkg.com/run-con/-/run-con-1.2.12.tgz#51c319910e45a3bd71ee773564a89d96635c8c64" - integrity sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg== - dependencies: - deep-extend "^0.6.0" - ini "~3.0.0" - minimist "^1.2.8" - strip-json-comments "~3.1.1" - run-parallel-limit@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" @@ -4406,16 +3151,6 @@ rustbn.js@~0.2.0: resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== -safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - isarray "^2.0.5" - safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -4426,15 +3161,6 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -4459,12 +3185,12 @@ semver@^5.5.0, semver@^5.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.3.0, semver@^6.3.1: +semver@^6.3.0: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.8, semver@^7.5.1, semver@^7.5.2, semver@^7.5.4: +semver@^7.5.1: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -4478,25 +3204,6 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== - dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -set-function-name@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== - dependencies: - define-data-property "^1.0.1" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" - setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -4515,45 +3222,27 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +sinon-chai@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.7.0.tgz#cfb7dec1c50990ed18c153f1840721cf13139783" + integrity sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g== -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== +sinon@^16.0.0: + version "16.1.3" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-16.1.3.tgz#b760ddafe785356e2847502657b4a0da5501fba8" + integrity sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA== dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" + "@sinonjs/commons" "^3.0.0" + "@sinonjs/fake-timers" "^10.3.0" + "@sinonjs/samsam" "^8.0.0" + diff "^5.1.0" + nise "^5.1.4" + supports-color "^7.2.0" solc@0.7.3: version "0.7.3" @@ -4570,36 +3259,6 @@ solc@0.7.3: semver "^5.5.0" tmp "0.0.33" -solhint@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.6.2.tgz#2b2acbec8fdc37b2c68206a71ba89c7f519943fe" - integrity sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ== - dependencies: - "@solidity-parser/parser" "^0.16.0" - ajv "^6.12.6" - antlr4 "^4.11.0" - ast-parents "^0.0.1" - chalk "^4.1.2" - commander "^10.0.0" - cosmiconfig "^8.0.0" - fast-diff "^1.2.0" - glob "^8.0.3" - ignore "^5.2.4" - js-yaml "^4.1.0" - lodash "^4.17.21" - pluralize "^8.0.0" - semver "^7.5.2" - strip-ansi "^6.0.1" - table "^6.8.1" - text-table "^0.2.0" - optionalDependencies: - prettier "^2.8.3" - -solidity-comments-extractor@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" - integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== - solpp@^0.11.5: version "0.11.5" resolved "https://registry.yarnpkg.com/solpp/-/solpp-0.11.5.tgz#e5f38b5acc952e1cc2e3871d490fdbed910938dd" @@ -4644,6 +3303,17 @@ ssh2@^1.11.0: cpu-features "~0.0.8" nan "^2.17.0" +ssh2@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b" + integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw== + dependencies: + asn1 "^0.2.6" + bcrypt-pbkdf "^1.0.2" + optionalDependencies: + cpu-features "~0.0.9" + nan "^2.18.0" + stacktrace-parser@^0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" @@ -4656,12 +3326,7 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -string-format@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" - integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -4670,33 +3335,6 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -4723,21 +3361,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" @@ -4745,7 +3368,7 @@ strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed "1.0.0" -strip-json-comments@3.1.1, strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: +strip-json-comments@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -4764,7 +3387,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -4776,40 +3399,6 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== - dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" - -table-layout@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" - integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== - dependencies: - array-back "^4.0.1" - deep-extend "~0.6.0" - typical "^5.2.0" - wordwrapjs "^4.0.0" - -table@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - tar-fs@~1.16.3: version "1.16.3" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" @@ -4864,10 +3453,13 @@ template-file@^6.0.1: mkdirp "^1.0.4" p-limit "^4.0.0" -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +test-value@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" + integrity sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w== + dependencies: + array-back "^1.0.3" + typical "^2.6.0" thenify-all@^1.0.0: version "1.6.0" @@ -4888,11 +3480,6 @@ thenify-all@^1.0.0: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmp@0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -4922,21 +3509,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== - -ts-command-line-args@^2.2.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" - integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== - dependencies: - chalk "^4.1.0" - command-line-args "^5.1.1" - command-line-usage "^6.1.0" - string-format "^2.0.0" - ts-essentials@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-1.0.4.tgz#ce3b5dade5f5d97cf69889c11bf7d2da8555b15a" @@ -4970,10 +3542,10 @@ ts-morph@^19.0.0: "@ts-morph/common" "~0.20.0" code-block-writer "^12.0.0" -ts-node@^10.7.0: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== +ts-node@^10.1.0: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -4989,26 +3561,11 @@ ts-node@^10.7.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.5.0, tslib@^2.6.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - tsort@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" @@ -5029,14 +3586,7 @@ tweetnacl@^1.0.3: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -5056,60 +3606,18 @@ type-fest@^0.7.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== -typechain@^8.1.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.1.tgz#dccbc839b94877997536c356380eff7325395cfb" - integrity sha512-fA7clol2IP/56yq6vkMTR+4URF1nGjV82Wx6Rf09EsqD4tkzMAvEaqYxVFCavJm/1xaRga/oD55K+4FtuXwQOQ== +typechain@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-4.0.3.tgz#e8fcd6c984676858c64eeeb155ea783a10b73779" + integrity sha512-tmoHQeXZWHxIdeLK+i6dU0CU0vOd9Cndr3jFTZIMzak5/YpFZ8XoiYpTZcngygGBqZo+Z1EUmttLbW9KkFZLgQ== dependencies: - "@types/prettier" "^2.1.1" - debug "^4.3.1" + command-line-args "^4.0.7" + debug "^4.1.1" fs-extra "^7.0.0" - glob "7.1.7" js-sha3 "^0.8.0" lodash "^4.17.15" - mkdirp "^1.0.4" - prettier "^2.3.1" - ts-command-line-args "^2.2.0" ts-essentials "^7.0.1" - -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" + ts-generator "^0.1.1" typedarray@^0.0.6: version "0.0.6" @@ -5121,30 +3629,10 @@ typescript@^4.6.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -typical@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" - integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== - -typical@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" - integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== - -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" +typical@^2.6.0, typical@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" + integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== undici@^5.14.0: version "5.26.4" @@ -5168,18 +3656,6 @@ unpipe@1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -5208,42 +3684,24 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -which@^2.0.1: +which@2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wordwrapjs@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" - integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: - reduce-flatten "^2.0.0" - typical "^5.2.0" + string-width "^4.0.0" + +workerpool@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" + integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== workerpool@6.2.1: version "6.2.1" @@ -5347,6 +3805,13 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== +zksync-ethers@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/zksync-ethers/-/zksync-ethers-5.1.0.tgz#bb42260b3e56d2497af64e0962d7d8cee4a25eed" + integrity sha512-iks12h2/a7aS3kLm48oQWRm5HNViJP7lnGMSx4yidEB0Xob2MTgBv5G/9x40GaiCA1Yld8XIgC5YfcMmHWnh5Q== + dependencies: + ethers "~5.7.0" + zksync-web3@^0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.14.3.tgz#64ac2a16d597464c3fc4ae07447a8007631c57c9" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index bc962f33..14381872 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2023-07-23" +channel = "nightly-2023-08-21" components = ["rustfmt", "clippy"] \ No newline at end of file diff --git a/scripts/refresh_contracts.sh b/scripts/refresh_contracts.sh index af6df722..c534bf81 100755 --- a/scripts/refresh_contracts.sh +++ b/scripts/refresh_contracts.sh @@ -1,7 +1,7 @@ #!/bin/bash set -xe -SRC_DIR=etc/system-contracts/artifacts-zk/cache-zk/solpp-generated-contracts +SRC_DIR=etc/system-contracts/artifacts-zk/contracts-preprocessed DST_DIR=src/deps/contracts/ mkdir -p $DST_DIR @@ -15,14 +15,14 @@ done precompiles=("EcAdd" "EcMul" "Ecrecover" "Keccak256" "SHA256") for precompile in "${precompiles[@]}"; do - cp etc/system-contracts/contracts/precompiles/artifacts/$precompile.yul/$precompile.yul.zbin $DST_DIR + cp etc/system-contracts/contracts-preprocessed/precompiles/artifacts/$precompile.yul.zbin $DST_DIR done -cp etc/system-contracts/contracts/artifacts/EventWriter.yul/EventWriter.yul.zbin $DST_DIR +cp etc/system-contracts/contracts-preprocessed/artifacts/EventWriter.yul.zbin $DST_DIR bootloaders=("fee_estimate" "gas_test" "playground_batch" "proved_batch" "proved_batch_impersonating" "fee_estimate_impersonating" ) for bootloader in "${bootloaders[@]}"; do - cp etc/system-contracts/bootloader/build/artifacts/$bootloader.yul/$bootloader.yul.zbin $DST_DIR + cp etc/system-contracts/bootloader/build/artifacts/$bootloader.yul.zbin $DST_DIR done diff --git a/src/bootloader_debug.rs b/src/bootloader_debug.rs index c83b9a80..f601925e 100644 --- a/src/bootloader_debug.rs +++ b/src/bootloader_debug.rs @@ -1,4 +1,4 @@ -use multivm::interface::{dyn_tracers::vm_1_4_0::DynTracer, tracer::VmExecutionStopReason}; +use multivm::interface::{dyn_tracers::vm_1_4_1::DynTracer, tracer::VmExecutionStopReason}; use std::sync::Arc; use multivm::vm_latest::{ @@ -59,17 +59,12 @@ pub struct BootloaderDebug { /// Closing a block has a non-trivial cost for the operator (they have to run the prover, and commit results to L1). /// That's why we have to judge how much a given transaction is contributing the operator closer to sealing the block. - /// Cost of the whole block for the operator. - pub total_overhead_for_block: U256, - /// The maximum amount that operator could have requested. pub required_overhead: U256, /// How much did operator request for the block. pub operator_overhead: U256, - /// The amount of the overhead that circuits / gas are responsible for. - pub overhead_for_circuits: U256, /// The amount of the overhead that transaction length it responsible for. pub overhead_for_length: U256, /// The amount of the overhead that simply using a slot of the block is responsible for. @@ -126,10 +121,8 @@ impl BootloaderDebug { intrinsic_overhead: load_debug_slot(memory, 10), operator_overhead: load_debug_slot(memory, 11), required_overhead: load_debug_slot(memory, 12), - total_overhead_for_block: load_debug_slot(memory, 13), - overhead_for_circuits: load_debug_slot(memory, 14), - overhead_for_length: load_debug_slot(memory, 15), - overhead_for_slot: load_debug_slot(memory, 16), + overhead_for_length: load_debug_slot(memory, 13), + overhead_for_slot: load_debug_slot(memory, 14), }) } } diff --git a/src/deps/contracts/AccountCodeStorage.json b/src/deps/contracts/AccountCodeStorage.json index b30e4be2..20baca0b 100644 --- a/src/deps/contracts/AccountCodeStorage.json +++ b/src/deps/contracts/AccountCodeStorage.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "AccountCodeStorage", - "sourceName": "cache-zk/solpp-generated-contracts/AccountCodeStorage.sol", + "sourceName": "contracts-preprocessed/AccountCodeStorage.sol", "abi": [ { "inputs": [ @@ -110,8 +110,8 @@ "type": "function" } ], - "bytecode": "0x00030000000000020002000000000002000200000001035500000060011002700000007c0010019d000100000000001f0000008001000039000000400010043f0000000101200190000000370000c13d0000000001000031000000040110008c000000ef0000413d0000000201000367000000000101043b000000e0011002700000007e0210009c0000003f0000213d000000820210009c000000620000613d000000830210009c000000820000613d000000840110009c000000ef0000c13d0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b000000870210009c000000ef0000213d000000000101041a000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d0000002001000039000001000010044300000120000004430000007d01000041000001ed0001042e0000007f0210009c000000af0000613d000000800210009c000000d90000613d000000810110009c000000ef0000c13d0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b01ec015f0000040f000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000400310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000002020003670000000401200370000000000101043b000000870310009c000000ef0000213d0000002402200370000000000202043b0000000003000411000080060330008c000001050000c13d00000088032001980000011a0000c13d000000000021041b0000000001000019000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b0000008701100197000001000210008c00000000020000190000000102004039000000000101041a000000000301004b00000000030000190000000103006039000000000232019f0000008803100197000000890330009c0000000003000019000000010300603900000000023201a0000000db011002700000008b01100197000000000100c019000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000400310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000002010003670000000402100370000000000302043b000000870230009c000000ef0000213d0000002401100370000000000101043b000200000001001d0000000001000411000080060110008c00000000010000190000000101006039000100000003001d01ec012f0000040f00000002010000290000008801100197000000890110009c0000000001000019000000010100603901ec01470000040f00000002010000290000000102000029000000000012041b0000000001000019000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000201043b000000870120009c000000f10000a13d0000000001000019000001ee000104300000000001000411000080060110008c00000000010000190000000101006039000200000002001d01ec012f0000040f0000000201000029000000000101041a000100000001001d0000008801100197000000890110009c0000000001000019000000010100603901ec01470000040f00000001010000290000008a011001970000000202000029000000000012041b0000000001000019000001ed0001042e000000400100043d00000064021000390000008c03000041000000000032043500000044021000390000008d03000041000000000032043500000024021000390000002d0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000400100043d00000064021000390000009003000041000000000032043500000044021000390000009103000041000000000032043500000024021000390000002b0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000000101004b000001320000613d000000000001042d000000400100043d00000064021000390000008c03000041000000000032043500000044021000390000008d03000041000000000032043500000024021000390000002d0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000000101004b0000014a0000613d000000000001042d000000400100043d00000064021000390000009203000041000000000032043500000044021000390000009303000041000000000032043500000024021000390000002e0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee000104300002000000000002000000000201001900000094010000410000008702200197000000ff0320008c000001b80000a13d000000000302041a000000000103004b0000016e0000613d00000088013001970000009402000041000000890110009c00000000010300190000000001026019000001b80000013d000100000003001d000000400400043d000200000004001d00000095010000410000000000140435000000040140003900000000002104350000007c0100004100000000020004140000007c0320009c00000000020180190000007c0340009c00000000010440190000004001100210000000c002200210000000000112019f00000096011001c7000080030200003901ec01e70000040f000000020a000029000000000301001900000060033002700000007c03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001940000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000018c0000413d000000000705004b000001a30000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000001b90000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000970410009c000001df0000213d0000000102200190000001df0000c13d000000400010043f0000001f0130008c000001e50000a13d000000940100004100000000020a0433000000000202004b0000000103000029000001680000613d000000000001042d000000400200043d0000001f0430018f0000000503300272000001c60000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001be0000413d000000000504004b000001d50000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000007c0100004100000001030000310000007c0430009c00000000030180190000007c0420009c000000000102401900000040011002100000006002300210000000000112019f000001ee00010430000000980100004100000000001004350000004101000039000000040010043f0000009601000041000001ee000104300000000001000019000001ee00010430000001ea002104230000000102000039000000000001042d0000000002000019000000000001042d000001ec00000432000001ed0001042e000001ee00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000004f1e1bdf000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000e03fe177000000000000000000000000000000000000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000001806aa18000000000000000000000000000000000000000000000000000000004de2e46880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000001fffe07374656d20636f6e74726163740000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f79657220737908c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000656420636f6e7472616374000000000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e7374727563746f6e20636f6e7374727563746f72000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e747261637420c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705aa9b6b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003feb461a4c407970c4055ef207f89a1b4d8d50098197240a59e39b0630ca7988", - "deployedBytecode": "0x00030000000000020002000000000002000200000001035500000060011002700000007c0010019d000100000000001f0000008001000039000000400010043f0000000101200190000000370000c13d0000000001000031000000040110008c000000ef0000413d0000000201000367000000000101043b000000e0011002700000007e0210009c0000003f0000213d000000820210009c000000620000613d000000830210009c000000820000613d000000840110009c000000ef0000c13d0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b000000870210009c000000ef0000213d000000000101041a000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d0000002001000039000001000010044300000120000004430000007d01000041000001ed0001042e0000007f0210009c000000af0000613d000000800210009c000000d90000613d000000810110009c000000ef0000c13d0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b01ec015f0000040f000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000400310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000002020003670000000401200370000000000101043b000000870310009c000000ef0000213d0000002402200370000000000202043b0000000003000411000080060330008c000001050000c13d00000088032001980000011a0000c13d000000000021041b0000000001000019000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b0000008701100197000001000210008c00000000020000190000000102004039000000000101041a000000000301004b00000000030000190000000103006039000000000232019f0000008803100197000000890330009c0000000003000019000000010300603900000000023201a0000000db011002700000008b01100197000000000100c019000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000400310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000002010003670000000402100370000000000302043b000000870230009c000000ef0000213d0000002401100370000000000101043b000200000001001d0000000001000411000080060110008c00000000010000190000000101006039000100000003001d01ec012f0000040f00000002010000290000008801100197000000890110009c0000000001000019000000010100603901ec01470000040f00000002010000290000000102000029000000000012041b0000000001000019000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000201043b000000870120009c000000f10000a13d0000000001000019000001ee000104300000000001000411000080060110008c00000000010000190000000101006039000200000002001d01ec012f0000040f0000000201000029000000000101041a000100000001001d0000008801100197000000890110009c0000000001000019000000010100603901ec01470000040f00000001010000290000008a011001970000000202000029000000000012041b0000000001000019000001ed0001042e000000400100043d00000064021000390000008c03000041000000000032043500000044021000390000008d03000041000000000032043500000024021000390000002d0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000400100043d00000064021000390000009003000041000000000032043500000044021000390000009103000041000000000032043500000024021000390000002b0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000000101004b000001320000613d000000000001042d000000400100043d00000064021000390000008c03000041000000000032043500000044021000390000008d03000041000000000032043500000024021000390000002d0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000000101004b0000014a0000613d000000000001042d000000400100043d00000064021000390000009203000041000000000032043500000044021000390000009303000041000000000032043500000024021000390000002e0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee000104300002000000000002000000000201001900000094010000410000008702200197000000ff0320008c000001b80000a13d000000000302041a000000000103004b0000016e0000613d00000088013001970000009402000041000000890110009c00000000010300190000000001026019000001b80000013d000100000003001d000000400400043d000200000004001d00000095010000410000000000140435000000040140003900000000002104350000007c0100004100000000020004140000007c0320009c00000000020180190000007c0340009c00000000010440190000004001100210000000c002200210000000000112019f00000096011001c7000080030200003901ec01e70000040f000000020a000029000000000301001900000060033002700000007c03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001940000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000018c0000413d000000000705004b000001a30000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000001b90000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000970410009c000001df0000213d0000000102200190000001df0000c13d000000400010043f0000001f0130008c000001e50000a13d000000940100004100000000020a0433000000000202004b0000000103000029000001680000613d000000000001042d000000400200043d0000001f0430018f0000000503300272000001c60000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001be0000413d000000000504004b000001d50000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000007c0100004100000001030000310000007c0430009c00000000030180190000007c0420009c000000000102401900000040011002100000006002300210000000000112019f000001ee00010430000000980100004100000000001004350000004101000039000000040010043f0000009601000041000001ee000104300000000001000019000001ee00010430000001ea002104230000000102000039000000000001042d0000000002000019000000000001042d000001ec00000432000001ed0001042e000001ee00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000004f1e1bdf000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000e03fe177000000000000000000000000000000000000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000001806aa18000000000000000000000000000000000000000000000000000000004de2e46880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000001fffe07374656d20636f6e74726163740000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f79657220737908c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000656420636f6e7472616374000000000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e7374727563746f6e20636f6e7374727563746f72000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e747261637420c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705aa9b6b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003feb461a4c407970c4055ef207f89a1b4d8d50098197240a59e39b0630ca7988", + "bytecode": "0x00020000000000020000008004000039000000400040043f0000000003010019000000600330027000000057033001970000000102200190000000200000c13d000000040230008c000000db0000413d000000000201043b000000e002200270000000590520009c000000280000213d0000005d0420009c000000800000613d0000005e0420009c0000009b0000613d0000005f0220009c000000db0000c13d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000101043b000000610210009c000000db0000213d000000000101041a000000b20000013d0000000001000416000000000101004b000000db0000c13d0000002001000039000001000010044300000120000004430000005801000041000001560001042e0000005a0520009c000000b50000613d0000005b0520009c000000d10000613d0000005c0220009c000000db0000c13d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d00000060030000410000000401100370000000000101043b0000006101100197000001000210008c0000007c0000413d0000008004000039000000000501041a000000000205004b000000780000c13d000200000005001d0000006202000041000000800020043f000000840010043f00000057010000410000000002000414000000570320009c0000000002018019000000c00120021000000063011001c70000800302000039015501500000040f000000000301001900000060033002700000005703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000005c0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000000540000413d000000000705004b0000006b0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000000fd0000613d0000001f01400039000000600110018f00000080041001bf000000400040043f000000200130008c000000db0000413d000000800100043d000000000101004b000000600300004100000002050000290000007c0000c13d00000064015001970000006003000041000000650110009c000000000305c0190000000000340435000000400140021000000066011001c7000001560001042e0000000002000416000000000202004b000000db0000c13d000000040230008a000000400220008c000000db0000413d0000000402100370000000000202043b000000610320009c000000db0000213d0000002401100370000000000101043b0000000003000411000080060330008c000000f10000c13d0000006403100198000000ee0000613d0000006a01000041000000800010043f0000002001000039000000840010043f0000002b01000039000000a40010043f0000006e01000041000000c40010043f0000006f01000041000000fa0000013d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000101043b0000006101100197000001000210008c00000000020000190000000102004039000000000101041a000000000301004b00000001022061bf0000006403100197000000650330009c0000000003000019000000010300603900000000023201a0000000db011002700000006901100197000000000100c019000000800010043f0000006801000041000001560001042e0000000002000416000000000202004b000000db0000c13d000000040230008a000000400220008c000000db0000413d0000000402100370000000000302043b000000610230009c000000db0000213d0000002401100370000000000101043b000200000001001d0000000001000411000080060110008c00000000010000190000000101006039000100000003001d015501200000040f00000002010000290000006401100197000000650110009c00000000010000190000000101006039015501380000040f00000002010000290000000102000029000000ee0000013d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000201043b000000610120009c000000dd0000a13d000000000100001900000157000104300000000001000411000080060110008c00000000010000190000000101006039000200000002001d015501200000040f0000000201000029000000000101041a000100000001001d0000006401100197000000650110009c00000000010000190000000101006039015501380000040f000000010100002900000067011001970000000202000029000000000012041b0000000001000019000001560001042e0000006a01000041000000800010043f0000002001000039000000840010043f0000002d01000039000000a40010043f0000006b01000041000000c40010043f0000006c01000041000000e40010043f0000006d010000410000015700010430000000400200043d0000001f0430018f00000005053002720000010a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001020000413d000000000604004b000001190000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000005701000041000000570420009c000000000201801900000040012002100000006002300210000000000121019f0000015700010430000000000101004b000001230000613d000000000001042d000000400100043d00000064021000390000006c03000041000000000032043500000044021000390000006b03000041000000000032043500000024021000390000002d0300003900000000003204350000006a0200004100000000002104350000000402100039000000200300003900000000003204350000005702000041000000570310009c0000000001028019000000400110021000000070011001c70000015700010430000000000101004b0000013b0000613d000000000001042d000000400100043d00000064021000390000007103000041000000000032043500000044021000390000007203000041000000000032043500000024021000390000002e0300003900000000003204350000006a0200004100000000002104350000000402100039000000200300003900000000003204350000005702000041000000570310009c0000000001028019000000400110021000000070011001c7000001570001043000000153002104230000000102000039000000000001042d0000000002000019000000000001042d0000015500000432000001560001042e0000015700010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000004f1e1bdf000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000e03fe177000000000000000000000000000000000000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000001806aa18000000000000000000000000000000000000000000000000000000004de2e468c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470000000000000000000000000ffffffffffffffffffffffffffffffffffffffff5aa9b6b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000080000000000000000000ff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000001fffe008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f7965722073797374656d20636f6e7472616374000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000436f64652068617368206973206e6f7420666f72206120636f6e737472756374656420636f6e747261637400000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000006f6e20636f6e7374727563746f72000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e7472616374200000000000000000000000000000000000000000000000000000000000000000e076a4ac708e0dc88ffc0bc066429197f3c0874d9fb473bdcfd56ced72bf5ceb", + "deployedBytecode": "0x00020000000000020000008004000039000000400040043f0000000003010019000000600330027000000057033001970000000102200190000000200000c13d000000040230008c000000db0000413d000000000201043b000000e002200270000000590520009c000000280000213d0000005d0420009c000000800000613d0000005e0420009c0000009b0000613d0000005f0220009c000000db0000c13d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000101043b000000610210009c000000db0000213d000000000101041a000000b20000013d0000000001000416000000000101004b000000db0000c13d0000002001000039000001000010044300000120000004430000005801000041000001560001042e0000005a0520009c000000b50000613d0000005b0520009c000000d10000613d0000005c0220009c000000db0000c13d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d00000060030000410000000401100370000000000101043b0000006101100197000001000210008c0000007c0000413d0000008004000039000000000501041a000000000205004b000000780000c13d000200000005001d0000006202000041000000800020043f000000840010043f00000057010000410000000002000414000000570320009c0000000002018019000000c00120021000000063011001c70000800302000039015501500000040f000000000301001900000060033002700000005703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000005c0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000000540000413d000000000705004b0000006b0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000000fd0000613d0000001f01400039000000600110018f00000080041001bf000000400040043f000000200130008c000000db0000413d000000800100043d000000000101004b000000600300004100000002050000290000007c0000c13d00000064015001970000006003000041000000650110009c000000000305c0190000000000340435000000400140021000000066011001c7000001560001042e0000000002000416000000000202004b000000db0000c13d000000040230008a000000400220008c000000db0000413d0000000402100370000000000202043b000000610320009c000000db0000213d0000002401100370000000000101043b0000000003000411000080060330008c000000f10000c13d0000006403100198000000ee0000613d0000006a01000041000000800010043f0000002001000039000000840010043f0000002b01000039000000a40010043f0000006e01000041000000c40010043f0000006f01000041000000fa0000013d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000101043b0000006101100197000001000210008c00000000020000190000000102004039000000000101041a000000000301004b00000001022061bf0000006403100197000000650330009c0000000003000019000000010300603900000000023201a0000000db011002700000006901100197000000000100c019000000800010043f0000006801000041000001560001042e0000000002000416000000000202004b000000db0000c13d000000040230008a000000400220008c000000db0000413d0000000402100370000000000302043b000000610230009c000000db0000213d0000002401100370000000000101043b000200000001001d0000000001000411000080060110008c00000000010000190000000101006039000100000003001d015501200000040f00000002010000290000006401100197000000650110009c00000000010000190000000101006039015501380000040f00000002010000290000000102000029000000ee0000013d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000201043b000000610120009c000000dd0000a13d000000000100001900000157000104300000000001000411000080060110008c00000000010000190000000101006039000200000002001d015501200000040f0000000201000029000000000101041a000100000001001d0000006401100197000000650110009c00000000010000190000000101006039015501380000040f000000010100002900000067011001970000000202000029000000000012041b0000000001000019000001560001042e0000006a01000041000000800010043f0000002001000039000000840010043f0000002d01000039000000a40010043f0000006b01000041000000c40010043f0000006c01000041000000e40010043f0000006d010000410000015700010430000000400200043d0000001f0430018f00000005053002720000010a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001020000413d000000000604004b000001190000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000005701000041000000570420009c000000000201801900000040012002100000006002300210000000000121019f0000015700010430000000000101004b000001230000613d000000000001042d000000400100043d00000064021000390000006c03000041000000000032043500000044021000390000006b03000041000000000032043500000024021000390000002d0300003900000000003204350000006a0200004100000000002104350000000402100039000000200300003900000000003204350000005702000041000000570310009c0000000001028019000000400110021000000070011001c70000015700010430000000000101004b0000013b0000613d000000000001042d000000400100043d00000064021000390000007103000041000000000032043500000044021000390000007203000041000000000032043500000024021000390000002e0300003900000000003204350000006a0200004100000000002104350000000402100039000000200300003900000000003204350000005702000041000000570310009c0000000001028019000000400110021000000070011001c7000001570001043000000153002104230000000102000039000000000001042d0000000002000019000000000001042d0000015500000432000001560001042e0000015700010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000004f1e1bdf000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000e03fe177000000000000000000000000000000000000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000001806aa18000000000000000000000000000000000000000000000000000000004de2e468c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470000000000000000000000000ffffffffffffffffffffffffffffffffffffffff5aa9b6b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000080000000000000000000ff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000001fffe008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f7965722073797374656d20636f6e7472616374000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000436f64652068617368206973206e6f7420666f72206120636f6e737472756374656420636f6e747261637400000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000006f6e20636f6e7374727563746f72000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e7472616374200000000000000000000000000000000000000000000000000000000000000000e076a4ac708e0dc88ffc0bc066429197f3c0874d9fb473bdcfd56ced72bf5ceb", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/BootloaderUtilities.json b/src/deps/contracts/BootloaderUtilities.json index 31da8323..f0b189be 100644 --- a/src/deps/contracts/BootloaderUtilities.json +++ b/src/deps/contracts/BootloaderUtilities.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "BootloaderUtilities", - "sourceName": "cache-zk/solpp-generated-contracts/BootloaderUtilities.sol", + "sourceName": "contracts-preprocessed/BootloaderUtilities.sol", "abi": [ { "inputs": [ @@ -110,8 +110,8 @@ "type": "function" } ], - "bytecode": "0x0004000000000002000d00000000000200000000030100190000006003300270000009480430019700030000004103550002000000010355000009480030019d000100000000001f000000800a0000390000004000a0043f0000000101200190000000910000c13d0000000001000031000000040110008c0000083e0000413d0000000201000367000000000101043b0000094a011001970000094b0110009c0000083e0000c13d0000000001000416000000000101004b0000083e0000c13d0000000001000031000000040310008a0000094c02000041000000200430008c000000000400001900000000040240190000094c05300197000000000605004b000000000200a0190000094c0550009c000000000204c019000000000202004b0000083e0000c13d00000002020003670000000404200370000000000904043b0000094d0490009c0000083e0000213d00000000039300490000094c04000041000002600530008c000000000500001900000000050440190000094c03300197000000000603004b000000000400a0190000094c0330009c00000000030500190000000003046019000000000303004b0000083e0000c13d0000000403900039000d00000003001d000000000332034f000000000303043b000000000403004b000000990000c13d000c00000009001d0000010401900039000000000112034f000000000101043b000000800210008c000000d70000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000b090000290000000003390436000000210420003900000005044002720000007d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000750000413d000000000400004b0000007f0000613d0000000004090433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000001bc0000013d0000000001000416000000000101004b0000083e0000c13d00000020010000390000010000100443000001200000044300000949010000410000251d0001042e000000710430008c000000e10000c13d000001c403900039000000000332034f000000230400008a0000000004940049000b00000004001d0000000004140019000000000303043b0000094c05000041000000000643004b000000000600001900000000060580190000094c044001970000094c07300197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000003430019000000000232034f000000000202043b0000094d0420009c0000083e0000213d000000000121004900000020033000390000094c04000041000000000513004b000000000500001900000000050420190000094c011001970000094c06300197000000000716004b0000000004008019000000000116013f0000094c0110009c00000000010500190000000001046019000000000101004b0000083e0000c13d00000000010004140000000004320019000000000224004b0000000002000019000000010200403900000948033001970000000102200190000000d10000c13d0000000002000031000000000542004b0000041b0000813d000009700100004100000000001004350000001101000039000000040010043f00000971010000410000251e00010430000000400200043d000b00000002001d000009530220009c0000013e0000a13d000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000000020130008c000001560000c13d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039000c00000009001d251c25120000040f00000001022001900000083e0000613d000000000201043b000000800120008c0000028d0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000012b0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001230000413d000000000500004b0000012d0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000002aa0000013d0000000b070000290000004002700039000000400020043f0000000102000039000000000227043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000001460000413d0000000003070433000000000303004b000001b30000c13d000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000010130008c0000020d0000c13d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039000c00000009001d251c25120000040f00000001022001900000083e0000613d000000000201043b000000800120008c000002fb0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001a00000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001980000413d000000000500004b000001a20000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000003180000013d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f00000000001204350000000c01000029000000a4011000390000000201100367000000000201043b000000800120008c0000021f0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001fa0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001f20000413d000000000500004b000001fc0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000023c0000013d000000400100043d00000044021000390000094e0300004100000000003204350000002402100039000000170300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000002290000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000064022000390000000202200367000000000302043b000000800230008c000003690000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f00000002054000390000000005520436000000210640003900000005066002720000027a0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002720000413d000000000600004b0000027c0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000003860000013d000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000002970000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000302043b000000800230008c000004320000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000002e80000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002e00000413d000000000600004b000002ea0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c0000000003002019000000210420003900000000003404350000044f0000013d000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000003050000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000202043b000000800320008c0000068b0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000003560000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000034e0000413d000000000600004b000003580000613d0000000006030433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000006a80000013d000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000003730000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000504004b000003940000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b0000038d0000413d000000000134001900000000000104350000000003020433000000000403004b000003a10000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000039a0000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000094d0220009c000000db0000213d0000000101100190000000db0000c13d0000000901000029000000400010043f000009530110009c000000db0000213d0000000c0400002900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009570300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000007f00000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000704000029000000000334043600000021042000390000000504400272000004060000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000003fe0000413d000000000400004b000004080000613d00000007040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000008100000013d000a0000000a001d000c00000009001d00000002033003670000095d0510009c000004a00000413d000000400100043d00000044021000390000096f0300004100000000003204350000002402100039000000080300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a0000043c0000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f00000000003404350000000c03000029000000c4033000390000000203300367000000000303043b000000800430008c000007140000413d0000008004300270000009550530009c000000000403a019000009550530009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000000db0000213d0000000107700190000000db0000c13d000000400060043f00000002065000390000000006640436000000210750003900000005077002720000048d0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004850000413d000000000700004b0000048f0000613d0000000007040433000000000707004b000001500000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c000000000300201900000021054000390000000000350435000007310000013d0000000002420049000009480220019700000000022303df000000c0011002100000095e011001970000095f011001c700000000011203af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d000009480330019700030000000103550000000102200190000006f90000613d0000003f013000390000096001100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f00000000013204360000001f043000390000000504400272000004cb0000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004c30000413d000000000400004b000004cd0000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f0000000503300272000004dd0000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000004d50000413d000000000604004b000004ec0000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000e570000c13d00000000040000310000000b0200002900000000052400190000000c0200002900000204032000390000000202000367000000000332034f000000000303043b0000094c06000041000000000753004b000000000700001900000000070680190000094c055001970000094c08300197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000001010433000900000001001d0000000d010000290000000001130019000000000312034f000000000503043b0000094d0350009c0000083e0000213d0000000503500210000000000434004900000020061000390000094c01000041000000000746004b000000000700001900000000070120190000094c044001970000094c08600197000000000948004b0000000001008019000000000448013f0000094c0440009c000000000107c019000000000101004b0000083e0000c13d000000400100043d000000200410003900000961055001980000052b0000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000005230000413d000000000200004b0000052d0000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b000000000300001900000001030040390000094d0520009c000000db0000213d0000000103300190000000db0000c13d000000400020043f0000094802000041000009480340009c0000000003020019000000000304401900000040033002100000000001010433000009480410009c00000000010280190000006001100210000000000131019f0000000003000414000009480430009c0000000002034019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c030000290000083e0000613d00000000020000310000000b04000029000000000542001900000224043000390000000203000367000000000443034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000101043b000b00000001001d000000000105004b0000083e0000c13d0000000d010000290000000004140019000000000143034f000000000101043b0000094d0310009c0000083e0000213d000000000212004900000020034000390000094c04000041000000000523004b000000000500001900000000050420190000094c022001970000094c06300197000000000726004b0000000004008019000000000226013f0000094c0220009c00000000020500190000000002046019000000000202004b0000083e0000c13d0000000002000414000000000131001a0000094804300197000000d10000413d0000000003000031000000000513004b000000d10000413d0000000204400367000009480520009c000004200000213d0000000001130049000009480110019700000000011403df000000c0022002100000095e022001970000095f022001c700000000012103af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d00000948033001970003000000010355000000010220019000000ff30000613d0000003f013000390000096001100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f00000000013204360000001f043000390000000504400272000005b10000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000005a90000413d000000000400004b000005b30000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f0000000503300272000005c30000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000005bb0000413d000000000604004b000005d20000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000e570000c13d0000000c0b0000290000006402b000390000000203000367000000000523034f0000004402b00039000000000423034f0000002402b00039000000000623034f0000008402b00039000000a407b00039000000c408b00039000000e409b00039000001040ab00039000001240bb00039000000000bb3034f000000000aa3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000d02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000a0a043b000000000b0b043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c1000390000000b0d0000290000000000dc0435000001800c100039000000090d0000290000000000dc0435000001600c1000390000000000bc0435000001400b1000390000000000ab0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000962030000410000000000320435000001c0030000390000000000310435000009630310009c000000db0000213d000001e003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000900000001001d000000400100043d000b00000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f0000000a0400002900000001022001900000083e0000613d0000000b050000290000002002500039000000000101043b00000964030000410000000000320435000000800350003900000000001304350000006001500039000009650300004100000000003104350000004001500039000009660300004100000000003104350000000000450435000009670150009c000000db0000213d0000000b04000029000000a001400039000000400010043f0000094801000041000009480320009c000000000201801900000040022002100000000003040433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000301043b000000400100043d0000004202100039000000090400002900000000004204350000002002100039000009680400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000009690310009c000000db0000213d0000008003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000400300043d000009530430009c000000db0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006950000413d0000000005030433000000000505004b000001500000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000c02000029000000a4022000390000000202200367000000000202043b000000800420008c000007820000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000000db0000213d0000000107700190000000db0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000006e60000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006de0000413d000000000700004b000006e80000613d0000000007040433000000000707004b000001500000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000000002504350000079f0000013d0000001f0430018f0000000502300272000007040000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000006fd0000413d000000000504004b000007120000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000400400043d000009530540009c000000db0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000071e0000413d0000000006040433000000000606004b000001500000613d000000f8063002100000094c07000041000000000303004b0000000003060019000000000307601900000000060504330000095406600197000000000336019f00000000003504350000000c03000029000000a4033000390000000203300367000000000303043b000000800530008c000008400000413d0000008005300270000009550630009c000000000503a019000009550630009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000000db0000213d0000000108800190000000db0000c13d000000400070043f00000002076000390000000007750436000000210860003900000005088002720000076f0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007670000413d000000000800004b000007710000613d0000000008050433000000000808004b000001500000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c0000000003002019000000210650003900000000003604350000085d0000013d000000400400043d000009530540009c000000db0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000078c0000413d0000000006040433000000000606004b000001500000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f00000000002504350000000c0200002900000064022000390000000202200367000000000202043b000000800520008c000008ae0000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000000db0000213d0000000108800190000000db0000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000007dd0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007d50000413d000000000800004b000007df0000613d0000000008050433000000000808004b000001500000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000008cb0000013d000000400200043d000700000002001d000009530220009c000000db0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000007fc0000413d00000007030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000230100008a0000000c020000290000000004210049000001c4012000390000000202000367000600000001001d000000000112034f000000000101043b0000000003000031000500000004001d00000000044300190000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000094d0510009c0000083e0000213d000000000513004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b000009aa0000613d00000000010000190000251e00010430000000400500043d000009530650009c000000db0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a0000084a0000413d0000000007050433000000000707004b000001500000613d000000f8073002100000094c08000041000000000303004b0000000003070019000000000308601900000000070604330000095407700197000000000337019f00000000003604350000000c0300002900000064033000390000000203300367000000000303043b000000800630008c0000092c0000413d0000008006300270000009550730009c000000000603a019000009550730009c0000000007000019000000100700203900000008087001bf0000094d0960009c000000000708201900000040086002700000094d0960009c000000000608201900000004087001bf000009480960009c00000000070820190000002008600270000009480960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000094d0a80009c000000db0000213d0000000109900190000000db0000c13d000000400080043f00000002087000390000000008860436000000210970003900000005099002720000089b0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000008930000413d000000000900004b0000089d0000613d0000000009060433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f000009560990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c000000000300201900000021076000390000000000370435000009490000013d000000400500043d000009530650009c000000db0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000008b80000413d0000000007050433000000000707004b000001500000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000400600043d000009530260009c000000db0000213d0000000c0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009570800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c000009cb0000413d0000008007200270000009550820009c000000000702a019000009550820009c0000000008000019000000100800203900000008098001bf0000094d0a70009c000000000809201900000040097002700000094d0a70009c000000000709201900000004098001bf000009480a70009c00000000080920190000002009700270000009480a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000094d0b90009c000000db0000213d000000010aa00190000000db0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa00272000009190000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000009110000413d000000000a00004b0000091b0000613d000000000a070433000000000a0a004b000001500000613d000000000a090433000009540aa00197000000f80b800210000000000aab019f000009560aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c000000000200201900000021087000390000000000280435000009e80000013d000000400600043d000009530760009c000000db0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000009360000413d0000000008060433000000000808004b000001500000613d000000f8083002100000094c09000041000000000303004b0000000003080019000000000309601900000000080704330000095408800197000000000338019f0000000000370435000000400700043d000009530370009c000000db0000213d0000000c0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f000000200870003900000957090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000ac60000413d0000008008300270000009550930009c000000000803a019000009550930009c00000000090000190000001009002039000000080a9001bf0000094d0b80009c00000000090a2019000000400a8002700000094d0b80009c00000000080a2019000000040a9001bf000009480b80009c00000000090a2019000000200a800270000009480b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000094d0ca0009c000000db0000213d000000010bb00190000000db0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000009970000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b0000098f0000413d000000000b00004b000009990000613d000000000b080433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c900210000000000bbc019f000009560bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000ae30000013d000000010410008c00000a900000c13d000000000132034f000000000101043b000000010200008a0000094c03000041000000000221004b000000000200001900000000020320190000094c011001970000094c0410009c00000000030080190000094c011001670000094c0110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b00000bb50000c13d000000400100043d000400000001001d000009530110009c000000db0000213d00000004030000290000004001300039000000400010043f0000002001300039000009560200004100000000002104350000000101000039000000000013043500000bb50000013d000000400700043d000009530870009c000000db0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000009d50000413d0000000009070433000000000909004b000001500000613d000000f8092002100000094c0a000041000000000202004b000000000209001900000000020a601900000000090804330000095409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a09004b000009f50000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b000009ee0000413d000000000189001900000000000104350000000008030433000000000908004b00000a020000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b000009fb0000413d000000000118001900000000000104350000000003040433000000000803004b00000a0f0000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00000a080000413d000000000113001900000000000104350000000003050433000000000403004b00000a1c0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00000a150000413d000000000113001900000000000104350000000003060433000000000403004b00000a290000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00000a220000413d000000000113001900000000000104350000000003070433000000000403004b00000a360000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00000a2f0000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f03100039000000200100008a000000000313016f0000000005230019000000000335004b000000000300001900000001030040390000094d0450009c000000db0000213d0000000103300190000000db0000c13d000000400050043f000000230300008a0000000c060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b000000000800003100000000094800190000094c0a000041000000000b96004b000000000b000019000000000b0a80190000094c099001970000094c0c600197000000000d9c004b000000000a00801900000000099c013f0000094c0990009c00000000090b001900000000090a6019000000000909004b0000083e0000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000094d0a60009c0000083e0000213d000000000a68004900000020089000390000094c09000041000000000ba8004b000000000b000019000000000b0920190000094c0aa001970000094c0c800197000000000dac004b0000000009008019000000000aac013f0000094c0aa0009c00000000090bc019000000000909004b0000083e0000c13d000000010960008c00000e690000c13d000000000687034f000000000606043b000000010700008a0000094c08000041000000000776004b000000000700001900000000070820190000094c066001970000094c0960009c00000000080080190000094c066001670000094c0660009c00000000070860190000006006000039000000000707004b00000ee70000c13d000009530650009c000000db0000213d0000004006500039000000400060043f00000020065000390000095607000041000000000076043500000001060000390000000000650435000000000605001900000ee70000013d000000380210008c00000b980000413d0000002002100270000009480310009c00000000030100190000000003022019000009480210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000009530440009c000000db0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000aae0000413d00000004040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f00000958044001c700000000004304350000000302200210000000f80220008900000000012101cf00000004020000290000002102200039000000000012043500000bb50000013d000000400800043d000009530980009c000000db0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000ad00000413d000000000a080433000000000a0a004b000001500000613d000000f80a3002100000094c0b000041000000000303004b00000000030a001900000000030b6019000000000a090433000009540aa0019700000000033a019f0000000000390435000000400300043d0000002009300039000000000a010433000000000b0a004b00000af00000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b00000ae90000413d00000000019a001900000000000104350000000009020433000000000a09004b00000afd0000613d000000000a000019000000000b1a0019000000200aa00039000000000c2a0019000000000c0c04330000000000cb0435000000000b9a004b00000af60000413d000000000119001900000000000104350000000002040433000000000902004b00000b0a0000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a29004b00000b030000413d000000000112001900000000000104350000000002050433000000000402004b00000b170000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000924004b00000b100000413d000000000112001900000000000104350000000002060433000000000402004b00000b240000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000524004b00000b1d0000413d000000000112001900000000000104350000000002070433000000000402004b00000b310000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000524004b00000b2a0000413d000000000112001900000000000104350000000002080433000000000402004b00000b3e0000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000524004b00000b370000413d000000000112001900000000000104350000000001310049000000200210008a00000000002304350000001f02100039000000200100008a000000000212016f0000000005320019000000000225004b000000000200001900000001020040390000094d0450009c000000db0000213d0000000102200190000000db0000c13d000000400050043f000000230200008a0000000c060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b000000000800003100000000094800190000094c0a000041000000000b96004b000000000b000019000000000b0a80190000094c099001970000094c0c600197000000000d9c004b000000000a00801900000000099c013f0000094c0990009c00000000090b001900000000090a6019000000000909004b0000083e0000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000094d0a60009c0000083e0000213d000000000a68004900000020089000390000094c09000041000000000ba8004b000000000b000019000000000b0920190000094c0aa001970000094c0c800197000000000dac004b0000000009008019000000000aac013f0000094c0aa0009c00000000090bc019000000000909004b0000083e0000c13d000000010960008c00000e9b0000c13d000000000687034f000000000606043b000000010700008a0000094c08000041000000000776004b000000000700001900000000070820190000094c066001970000094c0960009c00000000080080190000094c066001670000094c0660009c00000000070860190000006006000039000000000707004b00000f7a0000c13d000009530650009c000000db0000213d0000004006500039000000400060043f00000020065000390000095607000041000000000076043500000001060000390000000000650435000000000605001900000f7a0000013d000000400200043d000400000002001d000009530220009c000000db0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000ba40000413d00000004030000290000000003030433000000000303004b000001500000613d000000f80110021000000000030204330000095403300197000000000113019f0000094c01100167000000000012043500000060010000390000000c0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b00000c2a0000c13d0000000603000029000000000432034f000000000300003100000005050000290000000005530019000000000904043b0000094c04000041000000000659004b000000000600001900000000060480190000094c055001970000094c07900197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d0000000b0400002900000000040404330000000a0500002900000000050504330000000906000029000000000606043300000007070000290000000007070433000000040800002900000000080804330000000d0a0000290000000009a90019000000000292034f000000000202043b0000094d0a20009c0000083e0000213d000000000323004900000020099000390000094c0a000041000000000b39004b000000000b000019000000000b0a20190000094c033001970000094c09900197000000000c39004b000000000a008019000000000339013f0000094c0330009c00000000030b001900000000030a6019000000000303004b0000083e0000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000094d02200197000000380320008c00000cc20000413d0000002003200270000009480420009c00000000040200190000000004032019000009480320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009530650009c000000db0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a00000c140000413d0000000006050433000000000606004b000001500000613d00000000060404330000095406600197000000f807300210000000000667019f0000095a066001c700000000006404350000000303300210000000f80330008900000000023201cf0000002103500039000000000023043500000cdc0000013d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f00000001022001900000083e0000613d000000000101043b000000800210008c00000c840000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000804000029000000000442016f000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f000000020430003900000000044204360000002105300039000000050550027200000c710000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000c690000413d000000000500004b00000c730000613d0000000005020433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c00000000010020190000002103200039000000000013043500000ca10000013d000000400200043d000009530320009c000000db0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000c8e0000413d0000000004020433000000000404004b000001500000613d000000f8041002100000094c05000041000000000101004b0000000001040019000000000105601900000000040304330000095404400197000000000114019f0000000000130435000000400100043d00000020031000390000000004020433000000000504004b00000cae0000613d000000000500001900000000063500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00000ca70000413d00000000023400190000096a03000041000000000032043500000000021200490000001e0320008a000000000031043500000021022000390000000803000029000000000332016f0000000002130019000000000332004b000000000300001900000001030040390000094d0420009c000000db0000213d0000000103300190000000db0000c13d000000400020043f000000020200036700000bbd0000013d000000400500043d000009530350009c000000db0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a00000ccc0000413d0000000004050433000000000404004b000001500000613d000000f80220021000000000040304330000095404400197000000000242019f0000095902200041000000000023043500000000020000310000000503000029000000000632001900000002030003670000000604000029000000000443034f000000000404043b0000094c07000041000000000864004b000000000800001900000000080780190000094c066001970000094c09400197000000000a69004b0000000007008019000000000669013f0000094c0660009c00000000060800190000000006076019000000000606004b0000083e0000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000094d0340009c0000083e0000213d000000000242004900000020066000390000094c03000041000000000726004b000000000700001900000000070320190000094c022001970000094c08600197000000000928004b0000000003008019000000000228013f0000094c0220009c00000000020700190000000002036019000000000202004b0000083e0000c13d000000400200043d00000020032000390000000007050433000000000807004b00000d140000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b00000d0d0000413d000000000537001900000000000504350000000b0b00002900000000070b0433000000000807004b00000d220000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d1b0000413d000000000557001900000000000504350000000a0b00002900000000070b0433000000000807004b00000d300000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d290000413d00000000055700190000000000050435000000090b00002900000000070b0433000000000807004b00000d3e0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d370000413d00000000055700190000000000050435000000070b00002900000000070b0433000000000807004b00000d4c0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d450000413d00000000055700190000000000050435000000040b00002900000000070b0433000000000807004b00000d5a0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d530000413d00000000055700190000001f0740018f00000000000504350000000206600367000000050840027200000d690000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000d610000413d000000000907004b00000d780000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000605004b00000d850000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b00000d7e0000413d000000000145001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f0000094801000041000009480430009c000000000301801900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b0000290000083e0000613d00000002020003670000000d03000029000000000332034f000000000101043b000c00000001001d000000000103043b000000710310008c0000100e0000c13d000001e401b00039000000000312034f00000000010000310000000004b10049000000230440008a000000000303043b0000094c05000041000000000643004b000000000600001900000000060580190000094c044001970000094c07300197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000003430019000000000232034f000000000202043b0000094d0420009c0000083e0000213d000000000121004900000020033000390000094c04000041000000000513004b000000000500001900000000050420190000094c011001970000094c06300197000000000716004b0000000004008019000000000116013f0000094c0110009c00000000010500190000000001046019000000000101004b0000083e0000c13d0000000001000414000000000232001a0000094804300197000000d10000413d0000000003000031000000000523004b000000d10000413d0000000204400367000009480510009c000004200000213d0000000002230049000009480220019700000000022403df000000c0011002100000095e011001970000095f011001c700000000011203af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d000009480330019700030000000103550000000102200190000013900000613d0000003f013000390000096002100197000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000094d0520009c000000db0000213d0000000104400190000000db0000c13d000000400020043f00000000023104360000001f04300039000000050440027200000e110000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000e090000413d000000000400004b00000e130000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f000000050330027200000e230000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000e1b0000413d000000000604004b00000e320000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000e570000c13d0000000002020433000000400100043d0000004003100039000000000023043500000020021000390000000c030000290000000000320435000000400300003900000000003104350000096d0310009c000000db0000213d0000006003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000012550000013d000000400100043d00000044021000390000096c03000041000000000032043500000024021000390000001f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000380760008c00000ecd0000413d0000002007600270000009480860009c00000000080600190000000008072019000009480760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009530950009c000000db0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e840000413d0000000009050433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f00000958099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000ee70000013d000000380760008c00000f600000413d0000002007600270000009480860009c00000000080600190000000008072019000009480760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009530950009c000000db0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000eb60000413d0000000009050433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f00000958099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000f7a0000013d000009530750009c000000db0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000ed60000413d0000000008050433000000000808004b000001500000613d000000f80660021000000000080704330000095408800197000000000668019f0000094c0660016700000000006704350000000006050019000000400500043d000009530750009c000000db0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000ef10000413d0000000009050433000000000909004b000001500000613d0000000009070433000009540990019700000959099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b0000094c0a000041000000000d9c004b000000000d000019000000000d0a80190000094c099001970000094c0ec00197000000000f9e004b000000000a00801900000000099e013f0000094c0990009c00000000090d001900000000090a6019000000000909004b0000083e0000c13d0000000009020433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000094d0db0009c0000083e0000213d0000000007b70049000000200cc000390000094c0d000041000000000e7c004b000000000e000019000000000e0d20190000094c077001970000094c0cc00197000000000f7c004b000000000d00801900000000077c013f0000094c0770009c00000000070e001900000000070d6019000000000707004b0000083e0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000094d09700197000000380790008c000010640000413d0000002007900270000009480890009c000000000709a019000009480890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009530b70009c000000db0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a00000f4a0000413d000000000b070433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c800210000000000bbc019f0000095a0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000107d0000013d000009530750009c000000db0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000f690000413d0000000008050433000000000808004b000001500000613d000000f80660021000000000080704330000095408800197000000000668019f0000094c0660016700000000006704350000000006050019000000400500043d000009530750009c000000db0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000f840000413d0000000009050433000000000909004b000001500000613d0000000009070433000009540990019700000959099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b0000094c0a000041000000000d9c004b000000000d000019000000000d0a80190000094c099001970000094c0ec00197000000000f9e004b000000000a00801900000000099e013f0000094c0990009c00000000090d001900000000090a6019000000000909004b0000083e0000c13d0000000009030433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000094d0db0009c0000083e0000213d0000000007b70049000000200cc000390000094c0d000041000000000e7c004b000000000e000019000000000e0d20190000094c077001970000094c0cc00197000000000f7c004b000000000d00801900000000077c013f0000094c0770009c00000000070e001900000000070d6019000000000707004b0000083e0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000094d09700197000000380790008c000011250000413d0000002007900270000009480890009c000000000709a019000009480890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009530b70009c000000db0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a00000fdd0000413d000000000b070433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c800210000000000bbc019f0000095a0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000113e0000013d0000001f0430018f000000050230027200000ffe0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ff70000413d000000000504004b0000100c0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000000301004b000011200000c13d0000010401b00039000000000112034f000000000101043b000000800210008c000011e10000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000b040000290000000003340436000000210420003900000005044002720000104f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000010470000413d000000000400004b000010510000613d0000000b040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000012010000013d000000400700043d000009530a70009c000000db0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000106d0000413d000000000a070433000000000a0a004b000001500000613d000000f809900210000000000a080433000009540aa001970000000009a9019f00000959099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b0000094c0a000041000000000b83004b000000000b000019000000000b0a80190000094c088001970000094c0c300197000000000d8c004b000000000a00801900000000088c013f0000094c0880009c00000000080b001900000000080a6019000000000808004b0000083e0000c13d0000000d080000290000000003830019000000000434034f000000000804043b0000094d0480009c0000083e0000213d000000000489004900000020093000390000094c03000041000000000a49004b000000000a000019000000000a0320190000094c044001970000094c0b900197000000000c4b004b000000000300801900000000044b013f0000094c0440009c00000000030ac019000000000303004b0000083e0000c13d000000400300043d00000020043000390000095b0a0000410000000000a40435000000210a300039000000000b070433000000000c0b004b000010b50000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b000010ae0000413d0000000007ab00190000000000070435000000000a020433000000000b0a004b000010c20000613d000000000b000019000000000c7b0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000cab004b000010bb0000413d00000000027a001900000000000204350000000007060433000000000a07004b000010cf0000613d000000000a000019000000000b2a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000010c80000413d00000000022700190000001f0680018f000000000002043500000002079003670000000509800272000010de0000613d000000000a000019000000050ba00210000000000cb20019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000010d60000413d000000000a06004b000010ed0000613d0000000509900210000000000797034f00000000099200190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000282001900000000000204350000000006050433000000000706004b000010fa0000613d000000000700001900000000082700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000010f30000413d000000000226001900000000000204350000000002320049000000200520008a00000000005304350000001f02200039000000000212016f0000000001320019000000000221004b000000000200001900000001020040390000094d0510009c000000db0000213d0000000102200190000000db0000c13d000000400010043f0000094801000041000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000020210008c000012510000c13d0000000d01000029251c1e500000040f000012550000013d000000400700043d000009530a70009c000000db0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000112e0000413d000000000a070433000000000a0a004b000001500000613d000000f809900210000000000a080433000009540aa001970000000009a9019f00000959099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b0000094c0a000041000000000b82004b000000000b000019000000000b0a80190000094c088001970000094c0c200197000000000d8c004b000000000a00801900000000088c013f0000094c0880009c00000000080b001900000000080a6019000000000808004b0000083e0000c13d0000000d080000290000000002820019000000000424034f000000000804043b0000094d0480009c0000083e0000213d000000000489004900000020092000390000094c02000041000000000a49004b000000000a000019000000000a0220190000094c044001970000094c0b900197000000000c4b004b000000000200801900000000044b013f0000094c0440009c00000000020ac019000000000202004b0000083e0000c13d000000400200043d00000020042000390000095c0a0000410000000000a40435000000210a200039000000000b070433000000000c0b004b000011760000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b0000116f0000413d0000000007ab00190000000000070435000000000a030433000000000b0a004b000011830000613d000000000b000019000000000c7b0019000000200bb00039000000000d3b0019000000000d0d04330000000000dc0435000000000cab004b0000117c0000413d00000000037a001900000000000304350000000007060433000000000a07004b000011900000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000011890000413d00000000033700190000001f0680018f0000000000030435000000020790036700000005098002720000119f0000613d000000000a000019000000050ba00210000000000cb30019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000011970000413d000000000a06004b000011ae0000613d0000000509900210000000000797034f00000000099300190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000383001900000000000304350000000006050433000000000706004b000011bb0000613d000000000700001900000000083700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000011b40000413d000000000336001900000000000304350000000003230049000000200530008a00000000005204350000001f03300039000000000313016f0000000001230019000000000331004b000000000300001900000001030040390000094d0510009c000000db0000213d0000000103300190000000db0000c13d000000400010043f0000094801000041000009480340009c0000000003010019000000000304401900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000400200043d000b00000002001d000009530220009c000000db0000213d0000000b030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000011ed0000413d0000000b030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000a401b000390000000201100367000000000201043b000000800120008c000012710000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000123e0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000012360000413d000000000500004b000012400000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000128e0000013d000000010110008c000012600000c13d0000000d01000029251c18090000040f000000400200043d00000020032000390000000c04000029000000000043043500000000001204350000094801000041000009480320009c000000000102401900000040011002100000096e011001c70000251d0001042e000000400200043d000d00000002001d0000094f0100004100000000001204350000000401200039251c17ff0000040f0000000d0400002900000000014100490000094802000041000009480310009c0000000001028019000009480340009c000000000204401900000040022002100000006001100210000000000121019f0000251e00010430000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000127b0000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000006402b000390000000202200367000000000302043b000000800230008c000012de0000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000012cb0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000012c30000413d000000000600004b000012cd0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000012fb0000013d000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000012e80000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000504004b000013090000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b000013020000413d000000000134001900000000000104350000000003020433000000000403004b000013160000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000130f0000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000094d0220009c000000db0000213d0000000101100190000000db0000c13d0000000901000029000000400010043f000009530110009c000000db0000213d00000000040b001900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009570300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000013ab0000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f000000020320003900000007040000290000000003340436000000210420003900000005044002720000137b0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000013730000413d000000000400004b0000137d0000613d00000007040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000013cb0000013d0000001f0430018f00000005023002720000139b0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013940000413d000000000504004b000013a90000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000400200043d000700000002001d000009530220009c000000db0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000013b70000413d00000007030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000230100008a00000000020b00190000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000300000004001d00000000044300190000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000094d0510009c0000083e0000213d000000000513004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d000000010410008c0000141a0000c13d000000000132034f000000000101043b000000010200008a0000094c03000041000000000221004b000000000200001900000000020320190000094c011001970000094c0410009c00000000030080190000094c011001670000094c0110009c000000000102001900000000010360190000006002000039000600000002001d000000000101004b0000146d0000c13d000000400100043d000600000001001d000009530110009c000000db0000213d00000006030000290000004001300039000000400010043f000000200130003900000956020000410000000000210435000000010100003900000000001304350000146d0000013d000000380210008c000014500000413d0000002002100270000009480310009c00000000030100190000000003022019000009480210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000600000004001d000009530440009c000000db0000213d000000000232019f00000006040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000014380000413d00000006040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f00000958044001c700000000004304350000000302200210000000f80220008900000000012101cf0000000602000029000000210220003900000000001204350000146d0000013d000000400200043d000600000002001d000009530220009c000000db0000213d00000006030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000145c0000413d00000006030000290000000003030433000000000303004b000001500000613d000000f80110021000000000030204330000095403300197000000000113019f0000094c01100167000000000012043500000000030000310000000301000029000000000513001900000000010b0019000001e4011000390000000202000367000000000412034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000094d0650009c0000083e0000213d000000200650008c0000083e0000413d000000000553004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d000000000232034f000000000202043b000000800320008c000014ed0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000500000005001d000000000554004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000505000029000000000445043600000021053000390000000505500272000014d80000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000014d00000413d000000000500004b000014da0000613d00000005050000290000000005050433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000000503000029000000210330003900000000002304350000150d0000013d000000400300043d000500000003001d000009530330009c000000db0000213d00000005040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000014f90000413d00000005040000290000000004040433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000003000031000000030200002900000000052300190000000202000367000000000412034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000094d0650009c0000083e0000213d000000400650008c0000083e0000413d000000000353004900000020054000390000094c06000041000000000735004b000000000700001900000000070620190000094c033001970000094c05500197000000000835004b0000000006008019000000000335013f0000094c0330009c00000000030700190000000003066019000000000303004b0000083e0000c13d0000004003400039000000000232034f000000000202043b000000800320008c0000158d0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000405000029000000000445043600000021053000390000000505500272000015780000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000015700000413d000000000500004b0000157a0000613d00000004050000290000000005050433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000040300002900000021033000390000000000230435000015ad0000013d000000400300043d000400000003001d000009530330009c000000db0000213d00000004040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000015990000413d00000004040000290000000004040433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000003000031000000030200002900000000042300190000000202000367000000000112034f000000000101043b0000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000001410019000000000412034f000000000404043b0000094d0540009c0000083e0000213d000000000343004900000020051000390000094c06000041000000000735004b000000000700001900000000070620190000094c033001970000094c05500197000000000835004b0000000006008019000000000335013f0000094c0330009c00000000030700190000000003066019000000000303004b0000083e0000c13d000000410340008c000001500000413d0000006001100039000000000112034f000000000101043b000000f801100270000100000001001d0000001b0110008a000000020110008c0000164f0000813d0000014401b00039000000000112034f000000000101043b000000000101004b000016610000613d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f00000001022001900000083e0000613d000000000201043b0000000101200210000000000302004b000015fc0000613d000000090300008a000000000331004b000000d10000213d00000000322100d9000000020220008c000000d10000c13d000000010300002900000000011300190000000802100039000000000132004b000000d10000413d000000800120008c000100000002001d000016610000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c00000000010000190000000101002039000000000313001900000041013000390000000804000029000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000163c0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000016340000413d000000000500004b0000163e0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000167e0000013d000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400100043d000009530210009c000000db0000213d0000004002100039000000400020043f0000000102000039000000000221043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000166b0000413d0000000003010433000000000303004b000001500000613d0000000105000029000000f8035002100000094c04000041000000000505004b000000000304601900000000040204330000095404400197000000000334019f000000000032043500000000020000310000000303000029000000000332001900000002080003670000000204000029000000000448034f000000000904043b0000094c04000041000000000539004b000000000500001900000000050480190000094c033001970000094c06900197000000000736004b0000000004008019000000000336013f0000094c0330009c00000000030500190000000003046019000000000303004b0000083e0000c13d0000000b0300002900000000030304330000000a0400002900000000040404330000000905000029000000000505043300000007060000290000000006060433000000060700002900000000070704330000000d0a0000290000000009a90019000000000898034f000000000808043b0000094d0a80009c0000083e0000213d000000000282004900000020099000390000094c0a000041000000000b29004b000000000b000019000000000b0a20190000094c022001970000094c09900197000000000c29004b000000000a008019000000000229013f0000094c0220009c00000000020b001900000000020a6019000000000202004b0000083e0000c13d00000000023400190000000002520019000000000262001900000000027200190000000002820019000000050300002900000000030304330000000002320019000000040300002900000000030304330000000002320019000000000301043300000000023200190000094d02200197000000380320008c000016f30000413d0000002003200270000009480420009c00000000040200190000000004032019000009480320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009530650009c000000db0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a000016dd0000413d0000000006050433000000000606004b000001500000613d00000000060404330000095406600197000000f807300210000000000667019f0000095a066001c700000000006404350000000303300210000000f80330008900000000023201cf000000210350003900000000002304350000170d0000013d000000400500043d000009530350009c000000db0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a000016fd0000413d0000000004050433000000000404004b000001500000613d000000f80220021000000000040304330000095404400197000000000242019f0000095902200041000000000023043500000000020000310000000303000029000000000632001900000002030003670000000204000029000000000443034f000000000404043b0000094c07000041000000000864004b000000000800001900000000080780190000094c066001970000094c09400197000000000a69004b0000000007008019000000000669013f0000094c0660009c00000000060800190000000006076019000000000606004b0000083e0000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000094d0340009c0000083e0000213d000000000242004900000020066000390000094c03000041000000000726004b000000000700001900000000070320190000094c022001970000094c08600197000000000928004b0000000003008019000000000228013f0000094c0220009c00000000020700190000000002036019000000000202004b0000083e0000c13d000000400200043d00000020032000390000000007050433000000000807004b000017450000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b0000173e0000413d000000000537001900000000000504350000000b070000290000000007070433000000000807004b000017540000613d0000000008000019000000000958001900000020088000390000000b0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000174c0000413d000000000557001900000000000504350000000a070000290000000007070433000000000807004b000017630000613d0000000008000019000000000958001900000020088000390000000a0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000175b0000413d0000000005570019000000000005043500000009070000290000000007070433000000000807004b000017720000613d000000000800001900000000095800190000002008800039000000090a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000176a0000413d0000000005570019000000000005043500000007070000290000000007070433000000000807004b000017810000613d000000000800001900000000095800190000002008800039000000070a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000017790000413d0000000005570019000000000005043500000006070000290000000007070433000000000807004b000017900000613d000000000800001900000000095800190000002008800039000000060a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000017880000413d00000000055700190000001f0740018f0000000000050435000000020660036700000005084002720000179f0000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000017970000413d000000000907004b000017ae0000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000605004b000017bb0000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b000017b40000413d0000000001450019000000000001043500000005040000290000000004040433000000000504004b000017ca0000613d0000000005000019000000000615001900000020055000390000000507000029000000000775001900000000070704330000000000760435000000000645004b000017c20000413d0000000001140019000000000001043500000004040000290000000004040433000000000504004b000017d90000613d0000000005000019000000000615001900000020055000390000000407000029000000000775001900000000070704330000000000760435000000000645004b000017d10000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f0000094801000041000009480430009c000000000301801900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000012550000013d000000400210003900000972030000410000000000320435000000200210003900000013030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0006000000000002000400000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f000000010220019000001e300000613d000000000201043b000000800120008c000018650000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c00001e320000213d000000010550019000001e320000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000018520000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000184a0000413d000000000500004b000018540000613d0000000005010433000000000505004b00001e380000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000018820000013d000000400100043d000009530310009c00001e320000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000186f0000413d0000000004010433000000000404004b00001e380000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c000018d30000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c00001e320000213d000000010660019000001e320000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000018c00000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000018b80000413d000000000600004b000018c20000613d0000000006030433000000000606004b00001e380000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000018f00000013d000000400300043d000009530430009c00001e320000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000018dd0000413d0000000005030433000000000505004b00001e380000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000402000029000000a0022000390000000202200367000000000202043b000000800420008c000019410000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c00001e320000213d000000010770019000001e320000c13d000000400060043f00000002065000390000000006640436000000210750003900000005077002720000192e0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000019260000413d000000000700004b000019300000613d0000000007040433000000000707004b00001e380000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000000002504350000195e0000013d000000400400043d000009530540009c00001e320000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000194b0000413d0000000006040433000000000606004b00001e380000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f0000000000250435000000040200002900000060022000390000000202200367000000000202043b000000800520008c000019af0000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c00001e320000213d000000010880019000001e320000c13d000000400070043f00000002076000390000000007750436000000210860003900000005088002720000199c0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000019940000413d000000000800004b0000199e0000613d0000000008050433000000000808004b00001e380000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000019cc0000013d000000400500043d000009530650009c00001e320000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000019b90000413d0000000007050433000000000707004b00001e380000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000400600043d000009530260009c00001e320000213d000000040900002900000040029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009570800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000120029000390000000202200367000000000202043b000000800720008c00001a2d0000413d0000008007200270000009550820009c000000000702a019000009550820009c0000000008000019000000100800203900000008098001bf0000094d0a70009c000000000809201900000040097002700000094d0a70009c000000000709201900000004098001bf000009480a70009c00000000080920190000002009700270000009480a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000094d0b90009c00001e320000213d000000010aa0019000001e320000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200001a1a0000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00001a120000413d000000000a00004b00001a1c0000613d000000000a070433000000000a0a004b00001e380000613d000000000a090433000009540aa00197000000f80b800210000000000aab019f000009560aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500001a4a0000013d000000400700043d000009530870009c00001e320000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00001a370000413d0000000009070433000000000909004b00001e380000613d000000f8092002100000094c0a000041000000000202004b000000000209001900000000020a601900000000090804330000095409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a09004b00001a570000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b00001a500000413d000000000189001900000000000104350000000008030433000000000908004b00001a640000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b00001a5d0000413d000000000118001900000000000104350000000003040433000000000803004b00001a710000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00001a6a0000413d000000000113001900000000000104350000000003050433000000000403004b00001a7e0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00001a770000413d000000000113001900000000000104350000000003060433000000000403004b00001a8b0000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00001a840000413d000000000113001900000000000104350000000003070433000000000403004b00001a980000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00001a910000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000094d0350009c00001e320000213d000000010110019000001e320000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000094c09000041000000000a16004b000000000a000019000000000a0980190000094c011001970000094c0b600197000000000c1b004b000000000900801900000000011b013f0000094c0110009c00000000010a00190000000001096019000000000101004b00001e300000c13d00000004010000290000000001160019000000000617034f000000000606043b0000094d0960009c00001e300000213d000000000968004900000020081000390000094c01000041000000000a98004b000000000a000019000000000a0120190000094c099001970000094c0b800197000000000c9b004b000000000100801900000000099b013f0000094c0990009c00000000010ac019000000000101004b00001e300000c13d000000010160008c00001af50000c13d000000000187034f000000000101043b000000010300008a0000094c06000041000000000331004b000000000300001900000000030620190000094c011001970000094c0710009c00000000060080190000094c011001670000094c0110009c000000000103001900000000010660190000006006000039000000000101004b00001b410000c13d000009530150009c00001e320000213d0000004001500039000000400010043f00000020015000390000095603000041000000000031043500000001010000390000000000150435000000000605001900001b410000013d000000380160008c00001b270000413d0000002001600270000009480360009c00000000030600190000000003012019000009480160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009530350009c00001e320000213d000000000771019f0000004001500039000000400010043f000000020170003900000000081504360000000001000031000000020910036700000000010000190000000503100210000000000a380019000000000339034f000000000303043b00000000003a0435000000010110003a00001b100000413d0000000001050433000000000101004b00001e380000613d00000000010804330000095401100197000000f803700210000000000113019f00000958011001c700000000001804350000000301700210000000f80110008900000000011601cf00000021035000390000000000130435000000000605001900001b410000013d000009530150009c00001e320000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000100001900000005031002100000000009370019000000000338034f000000000303043b0000000000390435000000010110003a00001b300000413d0000000001050433000000000101004b00001e380000613d000000f80160021000000000030704330000095403300197000000000113019f0000094c0110016700000000001704350000000006050019000000400500043d000009530150009c00001e320000213d0000004001500039000000400010043f0000000101000039000300000001001d0000000007150436000000000100003100000002081003670000000001000019000000050a100210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010110003a00001b4c0000413d0000000001050433000000000101004b00001e380000613d0000000001070433000009540110019700000959011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000094c0c000041000000000d1b004b000000000d000019000000000d0c80190000094c011001970000094c0eb00197000000000f1e004b000000000c00801900000000011e013f0000094c0110009c00000000010d001900000000010c6019000000000101004b00001e300000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000094d0cb0009c00001e300000213d000000000cb8004900000020081000390000094c01000041000000000dc8004b000000000d000019000000000d0120190000094c0cc001970000094c0e800197000000000fce004b0000000001008019000000000cce013f0000094c0cc0009c00000000010dc019000000000101004b00001e300000c13d0000002001b0008c00001e300000413d000000000187034f000000000801043b000000800180008c00001bd60000413d0000008001800270000009550780009c000000000108a019000009550780009c00000000070000190000001007002039000000080b7001bf0000094d0c10009c00000000070b2019000000400b1002700000094d0c10009c00000000010b2019000000040b7001bf000009480c10009c00000000070b2019000000200b100270000009480c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000094d0d10009c00001e320000213d000000010cc0019000001e320000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d10027200001bc20000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b00001bba0000413d000000000100004b00001bc40000613d0000000001070433000000000101004b00001e380000613d00000000010c04330000095401100197000000f803b00210000000000113019f000009560110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c000000000103001900000000010020190000002103700039000000000013043500001bf20000013d000000400700043d000009530170009c00001e320000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c10036700000000010000190000000503100210000000000d3b001900000000033c034f000000000303043b00000000003d0435000000010110003a00001be00000413d0000000001070433000000000101004b00001e380000613d000000f8018002100000094c03000041000000000808004b000000000103601900000000030b04330000095403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000094c03000041000000000d1b004b000000000d000019000000000d0380190000094c011001970000094c0eb00197000000000f1e004b000000000300801900000000011e013f0000094c0110009c00000000010d00190000000001036019000000000101004b00001e300000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000094d01d0009c00001e300000213d0000000001dc00490000002003b000390000094c0c000041000000000e13004b000000000e000019000000000e0c20190000094c011001970000094c03300197000000000f13004b000000000c008019000000000113013f0000094c0110009c00000000010e001900000000010c6019000000000101004b00001e300000c13d0000004001d0008c00001e300000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c00001c6e0000413d0000008001b002700000095503b0009c00000000010ba0190000095503b0009c0000000003000019000000100300203900000008083001bf0000094d0c10009c000000000308201900000040081002700000094d0c10009c000000000108201900000004083001bf000009480c10009c00000000030820190000002008100270000009480c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000094d0310009c00001e320000213d0000000103d0019000001e320000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e10027200001c5a0000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b00001c520000413d000000000100004b00001c5c0000613d0000000001080433000000000101004b00001e380000613d00000000010d04330000095401100197000000f803c00210000000000113019f000009560110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c000000000103001900000000010020190000002103800039000000000013043500001c8a0000013d000000400800043d000009530180009c00001e320000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d1003670000000001000019000000050310021000000000093c001900000000033d034f000000000303043b0000000000390435000000010110003a00001c780000413d0000000001080433000000000101004b00001e380000613d000000f801b002100000094c0300004100000000090b004b000000000103601900000000030c04330000095403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000094c0300004100000000091a004b000000000900001900000000090380190000094c011001970000094c0da00197000000000e1d004b000000000300801900000000011d013f0000094c0110009c00000000010900190000000001036019000000000101004b00001e300000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000094d01d0009c00001e300000213d0000000001dc00490000002003a000390000094c09000041000000000c13004b000000000c000019000000000c0920190000094c011001970000094c03300197000000000e13004b0000000009008019000000000113013f0000094c0110009c00000000010c00190000000001096019000000000101004b00001e300000c13d0000004101d0008c00001e380000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000094c0c000041000000000101043b000000f8011002700000001b0310008c00001cc50000613d000000000b000415000000050bb0008a000000200bb000c90000095b0c0000410000001c0110008c00001e3e0000c13d000000400a00043d0000095301a0009c00001e320000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e1003670000000001000019000000050310021000000000093d001900000000033e034f000000000303043b0000000000390435000000010110003a00001ccf0000413d00000000010a0433000000000101004b00001e380000613d00000000010d043300000954011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000094c0300004100000000091f004b000000000900001900000000090380190000094c011001970000094c0cf00197000000000d1c004b000000000300801900000000011c013f0000094c0110009c00000000010900190000000001036019000000000101004b00001e300000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000094d03e0009c00001e300000213d0000000003eb004900000020011000390000094c09000041000000000b31004b000000000b000019000000000b0920190000094c033001970000094c01100197000000000f31004b0000000009008019000000000131013f0000094c0110009c00000000010b00190000000001096019000000000101004b00001e300000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000094d0c1001970000003801c0008c00001d480000413d0000002001c002700000094803c0009c00000000030c001900000000030120190000094801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d0000095303b0009c00001e320000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e10036700000000010000190000000503100210000000000f3d001900000000033e034f000000000303043b00000000003f0435000000010110003a00001d320000413d00000000010b0433000000000101004b00001e380000613d00000000010d04330000095401100197000000f803900210000000000113019f0000095a011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b00039000000000013043500001d620000013d000000400b00043d0000095301b0009c00001e320000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d10036700000000010000190000000503100210000000000e39001900000000033d034f000000000303043b00000000003e0435000000010110003a00001d520000413d00000000010b0433000000000101004b00001e380000613d000000f801c0021000000000030904330000095403300197000000000131019f00000959011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000094c09000041000000000d13004b000000000d000019000000000d0980190000094c011001970000094c0e300197000000000f1e004b000000000900801900000000011e013f0000094c0110009c00000000010d00190000000001096019000000000101004b00001e300000c13d00000004010000290000000001130019000000000314034f000000000903043b0000094d0390009c00001e300000213d00000000039c0049000000200c1000390000094c0100004100000000043c004b000000000400001900000000040120190000094c033001970000094c0dc00197000000000e3d004b000000000100801900000000033d013f0000094c0330009c000000000104c019000000000101004b00001e300000c13d000000400300043d00000020043000390000095b01000041000400000004001d0000000000140435000000210d300039000000000e0b043300000000010e004b00001d9c0000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b00001d950000413d000000000bde001900000000000b0435000000000d02043300000000010d004b00001da90000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b00001da20000413d0000000002bd00190000000000020435000000000b06043300000000010b004b00001db60000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b00001daf0000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c90027200001dc50000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b00001dbd0000413d000000000106004b00001dd40000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000106004b00001de10000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b00001dda0000413d0000000002260019000000000002043500000000050a0433000000000105004b00001dee0000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b00001de70000413d000000000225001900000000000204350000000005070433000000000105004b00001dfb0000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b00001df40000413d000000000225001900000000000204350000000005080433000000000105004b00001e080000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b00001e010000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000094d0410009c00001e320000213d000000010220019000001e320000c13d000000400010043f00000948010000410000000404000029000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f000000010220019000001e300000613d000000000101043b000000000001042d00000000010000190000251e00010430000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e000104300006000000000002000400000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f0000000102200190000024f20000613d000000000201043b000000800120008c00001eac0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000024f40000213d0000000105500190000024f40000c13d000000400040043f000000020430003900000000044104360000002105300039000000050550027200001e990000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001e910000413d000000000500004b00001e9b0000613d0000000005010433000000000505004b000024fa0000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000002103100039000000000023043500001ec90000013d000000400100043d000009530310009c000024f40000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00001eb60000413d0000000004010433000000000404004b000024fa0000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c00001f1a0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c000024f40000213d0000000106600190000024f40000c13d000000400050043f000000020540003900000000055304360000002106400039000000050660027200001f070000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b00001eff0000413d000000000600004b00001f090000613d0000000006030433000000000606004b000024fa0000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c00000000020020190000002104300039000000000024043500001f370000013d000000400300043d000009530430009c000024f40000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a00001f240000413d0000000005030433000000000505004b000024fa0000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000402000029000000c0022000390000000202200367000000000202043b000000800420008c00001f880000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000024f40000213d0000000107700190000024f40000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200001f750000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00001f6d0000413d000000000700004b00001f770000613d0000000007040433000000000707004b000024fa0000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500001fa50000013d000000400400043d000009530540009c000024f40000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00001f920000413d0000000006040433000000000606004b000024fa0000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f00000000002504350000000402000029000000a0022000390000000202200367000000000202043b000000800520008c00001ff60000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000024f40000213d0000000108800190000024f40000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200001fe30000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00001fdb0000413d000000000800004b00001fe50000613d0000000008050433000000000808004b000024fa0000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000020130000013d000000400500043d000009530650009c000024f40000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000020000000413d0000000007050433000000000707004b000024fa0000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000040200002900000060022000390000000202200367000000000202043b000000800620008c000020640000413d0000008006200270000009550720009c000000000602a019000009550720009c0000000007000019000000100700203900000008087001bf0000094d0960009c000000000708201900000040086002700000094d0960009c000000000608201900000004087001bf000009480960009c00000000070820190000002008600270000009480960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000094d0a80009c000024f40000213d0000000109900190000024f40000c13d000000400080043f0000000208700039000000000886043600000021097000390000000509900272000020510000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000020490000413d000000000900004b000020530000613d0000000009060433000000000909004b000024fa0000613d00000000090804330000095409900197000000f80a70021000000000099a019f000009560990004100000000009804350000000307700210000000f80770008900000000027201cf000000ff0770008c000000000200201900000021076000390000000000270435000020810000013d000000400600043d000009530760009c000024f40000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a0000206e0000413d0000000008060433000000000808004b000024fa0000613d000000f8082002100000094c09000041000000000202004b0000000002080019000000000209601900000000080704330000095408800197000000000228019f0000000000270435000000400700043d000009530270009c000024f40000213d000000040a0000290000004002a000390000000202200367000000000202043b0000004008700039000000400080043f000000200870003900000957090000410000000000980435000000150800003900000000008704350000002108700039000000600220021000000000002804350000012002a000390000000202200367000000000202043b000000800820008c000020e20000413d0000008008200270000009550920009c000000000802a019000009550920009c00000000090000190000001009002039000000080a9001bf0000094d0b80009c00000000090a2019000000400a8002700000094d0b80009c00000000080a2019000000040a9001bf000009480b80009c00000000090a2019000000200a800270000009480b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000094d0ca0009c000024f40000213d000000010bb00190000024f40000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000020cf0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000020c70000413d000000000b00004b000020d10000613d000000000b080433000000000b0b004b000024fa0000613d000000000b0a0433000009540bb00197000000f80c900210000000000bbc019f000009560bb000410000000000ba04350000000309900210000000f80990008900000000029201cf000000ff0990008c000000000200201900000021098000390000000000290435000020ff0000013d000000400800043d000009530980009c000024f40000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000020ec0000413d000000000a080433000000000a0a004b000024fa0000613d000000f80a2002100000094c0b000041000000000202004b00000000020a001900000000020b6019000000000a090433000009540aa0019700000000022a019f0000000000290435000000400200043d0000002009200039000000000a010433000000000b0a004b0000210c0000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b000021050000413d00000000019a001900000000000104350000000009030433000000000a09004b000021190000613d000000000a000019000000000b1a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b9a004b000021120000413d000000000119001900000000000104350000000003040433000000000903004b000021260000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b0000211f0000413d000000000113001900000000000104350000000003050433000000000403004b000021330000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000934004b0000212c0000413d000000000113001900000000000104350000000003060433000000000403004b000021400000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000534004b000021390000413d000000000113001900000000000104350000000003070433000000000403004b0000214d0000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b000021460000413d000000000113001900000000000104350000000003080433000000000403004b0000215a0000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000534004b000021530000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000094d0350009c000024f40000213d0000000101100190000024f40000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000094c09000041000000000a16004b000000000a000019000000000a0980190000094c011001970000094c0b600197000000000c1b004b000000000900801900000000011b013f0000094c0110009c00000000010a00190000000001096019000000000101004b000024f20000c13d00000004010000290000000001160019000000000617034f000000000606043b0000094d0960009c000024f20000213d000000000968004900000020081000390000094c01000041000000000a98004b000000000a000019000000000a0120190000094c099001970000094c0b800197000000000c9b004b000000000100801900000000099b013f0000094c0990009c00000000010ac019000000000101004b000024f20000c13d000000010160008c000021b70000c13d000000000187034f000000000101043b000000010300008a0000094c06000041000000000331004b000000000300001900000000030620190000094c011001970000094c0710009c00000000060080190000094c011001670000094c0110009c000000000103001900000000010660190000006006000039000000000101004b000022030000c13d000009530150009c000024f40000213d0000004001500039000000400010043f000000200150003900000956030000410000000000310435000000010100003900000000001504350000000006050019000022030000013d000000380160008c000021e90000413d0000002001600270000009480360009c00000000030600190000000003012019000009480160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009530350009c000024f40000213d000000000771019f0000004001500039000000400010043f000000020170003900000000081504360000000001000031000000020910036700000000010000190000000503100210000000000a380019000000000339034f000000000303043b00000000003a0435000000010110003a000021d20000413d0000000001050433000000000101004b000024fa0000613d00000000010804330000095401100197000000f803700210000000000113019f00000958011001c700000000001804350000000301700210000000f80110008900000000011601cf000000210350003900000000001304350000000006050019000022030000013d000009530150009c000024f40000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000100001900000005031002100000000009370019000000000338034f000000000303043b0000000000390435000000010110003a000021f20000413d0000000001050433000000000101004b000024fa0000613d000000f80160021000000000030704330000095403300197000000000113019f0000094c0110016700000000001704350000000006050019000000400500043d000009530150009c000024f40000213d0000004001500039000000400010043f0000000101000039000300000001001d0000000007150436000000000100003100000002081003670000000001000019000000050a100210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010110003a0000220e0000413d0000000001050433000000000101004b000024fa0000613d0000000001070433000009540110019700000959011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000094c0c000041000000000d1b004b000000000d000019000000000d0c80190000094c011001970000094c0eb00197000000000f1e004b000000000c00801900000000011e013f0000094c0110009c00000000010d001900000000010c6019000000000101004b000024f20000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000094d0cb0009c000024f20000213d000000000cb8004900000020081000390000094c01000041000000000dc8004b000000000d000019000000000d0120190000094c0cc001970000094c0e800197000000000fce004b0000000001008019000000000cce013f0000094c0cc0009c00000000010dc019000000000101004b000024f20000c13d0000002001b0008c000024f20000413d000000000187034f000000000801043b000000800180008c000022980000413d0000008001800270000009550780009c000000000108a019000009550780009c00000000070000190000001007002039000000080b7001bf0000094d0c10009c00000000070b2019000000400b1002700000094d0c10009c00000000010b2019000000040b7001bf000009480c10009c00000000070b2019000000200b100270000009480c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000094d0d10009c000024f40000213d000000010cc00190000024f40000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d100272000022840000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b0000227c0000413d000000000100004b000022860000613d0000000001070433000000000101004b000024fa0000613d00000000010c04330000095401100197000000f803b00210000000000113019f000009560110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c0000000001030019000000000100201900000021037000390000000000130435000022b40000013d000000400700043d000009530170009c000024f40000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c10036700000000010000190000000503100210000000000d3b001900000000033c034f000000000303043b00000000003d0435000000010110003a000022a20000413d0000000001070433000000000101004b000024fa0000613d000000f8018002100000094c03000041000000000808004b000000000103601900000000030b04330000095403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000094c03000041000000000d1b004b000000000d000019000000000d0380190000094c011001970000094c0eb00197000000000f1e004b000000000300801900000000011e013f0000094c0110009c00000000010d00190000000001036019000000000101004b000024f20000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000094d01d0009c000024f20000213d0000000001dc00490000002003b000390000094c0c000041000000000e13004b000000000e000019000000000e0c20190000094c011001970000094c03300197000000000f13004b000000000c008019000000000113013f0000094c0110009c00000000010e001900000000010c6019000000000101004b000024f20000c13d0000004001d0008c000024f20000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c000023300000413d0000008001b002700000095503b0009c00000000010ba0190000095503b0009c0000000003000019000000100300203900000008083001bf0000094d0c10009c000000000308201900000040081002700000094d0c10009c000000000108201900000004083001bf000009480c10009c00000000030820190000002008100270000009480c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000094d0310009c000024f40000213d0000000103d00190000024f40000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e1002720000231c0000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b000023140000413d000000000100004b0000231e0000613d0000000001080433000000000101004b000024fa0000613d00000000010d04330000095401100197000000f803c00210000000000113019f000009560110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c00000000010300190000000001002019000000210380003900000000001304350000234c0000013d000000400800043d000009530180009c000024f40000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d1003670000000001000019000000050310021000000000093c001900000000033d034f000000000303043b0000000000390435000000010110003a0000233a0000413d0000000001080433000000000101004b000024fa0000613d000000f801b002100000094c0300004100000000090b004b000000000103601900000000030c04330000095403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000094c0300004100000000091a004b000000000900001900000000090380190000094c011001970000094c0da00197000000000e1d004b000000000300801900000000011d013f0000094c0110009c00000000010900190000000001036019000000000101004b000024f20000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000094d01d0009c000024f20000213d0000000001dc00490000002003a000390000094c09000041000000000c13004b000000000c000019000000000c0920190000094c011001970000094c03300197000000000e13004b0000000009008019000000000113013f0000094c0110009c00000000010c00190000000001096019000000000101004b000024f20000c13d0000004101d0008c000024fa0000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000094c0c000041000000000101043b000000f8011002700000001b0310008c000023870000613d000000000b000415000000050bb0008a000000200bb000c90000095b0c0000410000001c0110008c000025000000c13d000000400a00043d0000095301a0009c000024f40000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e1003670000000001000019000000050310021000000000093d001900000000033e034f000000000303043b0000000000390435000000010110003a000023910000413d00000000010a0433000000000101004b000024fa0000613d00000000010d043300000954011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000094c0300004100000000091f004b000000000900001900000000090380190000094c011001970000094c0cf00197000000000d1c004b000000000300801900000000011c013f0000094c0110009c00000000010900190000000001036019000000000101004b000024f20000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000094d03e0009c000024f20000213d0000000003eb004900000020011000390000094c09000041000000000b31004b000000000b000019000000000b0920190000094c033001970000094c01100197000000000f31004b0000000009008019000000000131013f0000094c0110009c00000000010b00190000000001096019000000000101004b000024f20000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000094d0c1001970000003801c0008c0000240a0000413d0000002001c002700000094803c0009c00000000030c001900000000030120190000094801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d0000095303b0009c000024f40000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e10036700000000010000190000000503100210000000000f3d001900000000033e034f000000000303043b00000000003f0435000000010110003a000023f40000413d00000000010b0433000000000101004b000024fa0000613d00000000010d04330000095401100197000000f803900210000000000113019f0000095a011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b000390000000000130435000024240000013d000000400b00043d0000095301b0009c000024f40000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d10036700000000010000190000000503100210000000000e39001900000000033d034f000000000303043b00000000003e0435000000010110003a000024140000413d00000000010b0433000000000101004b000024fa0000613d000000f801c0021000000000030904330000095403300197000000000131019f00000959011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000094c09000041000000000d13004b000000000d000019000000000d0980190000094c011001970000094c0e300197000000000f1e004b000000000900801900000000011e013f0000094c0110009c00000000010d00190000000001096019000000000101004b000024f20000c13d00000004010000290000000001130019000000000314034f000000000903043b0000094d0390009c000024f20000213d00000000039c0049000000200c1000390000094c0100004100000000043c004b000000000400001900000000040120190000094c033001970000094c0dc00197000000000e3d004b000000000100801900000000033d013f0000094c0330009c000000000104c019000000000101004b000024f20000c13d000000400300043d00000020043000390000095c01000041000400000004001d0000000000140435000000210d300039000000000e0b043300000000010e004b0000245e0000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b000024570000413d000000000bde001900000000000b0435000000000d02043300000000010d004b0000246b0000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b000024640000413d0000000002bd00190000000000020435000000000b06043300000000010b004b000024780000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b000024710000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c900272000024870000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b0000247f0000413d000000000106004b000024960000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000106004b000024a30000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b0000249c0000413d0000000002260019000000000002043500000000050a0433000000000105004b000024b00000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b000024a90000413d000000000225001900000000000204350000000005070433000000000105004b000024bd0000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b000024b60000413d000000000225001900000000000204350000000005080433000000000105004b000024ca0000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b000024c30000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000094d0410009c000024f40000213d0000000102200190000024f40000c13d000000400010043f00000948010000410000000404000029000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f0000000102200190000024f20000613d000000000101043b000000000001042d00000000010000190000251e00010430000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e0001043000002515002104230000000102000039000000000001042d0000000002000019000000000001042d0000251a002104230000000102000039000000000001042d0000000002000019000000000001042d0000251c000004320000251d0001042e0000251e00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d7000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff456e636f64696e6720756e737570706f7274656420747800000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f8080000000000000000000000000000000000000000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000006b656363616b3235362072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052b2bf42e5ab5127f48669ab36579badd217fbd10998091dbba6028927708cf2", - "deployedBytecode": "0x0004000000000002000d00000000000200000000030100190000006003300270000009480430019700030000004103550002000000010355000009480030019d000100000000001f000000800a0000390000004000a0043f0000000101200190000000910000c13d0000000001000031000000040110008c0000083e0000413d0000000201000367000000000101043b0000094a011001970000094b0110009c0000083e0000c13d0000000001000416000000000101004b0000083e0000c13d0000000001000031000000040310008a0000094c02000041000000200430008c000000000400001900000000040240190000094c05300197000000000605004b000000000200a0190000094c0550009c000000000204c019000000000202004b0000083e0000c13d00000002020003670000000404200370000000000904043b0000094d0490009c0000083e0000213d00000000039300490000094c04000041000002600530008c000000000500001900000000050440190000094c03300197000000000603004b000000000400a0190000094c0330009c00000000030500190000000003046019000000000303004b0000083e0000c13d0000000403900039000d00000003001d000000000332034f000000000303043b000000000403004b000000990000c13d000c00000009001d0000010401900039000000000112034f000000000101043b000000800210008c000000d70000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000b090000290000000003390436000000210420003900000005044002720000007d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000750000413d000000000400004b0000007f0000613d0000000004090433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000001bc0000013d0000000001000416000000000101004b0000083e0000c13d00000020010000390000010000100443000001200000044300000949010000410000251d0001042e000000710430008c000000e10000c13d000001c403900039000000000332034f000000230400008a0000000004940049000b00000004001d0000000004140019000000000303043b0000094c05000041000000000643004b000000000600001900000000060580190000094c044001970000094c07300197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000003430019000000000232034f000000000202043b0000094d0420009c0000083e0000213d000000000121004900000020033000390000094c04000041000000000513004b000000000500001900000000050420190000094c011001970000094c06300197000000000716004b0000000004008019000000000116013f0000094c0110009c00000000010500190000000001046019000000000101004b0000083e0000c13d00000000010004140000000004320019000000000224004b0000000002000019000000010200403900000948033001970000000102200190000000d10000c13d0000000002000031000000000542004b0000041b0000813d000009700100004100000000001004350000001101000039000000040010043f00000971010000410000251e00010430000000400200043d000b00000002001d000009530220009c0000013e0000a13d000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000000020130008c000001560000c13d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039000c00000009001d251c25120000040f00000001022001900000083e0000613d000000000201043b000000800120008c0000028d0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000012b0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001230000413d000000000500004b0000012d0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000002aa0000013d0000000b070000290000004002700039000000400020043f0000000102000039000000000227043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000001460000413d0000000003070433000000000303004b000001b30000c13d000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000010130008c0000020d0000c13d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039000c00000009001d251c25120000040f00000001022001900000083e0000613d000000000201043b000000800120008c000002fb0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001a00000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001980000413d000000000500004b000001a20000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000003180000013d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f00000000001204350000000c01000029000000a4011000390000000201100367000000000201043b000000800120008c0000021f0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001fa0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001f20000413d000000000500004b000001fc0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000023c0000013d000000400100043d00000044021000390000094e0300004100000000003204350000002402100039000000170300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000002290000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000064022000390000000202200367000000000302043b000000800230008c000003690000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f00000002054000390000000005520436000000210640003900000005066002720000027a0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002720000413d000000000600004b0000027c0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000003860000013d000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000002970000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000302043b000000800230008c000004320000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000002e80000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002e00000413d000000000600004b000002ea0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c0000000003002019000000210420003900000000003404350000044f0000013d000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000003050000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000202043b000000800320008c0000068b0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000003560000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000034e0000413d000000000600004b000003580000613d0000000006030433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000006a80000013d000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000003730000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000504004b000003940000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b0000038d0000413d000000000134001900000000000104350000000003020433000000000403004b000003a10000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000039a0000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000094d0220009c000000db0000213d0000000101100190000000db0000c13d0000000901000029000000400010043f000009530110009c000000db0000213d0000000c0400002900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009570300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000007f00000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000704000029000000000334043600000021042000390000000504400272000004060000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000003fe0000413d000000000400004b000004080000613d00000007040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000008100000013d000a0000000a001d000c00000009001d00000002033003670000095d0510009c000004a00000413d000000400100043d00000044021000390000096f0300004100000000003204350000002402100039000000080300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a0000043c0000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f00000000003404350000000c03000029000000c4033000390000000203300367000000000303043b000000800430008c000007140000413d0000008004300270000009550530009c000000000403a019000009550530009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000000db0000213d0000000107700190000000db0000c13d000000400060043f00000002065000390000000006640436000000210750003900000005077002720000048d0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004850000413d000000000700004b0000048f0000613d0000000007040433000000000707004b000001500000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c000000000300201900000021054000390000000000350435000007310000013d0000000002420049000009480220019700000000022303df000000c0011002100000095e011001970000095f011001c700000000011203af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d000009480330019700030000000103550000000102200190000006f90000613d0000003f013000390000096001100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f00000000013204360000001f043000390000000504400272000004cb0000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004c30000413d000000000400004b000004cd0000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f0000000503300272000004dd0000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000004d50000413d000000000604004b000004ec0000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000e570000c13d00000000040000310000000b0200002900000000052400190000000c0200002900000204032000390000000202000367000000000332034f000000000303043b0000094c06000041000000000753004b000000000700001900000000070680190000094c055001970000094c08300197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000001010433000900000001001d0000000d010000290000000001130019000000000312034f000000000503043b0000094d0350009c0000083e0000213d0000000503500210000000000434004900000020061000390000094c01000041000000000746004b000000000700001900000000070120190000094c044001970000094c08600197000000000948004b0000000001008019000000000448013f0000094c0440009c000000000107c019000000000101004b0000083e0000c13d000000400100043d000000200410003900000961055001980000052b0000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000005230000413d000000000200004b0000052d0000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b000000000300001900000001030040390000094d0520009c000000db0000213d0000000103300190000000db0000c13d000000400020043f0000094802000041000009480340009c0000000003020019000000000304401900000040033002100000000001010433000009480410009c00000000010280190000006001100210000000000131019f0000000003000414000009480430009c0000000002034019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c030000290000083e0000613d00000000020000310000000b04000029000000000542001900000224043000390000000203000367000000000443034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000101043b000b00000001001d000000000105004b0000083e0000c13d0000000d010000290000000004140019000000000143034f000000000101043b0000094d0310009c0000083e0000213d000000000212004900000020034000390000094c04000041000000000523004b000000000500001900000000050420190000094c022001970000094c06300197000000000726004b0000000004008019000000000226013f0000094c0220009c00000000020500190000000002046019000000000202004b0000083e0000c13d0000000002000414000000000131001a0000094804300197000000d10000413d0000000003000031000000000513004b000000d10000413d0000000204400367000009480520009c000004200000213d0000000001130049000009480110019700000000011403df000000c0022002100000095e022001970000095f022001c700000000012103af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d00000948033001970003000000010355000000010220019000000ff30000613d0000003f013000390000096001100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f00000000013204360000001f043000390000000504400272000005b10000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000005a90000413d000000000400004b000005b30000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f0000000503300272000005c30000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000005bb0000413d000000000604004b000005d20000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000e570000c13d0000000c0b0000290000006402b000390000000203000367000000000523034f0000004402b00039000000000423034f0000002402b00039000000000623034f0000008402b00039000000a407b00039000000c408b00039000000e409b00039000001040ab00039000001240bb00039000000000bb3034f000000000aa3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000d02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000a0a043b000000000b0b043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c1000390000000b0d0000290000000000dc0435000001800c100039000000090d0000290000000000dc0435000001600c1000390000000000bc0435000001400b1000390000000000ab0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000962030000410000000000320435000001c0030000390000000000310435000009630310009c000000db0000213d000001e003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000900000001001d000000400100043d000b00000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f0000000a0400002900000001022001900000083e0000613d0000000b050000290000002002500039000000000101043b00000964030000410000000000320435000000800350003900000000001304350000006001500039000009650300004100000000003104350000004001500039000009660300004100000000003104350000000000450435000009670150009c000000db0000213d0000000b04000029000000a001400039000000400010043f0000094801000041000009480320009c000000000201801900000040022002100000000003040433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000301043b000000400100043d0000004202100039000000090400002900000000004204350000002002100039000009680400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000009690310009c000000db0000213d0000008003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000400300043d000009530430009c000000db0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006950000413d0000000005030433000000000505004b000001500000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000c02000029000000a4022000390000000202200367000000000202043b000000800420008c000007820000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000000db0000213d0000000107700190000000db0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000006e60000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006de0000413d000000000700004b000006e80000613d0000000007040433000000000707004b000001500000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000000002504350000079f0000013d0000001f0430018f0000000502300272000007040000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000006fd0000413d000000000504004b000007120000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000400400043d000009530540009c000000db0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000071e0000413d0000000006040433000000000606004b000001500000613d000000f8063002100000094c07000041000000000303004b0000000003060019000000000307601900000000060504330000095406600197000000000336019f00000000003504350000000c03000029000000a4033000390000000203300367000000000303043b000000800530008c000008400000413d0000008005300270000009550630009c000000000503a019000009550630009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000000db0000213d0000000108800190000000db0000c13d000000400070043f00000002076000390000000007750436000000210860003900000005088002720000076f0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007670000413d000000000800004b000007710000613d0000000008050433000000000808004b000001500000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c0000000003002019000000210650003900000000003604350000085d0000013d000000400400043d000009530540009c000000db0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000078c0000413d0000000006040433000000000606004b000001500000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f00000000002504350000000c0200002900000064022000390000000202200367000000000202043b000000800520008c000008ae0000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000000db0000213d0000000108800190000000db0000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000007dd0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007d50000413d000000000800004b000007df0000613d0000000008050433000000000808004b000001500000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000008cb0000013d000000400200043d000700000002001d000009530220009c000000db0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000007fc0000413d00000007030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000230100008a0000000c020000290000000004210049000001c4012000390000000202000367000600000001001d000000000112034f000000000101043b0000000003000031000500000004001d00000000044300190000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000094d0510009c0000083e0000213d000000000513004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b000009aa0000613d00000000010000190000251e00010430000000400500043d000009530650009c000000db0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a0000084a0000413d0000000007050433000000000707004b000001500000613d000000f8073002100000094c08000041000000000303004b0000000003070019000000000308601900000000070604330000095407700197000000000337019f00000000003604350000000c0300002900000064033000390000000203300367000000000303043b000000800630008c0000092c0000413d0000008006300270000009550730009c000000000603a019000009550730009c0000000007000019000000100700203900000008087001bf0000094d0960009c000000000708201900000040086002700000094d0960009c000000000608201900000004087001bf000009480960009c00000000070820190000002008600270000009480960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000094d0a80009c000000db0000213d0000000109900190000000db0000c13d000000400080043f00000002087000390000000008860436000000210970003900000005099002720000089b0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000008930000413d000000000900004b0000089d0000613d0000000009060433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f000009560990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c000000000300201900000021076000390000000000370435000009490000013d000000400500043d000009530650009c000000db0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000008b80000413d0000000007050433000000000707004b000001500000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000400600043d000009530260009c000000db0000213d0000000c0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009570800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c000009cb0000413d0000008007200270000009550820009c000000000702a019000009550820009c0000000008000019000000100800203900000008098001bf0000094d0a70009c000000000809201900000040097002700000094d0a70009c000000000709201900000004098001bf000009480a70009c00000000080920190000002009700270000009480a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000094d0b90009c000000db0000213d000000010aa00190000000db0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa00272000009190000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000009110000413d000000000a00004b0000091b0000613d000000000a070433000000000a0a004b000001500000613d000000000a090433000009540aa00197000000f80b800210000000000aab019f000009560aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c000000000200201900000021087000390000000000280435000009e80000013d000000400600043d000009530760009c000000db0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000009360000413d0000000008060433000000000808004b000001500000613d000000f8083002100000094c09000041000000000303004b0000000003080019000000000309601900000000080704330000095408800197000000000338019f0000000000370435000000400700043d000009530370009c000000db0000213d0000000c0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f000000200870003900000957090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000ac60000413d0000008008300270000009550930009c000000000803a019000009550930009c00000000090000190000001009002039000000080a9001bf0000094d0b80009c00000000090a2019000000400a8002700000094d0b80009c00000000080a2019000000040a9001bf000009480b80009c00000000090a2019000000200a800270000009480b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000094d0ca0009c000000db0000213d000000010bb00190000000db0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000009970000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b0000098f0000413d000000000b00004b000009990000613d000000000b080433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c900210000000000bbc019f000009560bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000ae30000013d000000010410008c00000a900000c13d000000000132034f000000000101043b000000010200008a0000094c03000041000000000221004b000000000200001900000000020320190000094c011001970000094c0410009c00000000030080190000094c011001670000094c0110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b00000bb50000c13d000000400100043d000400000001001d000009530110009c000000db0000213d00000004030000290000004001300039000000400010043f0000002001300039000009560200004100000000002104350000000101000039000000000013043500000bb50000013d000000400700043d000009530870009c000000db0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000009d50000413d0000000009070433000000000909004b000001500000613d000000f8092002100000094c0a000041000000000202004b000000000209001900000000020a601900000000090804330000095409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a09004b000009f50000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b000009ee0000413d000000000189001900000000000104350000000008030433000000000908004b00000a020000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b000009fb0000413d000000000118001900000000000104350000000003040433000000000803004b00000a0f0000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00000a080000413d000000000113001900000000000104350000000003050433000000000403004b00000a1c0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00000a150000413d000000000113001900000000000104350000000003060433000000000403004b00000a290000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00000a220000413d000000000113001900000000000104350000000003070433000000000403004b00000a360000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00000a2f0000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f03100039000000200100008a000000000313016f0000000005230019000000000335004b000000000300001900000001030040390000094d0450009c000000db0000213d0000000103300190000000db0000c13d000000400050043f000000230300008a0000000c060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b000000000800003100000000094800190000094c0a000041000000000b96004b000000000b000019000000000b0a80190000094c099001970000094c0c600197000000000d9c004b000000000a00801900000000099c013f0000094c0990009c00000000090b001900000000090a6019000000000909004b0000083e0000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000094d0a60009c0000083e0000213d000000000a68004900000020089000390000094c09000041000000000ba8004b000000000b000019000000000b0920190000094c0aa001970000094c0c800197000000000dac004b0000000009008019000000000aac013f0000094c0aa0009c00000000090bc019000000000909004b0000083e0000c13d000000010960008c00000e690000c13d000000000687034f000000000606043b000000010700008a0000094c08000041000000000776004b000000000700001900000000070820190000094c066001970000094c0960009c00000000080080190000094c066001670000094c0660009c00000000070860190000006006000039000000000707004b00000ee70000c13d000009530650009c000000db0000213d0000004006500039000000400060043f00000020065000390000095607000041000000000076043500000001060000390000000000650435000000000605001900000ee70000013d000000380210008c00000b980000413d0000002002100270000009480310009c00000000030100190000000003022019000009480210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000009530440009c000000db0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000aae0000413d00000004040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f00000958044001c700000000004304350000000302200210000000f80220008900000000012101cf00000004020000290000002102200039000000000012043500000bb50000013d000000400800043d000009530980009c000000db0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000ad00000413d000000000a080433000000000a0a004b000001500000613d000000f80a3002100000094c0b000041000000000303004b00000000030a001900000000030b6019000000000a090433000009540aa0019700000000033a019f0000000000390435000000400300043d0000002009300039000000000a010433000000000b0a004b00000af00000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b00000ae90000413d00000000019a001900000000000104350000000009020433000000000a09004b00000afd0000613d000000000a000019000000000b1a0019000000200aa00039000000000c2a0019000000000c0c04330000000000cb0435000000000b9a004b00000af60000413d000000000119001900000000000104350000000002040433000000000902004b00000b0a0000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a29004b00000b030000413d000000000112001900000000000104350000000002050433000000000402004b00000b170000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000924004b00000b100000413d000000000112001900000000000104350000000002060433000000000402004b00000b240000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000524004b00000b1d0000413d000000000112001900000000000104350000000002070433000000000402004b00000b310000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000524004b00000b2a0000413d000000000112001900000000000104350000000002080433000000000402004b00000b3e0000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000524004b00000b370000413d000000000112001900000000000104350000000001310049000000200210008a00000000002304350000001f02100039000000200100008a000000000212016f0000000005320019000000000225004b000000000200001900000001020040390000094d0450009c000000db0000213d0000000102200190000000db0000c13d000000400050043f000000230200008a0000000c060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b000000000800003100000000094800190000094c0a000041000000000b96004b000000000b000019000000000b0a80190000094c099001970000094c0c600197000000000d9c004b000000000a00801900000000099c013f0000094c0990009c00000000090b001900000000090a6019000000000909004b0000083e0000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000094d0a60009c0000083e0000213d000000000a68004900000020089000390000094c09000041000000000ba8004b000000000b000019000000000b0920190000094c0aa001970000094c0c800197000000000dac004b0000000009008019000000000aac013f0000094c0aa0009c00000000090bc019000000000909004b0000083e0000c13d000000010960008c00000e9b0000c13d000000000687034f000000000606043b000000010700008a0000094c08000041000000000776004b000000000700001900000000070820190000094c066001970000094c0960009c00000000080080190000094c066001670000094c0660009c00000000070860190000006006000039000000000707004b00000f7a0000c13d000009530650009c000000db0000213d0000004006500039000000400060043f00000020065000390000095607000041000000000076043500000001060000390000000000650435000000000605001900000f7a0000013d000000400200043d000400000002001d000009530220009c000000db0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000ba40000413d00000004030000290000000003030433000000000303004b000001500000613d000000f80110021000000000030204330000095403300197000000000113019f0000094c01100167000000000012043500000060010000390000000c0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b00000c2a0000c13d0000000603000029000000000432034f000000000300003100000005050000290000000005530019000000000904043b0000094c04000041000000000659004b000000000600001900000000060480190000094c055001970000094c07900197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d0000000b0400002900000000040404330000000a0500002900000000050504330000000906000029000000000606043300000007070000290000000007070433000000040800002900000000080804330000000d0a0000290000000009a90019000000000292034f000000000202043b0000094d0a20009c0000083e0000213d000000000323004900000020099000390000094c0a000041000000000b39004b000000000b000019000000000b0a20190000094c033001970000094c09900197000000000c39004b000000000a008019000000000339013f0000094c0330009c00000000030b001900000000030a6019000000000303004b0000083e0000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000094d02200197000000380320008c00000cc20000413d0000002003200270000009480420009c00000000040200190000000004032019000009480320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009530650009c000000db0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a00000c140000413d0000000006050433000000000606004b000001500000613d00000000060404330000095406600197000000f807300210000000000667019f0000095a066001c700000000006404350000000303300210000000f80330008900000000023201cf0000002103500039000000000023043500000cdc0000013d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f00000001022001900000083e0000613d000000000101043b000000800210008c00000c840000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000804000029000000000442016f000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f000000020430003900000000044204360000002105300039000000050550027200000c710000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000c690000413d000000000500004b00000c730000613d0000000005020433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c00000000010020190000002103200039000000000013043500000ca10000013d000000400200043d000009530320009c000000db0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000c8e0000413d0000000004020433000000000404004b000001500000613d000000f8041002100000094c05000041000000000101004b0000000001040019000000000105601900000000040304330000095404400197000000000114019f0000000000130435000000400100043d00000020031000390000000004020433000000000504004b00000cae0000613d000000000500001900000000063500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00000ca70000413d00000000023400190000096a03000041000000000032043500000000021200490000001e0320008a000000000031043500000021022000390000000803000029000000000332016f0000000002130019000000000332004b000000000300001900000001030040390000094d0420009c000000db0000213d0000000103300190000000db0000c13d000000400020043f000000020200036700000bbd0000013d000000400500043d000009530350009c000000db0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a00000ccc0000413d0000000004050433000000000404004b000001500000613d000000f80220021000000000040304330000095404400197000000000242019f0000095902200041000000000023043500000000020000310000000503000029000000000632001900000002030003670000000604000029000000000443034f000000000404043b0000094c07000041000000000864004b000000000800001900000000080780190000094c066001970000094c09400197000000000a69004b0000000007008019000000000669013f0000094c0660009c00000000060800190000000006076019000000000606004b0000083e0000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000094d0340009c0000083e0000213d000000000242004900000020066000390000094c03000041000000000726004b000000000700001900000000070320190000094c022001970000094c08600197000000000928004b0000000003008019000000000228013f0000094c0220009c00000000020700190000000002036019000000000202004b0000083e0000c13d000000400200043d00000020032000390000000007050433000000000807004b00000d140000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b00000d0d0000413d000000000537001900000000000504350000000b0b00002900000000070b0433000000000807004b00000d220000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d1b0000413d000000000557001900000000000504350000000a0b00002900000000070b0433000000000807004b00000d300000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d290000413d00000000055700190000000000050435000000090b00002900000000070b0433000000000807004b00000d3e0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d370000413d00000000055700190000000000050435000000070b00002900000000070b0433000000000807004b00000d4c0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d450000413d00000000055700190000000000050435000000040b00002900000000070b0433000000000807004b00000d5a0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d530000413d00000000055700190000001f0740018f00000000000504350000000206600367000000050840027200000d690000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000d610000413d000000000907004b00000d780000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000605004b00000d850000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b00000d7e0000413d000000000145001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f0000094801000041000009480430009c000000000301801900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b0000290000083e0000613d00000002020003670000000d03000029000000000332034f000000000101043b000c00000001001d000000000103043b000000710310008c0000100e0000c13d000001e401b00039000000000312034f00000000010000310000000004b10049000000230440008a000000000303043b0000094c05000041000000000643004b000000000600001900000000060580190000094c044001970000094c07300197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000003430019000000000232034f000000000202043b0000094d0420009c0000083e0000213d000000000121004900000020033000390000094c04000041000000000513004b000000000500001900000000050420190000094c011001970000094c06300197000000000716004b0000000004008019000000000116013f0000094c0110009c00000000010500190000000001046019000000000101004b0000083e0000c13d0000000001000414000000000232001a0000094804300197000000d10000413d0000000003000031000000000523004b000000d10000413d0000000204400367000009480510009c000004200000213d0000000002230049000009480220019700000000022403df000000c0011002100000095e011001970000095f011001c700000000011203af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d000009480330019700030000000103550000000102200190000013900000613d0000003f013000390000096002100197000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000094d0520009c000000db0000213d0000000104400190000000db0000c13d000000400020043f00000000023104360000001f04300039000000050440027200000e110000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000e090000413d000000000400004b00000e130000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f000000050330027200000e230000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000e1b0000413d000000000604004b00000e320000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000e570000c13d0000000002020433000000400100043d0000004003100039000000000023043500000020021000390000000c030000290000000000320435000000400300003900000000003104350000096d0310009c000000db0000213d0000006003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000012550000013d000000400100043d00000044021000390000096c03000041000000000032043500000024021000390000001f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000380760008c00000ecd0000413d0000002007600270000009480860009c00000000080600190000000008072019000009480760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009530950009c000000db0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e840000413d0000000009050433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f00000958099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000ee70000013d000000380760008c00000f600000413d0000002007600270000009480860009c00000000080600190000000008072019000009480760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009530950009c000000db0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000eb60000413d0000000009050433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f00000958099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000f7a0000013d000009530750009c000000db0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000ed60000413d0000000008050433000000000808004b000001500000613d000000f80660021000000000080704330000095408800197000000000668019f0000094c0660016700000000006704350000000006050019000000400500043d000009530750009c000000db0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000ef10000413d0000000009050433000000000909004b000001500000613d0000000009070433000009540990019700000959099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b0000094c0a000041000000000d9c004b000000000d000019000000000d0a80190000094c099001970000094c0ec00197000000000f9e004b000000000a00801900000000099e013f0000094c0990009c00000000090d001900000000090a6019000000000909004b0000083e0000c13d0000000009020433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000094d0db0009c0000083e0000213d0000000007b70049000000200cc000390000094c0d000041000000000e7c004b000000000e000019000000000e0d20190000094c077001970000094c0cc00197000000000f7c004b000000000d00801900000000077c013f0000094c0770009c00000000070e001900000000070d6019000000000707004b0000083e0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000094d09700197000000380790008c000010640000413d0000002007900270000009480890009c000000000709a019000009480890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009530b70009c000000db0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a00000f4a0000413d000000000b070433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c800210000000000bbc019f0000095a0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000107d0000013d000009530750009c000000db0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000f690000413d0000000008050433000000000808004b000001500000613d000000f80660021000000000080704330000095408800197000000000668019f0000094c0660016700000000006704350000000006050019000000400500043d000009530750009c000000db0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000f840000413d0000000009050433000000000909004b000001500000613d0000000009070433000009540990019700000959099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b0000094c0a000041000000000d9c004b000000000d000019000000000d0a80190000094c099001970000094c0ec00197000000000f9e004b000000000a00801900000000099e013f0000094c0990009c00000000090d001900000000090a6019000000000909004b0000083e0000c13d0000000009030433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000094d0db0009c0000083e0000213d0000000007b70049000000200cc000390000094c0d000041000000000e7c004b000000000e000019000000000e0d20190000094c077001970000094c0cc00197000000000f7c004b000000000d00801900000000077c013f0000094c0770009c00000000070e001900000000070d6019000000000707004b0000083e0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000094d09700197000000380790008c000011250000413d0000002007900270000009480890009c000000000709a019000009480890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009530b70009c000000db0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a00000fdd0000413d000000000b070433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c800210000000000bbc019f0000095a0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000113e0000013d0000001f0430018f000000050230027200000ffe0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ff70000413d000000000504004b0000100c0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000000301004b000011200000c13d0000010401b00039000000000112034f000000000101043b000000800210008c000011e10000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000b040000290000000003340436000000210420003900000005044002720000104f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000010470000413d000000000400004b000010510000613d0000000b040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000012010000013d000000400700043d000009530a70009c000000db0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000106d0000413d000000000a070433000000000a0a004b000001500000613d000000f809900210000000000a080433000009540aa001970000000009a9019f00000959099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b0000094c0a000041000000000b83004b000000000b000019000000000b0a80190000094c088001970000094c0c300197000000000d8c004b000000000a00801900000000088c013f0000094c0880009c00000000080b001900000000080a6019000000000808004b0000083e0000c13d0000000d080000290000000003830019000000000434034f000000000804043b0000094d0480009c0000083e0000213d000000000489004900000020093000390000094c03000041000000000a49004b000000000a000019000000000a0320190000094c044001970000094c0b900197000000000c4b004b000000000300801900000000044b013f0000094c0440009c00000000030ac019000000000303004b0000083e0000c13d000000400300043d00000020043000390000095b0a0000410000000000a40435000000210a300039000000000b070433000000000c0b004b000010b50000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b000010ae0000413d0000000007ab00190000000000070435000000000a020433000000000b0a004b000010c20000613d000000000b000019000000000c7b0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000cab004b000010bb0000413d00000000027a001900000000000204350000000007060433000000000a07004b000010cf0000613d000000000a000019000000000b2a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000010c80000413d00000000022700190000001f0680018f000000000002043500000002079003670000000509800272000010de0000613d000000000a000019000000050ba00210000000000cb20019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000010d60000413d000000000a06004b000010ed0000613d0000000509900210000000000797034f00000000099200190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000282001900000000000204350000000006050433000000000706004b000010fa0000613d000000000700001900000000082700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000010f30000413d000000000226001900000000000204350000000002320049000000200520008a00000000005304350000001f02200039000000000212016f0000000001320019000000000221004b000000000200001900000001020040390000094d0510009c000000db0000213d0000000102200190000000db0000c13d000000400010043f0000094801000041000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000020210008c000012510000c13d0000000d01000029251c1e500000040f000012550000013d000000400700043d000009530a70009c000000db0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000112e0000413d000000000a070433000000000a0a004b000001500000613d000000f809900210000000000a080433000009540aa001970000000009a9019f00000959099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b0000094c0a000041000000000b82004b000000000b000019000000000b0a80190000094c088001970000094c0c200197000000000d8c004b000000000a00801900000000088c013f0000094c0880009c00000000080b001900000000080a6019000000000808004b0000083e0000c13d0000000d080000290000000002820019000000000424034f000000000804043b0000094d0480009c0000083e0000213d000000000489004900000020092000390000094c02000041000000000a49004b000000000a000019000000000a0220190000094c044001970000094c0b900197000000000c4b004b000000000200801900000000044b013f0000094c0440009c00000000020ac019000000000202004b0000083e0000c13d000000400200043d00000020042000390000095c0a0000410000000000a40435000000210a200039000000000b070433000000000c0b004b000011760000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b0000116f0000413d0000000007ab00190000000000070435000000000a030433000000000b0a004b000011830000613d000000000b000019000000000c7b0019000000200bb00039000000000d3b0019000000000d0d04330000000000dc0435000000000cab004b0000117c0000413d00000000037a001900000000000304350000000007060433000000000a07004b000011900000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000011890000413d00000000033700190000001f0680018f0000000000030435000000020790036700000005098002720000119f0000613d000000000a000019000000050ba00210000000000cb30019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000011970000413d000000000a06004b000011ae0000613d0000000509900210000000000797034f00000000099300190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000383001900000000000304350000000006050433000000000706004b000011bb0000613d000000000700001900000000083700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000011b40000413d000000000336001900000000000304350000000003230049000000200530008a00000000005204350000001f03300039000000000313016f0000000001230019000000000331004b000000000300001900000001030040390000094d0510009c000000db0000213d0000000103300190000000db0000c13d000000400010043f0000094801000041000009480340009c0000000003010019000000000304401900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000400200043d000b00000002001d000009530220009c000000db0000213d0000000b030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000011ed0000413d0000000b030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000a401b000390000000201100367000000000201043b000000800120008c000012710000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000123e0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000012360000413d000000000500004b000012400000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000128e0000013d000000010110008c000012600000c13d0000000d01000029251c18090000040f000000400200043d00000020032000390000000c04000029000000000043043500000000001204350000094801000041000009480320009c000000000102401900000040011002100000096e011001c70000251d0001042e000000400200043d000d00000002001d0000094f0100004100000000001204350000000401200039251c17ff0000040f0000000d0400002900000000014100490000094802000041000009480310009c0000000001028019000009480340009c000000000204401900000040022002100000006001100210000000000121019f0000251e00010430000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000127b0000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000006402b000390000000202200367000000000302043b000000800230008c000012de0000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000012cb0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000012c30000413d000000000600004b000012cd0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000012fb0000013d000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000012e80000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000504004b000013090000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b000013020000413d000000000134001900000000000104350000000003020433000000000403004b000013160000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000130f0000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000094d0220009c000000db0000213d0000000101100190000000db0000c13d0000000901000029000000400010043f000009530110009c000000db0000213d00000000040b001900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009570300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000013ab0000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f000000020320003900000007040000290000000003340436000000210420003900000005044002720000137b0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000013730000413d000000000400004b0000137d0000613d00000007040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000013cb0000013d0000001f0430018f00000005023002720000139b0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013940000413d000000000504004b000013a90000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000400200043d000700000002001d000009530220009c000000db0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000013b70000413d00000007030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000230100008a00000000020b00190000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000300000004001d00000000044300190000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000094d0510009c0000083e0000213d000000000513004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d000000010410008c0000141a0000c13d000000000132034f000000000101043b000000010200008a0000094c03000041000000000221004b000000000200001900000000020320190000094c011001970000094c0410009c00000000030080190000094c011001670000094c0110009c000000000102001900000000010360190000006002000039000600000002001d000000000101004b0000146d0000c13d000000400100043d000600000001001d000009530110009c000000db0000213d00000006030000290000004001300039000000400010043f000000200130003900000956020000410000000000210435000000010100003900000000001304350000146d0000013d000000380210008c000014500000413d0000002002100270000009480310009c00000000030100190000000003022019000009480210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000600000004001d000009530440009c000000db0000213d000000000232019f00000006040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000014380000413d00000006040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f00000958044001c700000000004304350000000302200210000000f80220008900000000012101cf0000000602000029000000210220003900000000001204350000146d0000013d000000400200043d000600000002001d000009530220009c000000db0000213d00000006030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000145c0000413d00000006030000290000000003030433000000000303004b000001500000613d000000f80110021000000000030204330000095403300197000000000113019f0000094c01100167000000000012043500000000030000310000000301000029000000000513001900000000010b0019000001e4011000390000000202000367000000000412034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000094d0650009c0000083e0000213d000000200650008c0000083e0000413d000000000553004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d000000000232034f000000000202043b000000800320008c000014ed0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000500000005001d000000000554004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000505000029000000000445043600000021053000390000000505500272000014d80000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000014d00000413d000000000500004b000014da0000613d00000005050000290000000005050433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000000503000029000000210330003900000000002304350000150d0000013d000000400300043d000500000003001d000009530330009c000000db0000213d00000005040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000014f90000413d00000005040000290000000004040433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000003000031000000030200002900000000052300190000000202000367000000000412034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000094d0650009c0000083e0000213d000000400650008c0000083e0000413d000000000353004900000020054000390000094c06000041000000000735004b000000000700001900000000070620190000094c033001970000094c05500197000000000835004b0000000006008019000000000335013f0000094c0330009c00000000030700190000000003066019000000000303004b0000083e0000c13d0000004003400039000000000232034f000000000202043b000000800320008c0000158d0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000405000029000000000445043600000021053000390000000505500272000015780000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000015700000413d000000000500004b0000157a0000613d00000004050000290000000005050433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000040300002900000021033000390000000000230435000015ad0000013d000000400300043d000400000003001d000009530330009c000000db0000213d00000004040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000015990000413d00000004040000290000000004040433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000003000031000000030200002900000000042300190000000202000367000000000112034f000000000101043b0000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000001410019000000000412034f000000000404043b0000094d0540009c0000083e0000213d000000000343004900000020051000390000094c06000041000000000735004b000000000700001900000000070620190000094c033001970000094c05500197000000000835004b0000000006008019000000000335013f0000094c0330009c00000000030700190000000003066019000000000303004b0000083e0000c13d000000410340008c000001500000413d0000006001100039000000000112034f000000000101043b000000f801100270000100000001001d0000001b0110008a000000020110008c0000164f0000813d0000014401b00039000000000112034f000000000101043b000000000101004b000016610000613d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f00000001022001900000083e0000613d000000000201043b0000000101200210000000000302004b000015fc0000613d000000090300008a000000000331004b000000d10000213d00000000322100d9000000020220008c000000d10000c13d000000010300002900000000011300190000000802100039000000000132004b000000d10000413d000000800120008c000100000002001d000016610000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c00000000010000190000000101002039000000000313001900000041013000390000000804000029000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000163c0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000016340000413d000000000500004b0000163e0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000167e0000013d000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400100043d000009530210009c000000db0000213d0000004002100039000000400020043f0000000102000039000000000221043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000166b0000413d0000000003010433000000000303004b000001500000613d0000000105000029000000f8035002100000094c04000041000000000505004b000000000304601900000000040204330000095404400197000000000334019f000000000032043500000000020000310000000303000029000000000332001900000002080003670000000204000029000000000448034f000000000904043b0000094c04000041000000000539004b000000000500001900000000050480190000094c033001970000094c06900197000000000736004b0000000004008019000000000336013f0000094c0330009c00000000030500190000000003046019000000000303004b0000083e0000c13d0000000b0300002900000000030304330000000a0400002900000000040404330000000905000029000000000505043300000007060000290000000006060433000000060700002900000000070704330000000d0a0000290000000009a90019000000000898034f000000000808043b0000094d0a80009c0000083e0000213d000000000282004900000020099000390000094c0a000041000000000b29004b000000000b000019000000000b0a20190000094c022001970000094c09900197000000000c29004b000000000a008019000000000229013f0000094c0220009c00000000020b001900000000020a6019000000000202004b0000083e0000c13d00000000023400190000000002520019000000000262001900000000027200190000000002820019000000050300002900000000030304330000000002320019000000040300002900000000030304330000000002320019000000000301043300000000023200190000094d02200197000000380320008c000016f30000413d0000002003200270000009480420009c00000000040200190000000004032019000009480320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009530650009c000000db0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a000016dd0000413d0000000006050433000000000606004b000001500000613d00000000060404330000095406600197000000f807300210000000000667019f0000095a066001c700000000006404350000000303300210000000f80330008900000000023201cf000000210350003900000000002304350000170d0000013d000000400500043d000009530350009c000000db0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a000016fd0000413d0000000004050433000000000404004b000001500000613d000000f80220021000000000040304330000095404400197000000000242019f0000095902200041000000000023043500000000020000310000000303000029000000000632001900000002030003670000000204000029000000000443034f000000000404043b0000094c07000041000000000864004b000000000800001900000000080780190000094c066001970000094c09400197000000000a69004b0000000007008019000000000669013f0000094c0660009c00000000060800190000000006076019000000000606004b0000083e0000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000094d0340009c0000083e0000213d000000000242004900000020066000390000094c03000041000000000726004b000000000700001900000000070320190000094c022001970000094c08600197000000000928004b0000000003008019000000000228013f0000094c0220009c00000000020700190000000002036019000000000202004b0000083e0000c13d000000400200043d00000020032000390000000007050433000000000807004b000017450000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b0000173e0000413d000000000537001900000000000504350000000b070000290000000007070433000000000807004b000017540000613d0000000008000019000000000958001900000020088000390000000b0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000174c0000413d000000000557001900000000000504350000000a070000290000000007070433000000000807004b000017630000613d0000000008000019000000000958001900000020088000390000000a0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000175b0000413d0000000005570019000000000005043500000009070000290000000007070433000000000807004b000017720000613d000000000800001900000000095800190000002008800039000000090a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000176a0000413d0000000005570019000000000005043500000007070000290000000007070433000000000807004b000017810000613d000000000800001900000000095800190000002008800039000000070a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000017790000413d0000000005570019000000000005043500000006070000290000000007070433000000000807004b000017900000613d000000000800001900000000095800190000002008800039000000060a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000017880000413d00000000055700190000001f0740018f0000000000050435000000020660036700000005084002720000179f0000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000017970000413d000000000907004b000017ae0000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000605004b000017bb0000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b000017b40000413d0000000001450019000000000001043500000005040000290000000004040433000000000504004b000017ca0000613d0000000005000019000000000615001900000020055000390000000507000029000000000775001900000000070704330000000000760435000000000645004b000017c20000413d0000000001140019000000000001043500000004040000290000000004040433000000000504004b000017d90000613d0000000005000019000000000615001900000020055000390000000407000029000000000775001900000000070704330000000000760435000000000645004b000017d10000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f0000094801000041000009480430009c000000000301801900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000012550000013d000000400210003900000972030000410000000000320435000000200210003900000013030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0006000000000002000400000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f000000010220019000001e300000613d000000000201043b000000800120008c000018650000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c00001e320000213d000000010550019000001e320000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000018520000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000184a0000413d000000000500004b000018540000613d0000000005010433000000000505004b00001e380000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000018820000013d000000400100043d000009530310009c00001e320000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000186f0000413d0000000004010433000000000404004b00001e380000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c000018d30000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c00001e320000213d000000010660019000001e320000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000018c00000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000018b80000413d000000000600004b000018c20000613d0000000006030433000000000606004b00001e380000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000018f00000013d000000400300043d000009530430009c00001e320000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000018dd0000413d0000000005030433000000000505004b00001e380000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000402000029000000a0022000390000000202200367000000000202043b000000800420008c000019410000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c00001e320000213d000000010770019000001e320000c13d000000400060043f00000002065000390000000006640436000000210750003900000005077002720000192e0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000019260000413d000000000700004b000019300000613d0000000007040433000000000707004b00001e380000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000000002504350000195e0000013d000000400400043d000009530540009c00001e320000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000194b0000413d0000000006040433000000000606004b00001e380000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f0000000000250435000000040200002900000060022000390000000202200367000000000202043b000000800520008c000019af0000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c00001e320000213d000000010880019000001e320000c13d000000400070043f00000002076000390000000007750436000000210860003900000005088002720000199c0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000019940000413d000000000800004b0000199e0000613d0000000008050433000000000808004b00001e380000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000019cc0000013d000000400500043d000009530650009c00001e320000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000019b90000413d0000000007050433000000000707004b00001e380000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000400600043d000009530260009c00001e320000213d000000040900002900000040029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009570800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000120029000390000000202200367000000000202043b000000800720008c00001a2d0000413d0000008007200270000009550820009c000000000702a019000009550820009c0000000008000019000000100800203900000008098001bf0000094d0a70009c000000000809201900000040097002700000094d0a70009c000000000709201900000004098001bf000009480a70009c00000000080920190000002009700270000009480a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000094d0b90009c00001e320000213d000000010aa0019000001e320000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200001a1a0000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00001a120000413d000000000a00004b00001a1c0000613d000000000a070433000000000a0a004b00001e380000613d000000000a090433000009540aa00197000000f80b800210000000000aab019f000009560aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500001a4a0000013d000000400700043d000009530870009c00001e320000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00001a370000413d0000000009070433000000000909004b00001e380000613d000000f8092002100000094c0a000041000000000202004b000000000209001900000000020a601900000000090804330000095409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a09004b00001a570000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b00001a500000413d000000000189001900000000000104350000000008030433000000000908004b00001a640000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b00001a5d0000413d000000000118001900000000000104350000000003040433000000000803004b00001a710000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00001a6a0000413d000000000113001900000000000104350000000003050433000000000403004b00001a7e0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00001a770000413d000000000113001900000000000104350000000003060433000000000403004b00001a8b0000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00001a840000413d000000000113001900000000000104350000000003070433000000000403004b00001a980000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00001a910000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000094d0350009c00001e320000213d000000010110019000001e320000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000094c09000041000000000a16004b000000000a000019000000000a0980190000094c011001970000094c0b600197000000000c1b004b000000000900801900000000011b013f0000094c0110009c00000000010a00190000000001096019000000000101004b00001e300000c13d00000004010000290000000001160019000000000617034f000000000606043b0000094d0960009c00001e300000213d000000000968004900000020081000390000094c01000041000000000a98004b000000000a000019000000000a0120190000094c099001970000094c0b800197000000000c9b004b000000000100801900000000099b013f0000094c0990009c00000000010ac019000000000101004b00001e300000c13d000000010160008c00001af50000c13d000000000187034f000000000101043b000000010300008a0000094c06000041000000000331004b000000000300001900000000030620190000094c011001970000094c0710009c00000000060080190000094c011001670000094c0110009c000000000103001900000000010660190000006006000039000000000101004b00001b410000c13d000009530150009c00001e320000213d0000004001500039000000400010043f00000020015000390000095603000041000000000031043500000001010000390000000000150435000000000605001900001b410000013d000000380160008c00001b270000413d0000002001600270000009480360009c00000000030600190000000003012019000009480160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009530350009c00001e320000213d000000000771019f0000004001500039000000400010043f000000020170003900000000081504360000000001000031000000020910036700000000010000190000000503100210000000000a380019000000000339034f000000000303043b00000000003a0435000000010110003a00001b100000413d0000000001050433000000000101004b00001e380000613d00000000010804330000095401100197000000f803700210000000000113019f00000958011001c700000000001804350000000301700210000000f80110008900000000011601cf00000021035000390000000000130435000000000605001900001b410000013d000009530150009c00001e320000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000100001900000005031002100000000009370019000000000338034f000000000303043b0000000000390435000000010110003a00001b300000413d0000000001050433000000000101004b00001e380000613d000000f80160021000000000030704330000095403300197000000000113019f0000094c0110016700000000001704350000000006050019000000400500043d000009530150009c00001e320000213d0000004001500039000000400010043f0000000101000039000300000001001d0000000007150436000000000100003100000002081003670000000001000019000000050a100210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010110003a00001b4c0000413d0000000001050433000000000101004b00001e380000613d0000000001070433000009540110019700000959011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000094c0c000041000000000d1b004b000000000d000019000000000d0c80190000094c011001970000094c0eb00197000000000f1e004b000000000c00801900000000011e013f0000094c0110009c00000000010d001900000000010c6019000000000101004b00001e300000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000094d0cb0009c00001e300000213d000000000cb8004900000020081000390000094c01000041000000000dc8004b000000000d000019000000000d0120190000094c0cc001970000094c0e800197000000000fce004b0000000001008019000000000cce013f0000094c0cc0009c00000000010dc019000000000101004b00001e300000c13d0000002001b0008c00001e300000413d000000000187034f000000000801043b000000800180008c00001bd60000413d0000008001800270000009550780009c000000000108a019000009550780009c00000000070000190000001007002039000000080b7001bf0000094d0c10009c00000000070b2019000000400b1002700000094d0c10009c00000000010b2019000000040b7001bf000009480c10009c00000000070b2019000000200b100270000009480c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000094d0d10009c00001e320000213d000000010cc0019000001e320000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d10027200001bc20000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b00001bba0000413d000000000100004b00001bc40000613d0000000001070433000000000101004b00001e380000613d00000000010c04330000095401100197000000f803b00210000000000113019f000009560110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c000000000103001900000000010020190000002103700039000000000013043500001bf20000013d000000400700043d000009530170009c00001e320000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c10036700000000010000190000000503100210000000000d3b001900000000033c034f000000000303043b00000000003d0435000000010110003a00001be00000413d0000000001070433000000000101004b00001e380000613d000000f8018002100000094c03000041000000000808004b000000000103601900000000030b04330000095403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000094c03000041000000000d1b004b000000000d000019000000000d0380190000094c011001970000094c0eb00197000000000f1e004b000000000300801900000000011e013f0000094c0110009c00000000010d00190000000001036019000000000101004b00001e300000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000094d01d0009c00001e300000213d0000000001dc00490000002003b000390000094c0c000041000000000e13004b000000000e000019000000000e0c20190000094c011001970000094c03300197000000000f13004b000000000c008019000000000113013f0000094c0110009c00000000010e001900000000010c6019000000000101004b00001e300000c13d0000004001d0008c00001e300000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c00001c6e0000413d0000008001b002700000095503b0009c00000000010ba0190000095503b0009c0000000003000019000000100300203900000008083001bf0000094d0c10009c000000000308201900000040081002700000094d0c10009c000000000108201900000004083001bf000009480c10009c00000000030820190000002008100270000009480c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000094d0310009c00001e320000213d0000000103d0019000001e320000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e10027200001c5a0000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b00001c520000413d000000000100004b00001c5c0000613d0000000001080433000000000101004b00001e380000613d00000000010d04330000095401100197000000f803c00210000000000113019f000009560110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c000000000103001900000000010020190000002103800039000000000013043500001c8a0000013d000000400800043d000009530180009c00001e320000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d1003670000000001000019000000050310021000000000093c001900000000033d034f000000000303043b0000000000390435000000010110003a00001c780000413d0000000001080433000000000101004b00001e380000613d000000f801b002100000094c0300004100000000090b004b000000000103601900000000030c04330000095403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000094c0300004100000000091a004b000000000900001900000000090380190000094c011001970000094c0da00197000000000e1d004b000000000300801900000000011d013f0000094c0110009c00000000010900190000000001036019000000000101004b00001e300000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000094d01d0009c00001e300000213d0000000001dc00490000002003a000390000094c09000041000000000c13004b000000000c000019000000000c0920190000094c011001970000094c03300197000000000e13004b0000000009008019000000000113013f0000094c0110009c00000000010c00190000000001096019000000000101004b00001e300000c13d0000004101d0008c00001e380000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000094c0c000041000000000101043b000000f8011002700000001b0310008c00001cc50000613d000000000b000415000000050bb0008a000000200bb000c90000095b0c0000410000001c0110008c00001e3e0000c13d000000400a00043d0000095301a0009c00001e320000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e1003670000000001000019000000050310021000000000093d001900000000033e034f000000000303043b0000000000390435000000010110003a00001ccf0000413d00000000010a0433000000000101004b00001e380000613d00000000010d043300000954011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000094c0300004100000000091f004b000000000900001900000000090380190000094c011001970000094c0cf00197000000000d1c004b000000000300801900000000011c013f0000094c0110009c00000000010900190000000001036019000000000101004b00001e300000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000094d03e0009c00001e300000213d0000000003eb004900000020011000390000094c09000041000000000b31004b000000000b000019000000000b0920190000094c033001970000094c01100197000000000f31004b0000000009008019000000000131013f0000094c0110009c00000000010b00190000000001096019000000000101004b00001e300000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000094d0c1001970000003801c0008c00001d480000413d0000002001c002700000094803c0009c00000000030c001900000000030120190000094801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d0000095303b0009c00001e320000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e10036700000000010000190000000503100210000000000f3d001900000000033e034f000000000303043b00000000003f0435000000010110003a00001d320000413d00000000010b0433000000000101004b00001e380000613d00000000010d04330000095401100197000000f803900210000000000113019f0000095a011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b00039000000000013043500001d620000013d000000400b00043d0000095301b0009c00001e320000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d10036700000000010000190000000503100210000000000e39001900000000033d034f000000000303043b00000000003e0435000000010110003a00001d520000413d00000000010b0433000000000101004b00001e380000613d000000f801c0021000000000030904330000095403300197000000000131019f00000959011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000094c09000041000000000d13004b000000000d000019000000000d0980190000094c011001970000094c0e300197000000000f1e004b000000000900801900000000011e013f0000094c0110009c00000000010d00190000000001096019000000000101004b00001e300000c13d00000004010000290000000001130019000000000314034f000000000903043b0000094d0390009c00001e300000213d00000000039c0049000000200c1000390000094c0100004100000000043c004b000000000400001900000000040120190000094c033001970000094c0dc00197000000000e3d004b000000000100801900000000033d013f0000094c0330009c000000000104c019000000000101004b00001e300000c13d000000400300043d00000020043000390000095b01000041000400000004001d0000000000140435000000210d300039000000000e0b043300000000010e004b00001d9c0000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b00001d950000413d000000000bde001900000000000b0435000000000d02043300000000010d004b00001da90000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b00001da20000413d0000000002bd00190000000000020435000000000b06043300000000010b004b00001db60000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b00001daf0000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c90027200001dc50000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b00001dbd0000413d000000000106004b00001dd40000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000106004b00001de10000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b00001dda0000413d0000000002260019000000000002043500000000050a0433000000000105004b00001dee0000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b00001de70000413d000000000225001900000000000204350000000005070433000000000105004b00001dfb0000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b00001df40000413d000000000225001900000000000204350000000005080433000000000105004b00001e080000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b00001e010000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000094d0410009c00001e320000213d000000010220019000001e320000c13d000000400010043f00000948010000410000000404000029000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f000000010220019000001e300000613d000000000101043b000000000001042d00000000010000190000251e00010430000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e000104300006000000000002000400000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f0000000102200190000024f20000613d000000000201043b000000800120008c00001eac0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000024f40000213d0000000105500190000024f40000c13d000000400040043f000000020430003900000000044104360000002105300039000000050550027200001e990000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001e910000413d000000000500004b00001e9b0000613d0000000005010433000000000505004b000024fa0000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000002103100039000000000023043500001ec90000013d000000400100043d000009530310009c000024f40000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00001eb60000413d0000000004010433000000000404004b000024fa0000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c00001f1a0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c000024f40000213d0000000106600190000024f40000c13d000000400050043f000000020540003900000000055304360000002106400039000000050660027200001f070000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b00001eff0000413d000000000600004b00001f090000613d0000000006030433000000000606004b000024fa0000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c00000000020020190000002104300039000000000024043500001f370000013d000000400300043d000009530430009c000024f40000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a00001f240000413d0000000005030433000000000505004b000024fa0000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000402000029000000c0022000390000000202200367000000000202043b000000800420008c00001f880000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000024f40000213d0000000107700190000024f40000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200001f750000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00001f6d0000413d000000000700004b00001f770000613d0000000007040433000000000707004b000024fa0000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500001fa50000013d000000400400043d000009530540009c000024f40000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00001f920000413d0000000006040433000000000606004b000024fa0000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f00000000002504350000000402000029000000a0022000390000000202200367000000000202043b000000800520008c00001ff60000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000024f40000213d0000000108800190000024f40000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200001fe30000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00001fdb0000413d000000000800004b00001fe50000613d0000000008050433000000000808004b000024fa0000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000020130000013d000000400500043d000009530650009c000024f40000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000020000000413d0000000007050433000000000707004b000024fa0000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000040200002900000060022000390000000202200367000000000202043b000000800620008c000020640000413d0000008006200270000009550720009c000000000602a019000009550720009c0000000007000019000000100700203900000008087001bf0000094d0960009c000000000708201900000040086002700000094d0960009c000000000608201900000004087001bf000009480960009c00000000070820190000002008600270000009480960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000094d0a80009c000024f40000213d0000000109900190000024f40000c13d000000400080043f0000000208700039000000000886043600000021097000390000000509900272000020510000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000020490000413d000000000900004b000020530000613d0000000009060433000000000909004b000024fa0000613d00000000090804330000095409900197000000f80a70021000000000099a019f000009560990004100000000009804350000000307700210000000f80770008900000000027201cf000000ff0770008c000000000200201900000021076000390000000000270435000020810000013d000000400600043d000009530760009c000024f40000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a0000206e0000413d0000000008060433000000000808004b000024fa0000613d000000f8082002100000094c09000041000000000202004b0000000002080019000000000209601900000000080704330000095408800197000000000228019f0000000000270435000000400700043d000009530270009c000024f40000213d000000040a0000290000004002a000390000000202200367000000000202043b0000004008700039000000400080043f000000200870003900000957090000410000000000980435000000150800003900000000008704350000002108700039000000600220021000000000002804350000012002a000390000000202200367000000000202043b000000800820008c000020e20000413d0000008008200270000009550920009c000000000802a019000009550920009c00000000090000190000001009002039000000080a9001bf0000094d0b80009c00000000090a2019000000400a8002700000094d0b80009c00000000080a2019000000040a9001bf000009480b80009c00000000090a2019000000200a800270000009480b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000094d0ca0009c000024f40000213d000000010bb00190000024f40000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000020cf0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000020c70000413d000000000b00004b000020d10000613d000000000b080433000000000b0b004b000024fa0000613d000000000b0a0433000009540bb00197000000f80c900210000000000bbc019f000009560bb000410000000000ba04350000000309900210000000f80990008900000000029201cf000000ff0990008c000000000200201900000021098000390000000000290435000020ff0000013d000000400800043d000009530980009c000024f40000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000020ec0000413d000000000a080433000000000a0a004b000024fa0000613d000000f80a2002100000094c0b000041000000000202004b00000000020a001900000000020b6019000000000a090433000009540aa0019700000000022a019f0000000000290435000000400200043d0000002009200039000000000a010433000000000b0a004b0000210c0000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b000021050000413d00000000019a001900000000000104350000000009030433000000000a09004b000021190000613d000000000a000019000000000b1a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b9a004b000021120000413d000000000119001900000000000104350000000003040433000000000903004b000021260000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b0000211f0000413d000000000113001900000000000104350000000003050433000000000403004b000021330000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000934004b0000212c0000413d000000000113001900000000000104350000000003060433000000000403004b000021400000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000534004b000021390000413d000000000113001900000000000104350000000003070433000000000403004b0000214d0000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b000021460000413d000000000113001900000000000104350000000003080433000000000403004b0000215a0000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000534004b000021530000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000094d0350009c000024f40000213d0000000101100190000024f40000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000094c09000041000000000a16004b000000000a000019000000000a0980190000094c011001970000094c0b600197000000000c1b004b000000000900801900000000011b013f0000094c0110009c00000000010a00190000000001096019000000000101004b000024f20000c13d00000004010000290000000001160019000000000617034f000000000606043b0000094d0960009c000024f20000213d000000000968004900000020081000390000094c01000041000000000a98004b000000000a000019000000000a0120190000094c099001970000094c0b800197000000000c9b004b000000000100801900000000099b013f0000094c0990009c00000000010ac019000000000101004b000024f20000c13d000000010160008c000021b70000c13d000000000187034f000000000101043b000000010300008a0000094c06000041000000000331004b000000000300001900000000030620190000094c011001970000094c0710009c00000000060080190000094c011001670000094c0110009c000000000103001900000000010660190000006006000039000000000101004b000022030000c13d000009530150009c000024f40000213d0000004001500039000000400010043f000000200150003900000956030000410000000000310435000000010100003900000000001504350000000006050019000022030000013d000000380160008c000021e90000413d0000002001600270000009480360009c00000000030600190000000003012019000009480160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009530350009c000024f40000213d000000000771019f0000004001500039000000400010043f000000020170003900000000081504360000000001000031000000020910036700000000010000190000000503100210000000000a380019000000000339034f000000000303043b00000000003a0435000000010110003a000021d20000413d0000000001050433000000000101004b000024fa0000613d00000000010804330000095401100197000000f803700210000000000113019f00000958011001c700000000001804350000000301700210000000f80110008900000000011601cf000000210350003900000000001304350000000006050019000022030000013d000009530150009c000024f40000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000100001900000005031002100000000009370019000000000338034f000000000303043b0000000000390435000000010110003a000021f20000413d0000000001050433000000000101004b000024fa0000613d000000f80160021000000000030704330000095403300197000000000113019f0000094c0110016700000000001704350000000006050019000000400500043d000009530150009c000024f40000213d0000004001500039000000400010043f0000000101000039000300000001001d0000000007150436000000000100003100000002081003670000000001000019000000050a100210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010110003a0000220e0000413d0000000001050433000000000101004b000024fa0000613d0000000001070433000009540110019700000959011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000094c0c000041000000000d1b004b000000000d000019000000000d0c80190000094c011001970000094c0eb00197000000000f1e004b000000000c00801900000000011e013f0000094c0110009c00000000010d001900000000010c6019000000000101004b000024f20000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000094d0cb0009c000024f20000213d000000000cb8004900000020081000390000094c01000041000000000dc8004b000000000d000019000000000d0120190000094c0cc001970000094c0e800197000000000fce004b0000000001008019000000000cce013f0000094c0cc0009c00000000010dc019000000000101004b000024f20000c13d0000002001b0008c000024f20000413d000000000187034f000000000801043b000000800180008c000022980000413d0000008001800270000009550780009c000000000108a019000009550780009c00000000070000190000001007002039000000080b7001bf0000094d0c10009c00000000070b2019000000400b1002700000094d0c10009c00000000010b2019000000040b7001bf000009480c10009c00000000070b2019000000200b100270000009480c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000094d0d10009c000024f40000213d000000010cc00190000024f40000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d100272000022840000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b0000227c0000413d000000000100004b000022860000613d0000000001070433000000000101004b000024fa0000613d00000000010c04330000095401100197000000f803b00210000000000113019f000009560110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c0000000001030019000000000100201900000021037000390000000000130435000022b40000013d000000400700043d000009530170009c000024f40000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c10036700000000010000190000000503100210000000000d3b001900000000033c034f000000000303043b00000000003d0435000000010110003a000022a20000413d0000000001070433000000000101004b000024fa0000613d000000f8018002100000094c03000041000000000808004b000000000103601900000000030b04330000095403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000094c03000041000000000d1b004b000000000d000019000000000d0380190000094c011001970000094c0eb00197000000000f1e004b000000000300801900000000011e013f0000094c0110009c00000000010d00190000000001036019000000000101004b000024f20000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000094d01d0009c000024f20000213d0000000001dc00490000002003b000390000094c0c000041000000000e13004b000000000e000019000000000e0c20190000094c011001970000094c03300197000000000f13004b000000000c008019000000000113013f0000094c0110009c00000000010e001900000000010c6019000000000101004b000024f20000c13d0000004001d0008c000024f20000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c000023300000413d0000008001b002700000095503b0009c00000000010ba0190000095503b0009c0000000003000019000000100300203900000008083001bf0000094d0c10009c000000000308201900000040081002700000094d0c10009c000000000108201900000004083001bf000009480c10009c00000000030820190000002008100270000009480c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000094d0310009c000024f40000213d0000000103d00190000024f40000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e1002720000231c0000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b000023140000413d000000000100004b0000231e0000613d0000000001080433000000000101004b000024fa0000613d00000000010d04330000095401100197000000f803c00210000000000113019f000009560110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c00000000010300190000000001002019000000210380003900000000001304350000234c0000013d000000400800043d000009530180009c000024f40000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d1003670000000001000019000000050310021000000000093c001900000000033d034f000000000303043b0000000000390435000000010110003a0000233a0000413d0000000001080433000000000101004b000024fa0000613d000000f801b002100000094c0300004100000000090b004b000000000103601900000000030c04330000095403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000094c0300004100000000091a004b000000000900001900000000090380190000094c011001970000094c0da00197000000000e1d004b000000000300801900000000011d013f0000094c0110009c00000000010900190000000001036019000000000101004b000024f20000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000094d01d0009c000024f20000213d0000000001dc00490000002003a000390000094c09000041000000000c13004b000000000c000019000000000c0920190000094c011001970000094c03300197000000000e13004b0000000009008019000000000113013f0000094c0110009c00000000010c00190000000001096019000000000101004b000024f20000c13d0000004101d0008c000024fa0000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000094c0c000041000000000101043b000000f8011002700000001b0310008c000023870000613d000000000b000415000000050bb0008a000000200bb000c90000095b0c0000410000001c0110008c000025000000c13d000000400a00043d0000095301a0009c000024f40000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e1003670000000001000019000000050310021000000000093d001900000000033e034f000000000303043b0000000000390435000000010110003a000023910000413d00000000010a0433000000000101004b000024fa0000613d00000000010d043300000954011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000094c0300004100000000091f004b000000000900001900000000090380190000094c011001970000094c0cf00197000000000d1c004b000000000300801900000000011c013f0000094c0110009c00000000010900190000000001036019000000000101004b000024f20000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000094d03e0009c000024f20000213d0000000003eb004900000020011000390000094c09000041000000000b31004b000000000b000019000000000b0920190000094c033001970000094c01100197000000000f31004b0000000009008019000000000131013f0000094c0110009c00000000010b00190000000001096019000000000101004b000024f20000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000094d0c1001970000003801c0008c0000240a0000413d0000002001c002700000094803c0009c00000000030c001900000000030120190000094801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d0000095303b0009c000024f40000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e10036700000000010000190000000503100210000000000f3d001900000000033e034f000000000303043b00000000003f0435000000010110003a000023f40000413d00000000010b0433000000000101004b000024fa0000613d00000000010d04330000095401100197000000f803900210000000000113019f0000095a011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b000390000000000130435000024240000013d000000400b00043d0000095301b0009c000024f40000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d10036700000000010000190000000503100210000000000e39001900000000033d034f000000000303043b00000000003e0435000000010110003a000024140000413d00000000010b0433000000000101004b000024fa0000613d000000f801c0021000000000030904330000095403300197000000000131019f00000959011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000094c09000041000000000d13004b000000000d000019000000000d0980190000094c011001970000094c0e300197000000000f1e004b000000000900801900000000011e013f0000094c0110009c00000000010d00190000000001096019000000000101004b000024f20000c13d00000004010000290000000001130019000000000314034f000000000903043b0000094d0390009c000024f20000213d00000000039c0049000000200c1000390000094c0100004100000000043c004b000000000400001900000000040120190000094c033001970000094c0dc00197000000000e3d004b000000000100801900000000033d013f0000094c0330009c000000000104c019000000000101004b000024f20000c13d000000400300043d00000020043000390000095c01000041000400000004001d0000000000140435000000210d300039000000000e0b043300000000010e004b0000245e0000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b000024570000413d000000000bde001900000000000b0435000000000d02043300000000010d004b0000246b0000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b000024640000413d0000000002bd00190000000000020435000000000b06043300000000010b004b000024780000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b000024710000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c900272000024870000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b0000247f0000413d000000000106004b000024960000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000106004b000024a30000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b0000249c0000413d0000000002260019000000000002043500000000050a0433000000000105004b000024b00000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b000024a90000413d000000000225001900000000000204350000000005070433000000000105004b000024bd0000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b000024b60000413d000000000225001900000000000204350000000005080433000000000105004b000024ca0000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b000024c30000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000094d0410009c000024f40000213d0000000102200190000024f40000c13d000000400010043f00000948010000410000000404000029000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f0000000102200190000024f20000613d000000000101043b000000000001042d00000000010000190000251e00010430000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e0001043000002515002104230000000102000039000000000001042d0000000002000019000000000001042d0000251a002104230000000102000039000000000001042d0000000002000019000000000001042d0000251c000004320000251d0001042e0000251e00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d7000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff456e636f64696e6720756e737570706f7274656420747800000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f8080000000000000000000000000000000000000000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000006b656363616b3235362072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052b2bf42e5ab5127f48669ab36579badd217fbd10998091dbba6028927708cf2", + "bytecode": "0x000200000000000200110000000000020001000000010355000000000301001900000060053002700000079b0050019d0000008004000039000000400040043f0000079b0350019700000001022001900000006f0000c13d000000040230008c0000009f0000413d000000000201043b0000079d022001970000079e0220009c0000009f0000c13d0000000002000416000000000202004b0000009f0000c13d000000040230008a000000200620008c0000009f0000413d0000000406100370000000000d06043b0000079f06d0009c0000009f0000213d0000000002d20049000007a006000041000002600720008c00000000070000190000000007064019000007a002200197000000000802004b000000000600a019000007a00220009c000000000607c019000000000206004b0000009f0000c13d000000040cd000390000000002c1034f000000000202043b000000000602004b000000770000c13d000000000231034f0000010005c00039000000000451034f000000000404043b000000800640008c000000a10000413d0000008006400270000007a80740009c000000000604a019000007a80740009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a000000c108600039000000000778016f000000400070043f0000000207600039000000800070043f000000210760003900000005077002720000005d0000613d00000000080000190000000509800210000000000a92034f000000000a0a043b000000a0099000390000000000a904350000000108800039000000000978004b000000550000413d000000000700004b0000005f0000613d000000800700043d000000000707004b000001c10000613d000000a00700043d000007a707700197000000f808600210000000000778019f000007a907700041000000a00070043f0000000306600210000000f80660008900000000046401cf000000ff0660008c0000000004002019000000a10040043f000000ae0000013d0000000001000416000000000101004b0000009f0000c13d0000002001000039000001000010044300000120000004430000079c0100004100001e690001042e000000710620008c000000fb0000c13d000001c402d00039000000000221034f0000000006d30049000000230660008a000000000202043b000007a007000041000000000862004b00000000080000190000000008078019000007a006600197000007a009200197000000000a69004b0000000007008019000000000669013f000007a00660009c000000000708c019000000000607004b0000009f0000c13d0000000002c20019000000000621034f000000000606043b0000079f0760009c0000009f0000213d00000000076300490000002002200039000007a008000041000000000972004b00000000090000190000000009082019000007a007700197000007a00a200197000000000b7a004b000000000800801900000000077a013f000007a00770009c000000000809c019000000000708004b000002c10000613d000000000100001900001e6a00010430000000f806400210000007a007000041000000000404004b000000000706c019000000c004000039000000400040043f0000000104000039000000800040043f0000000004200350000000000404043b000007a704400197000000000474019f000000a00040043f000d0000000d001d000c0000000c001d000000400400043d000000600550008a000000000651034f000000000606043b000000800760008c000001570000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000884043600000021097000390000000509900272000000e90000613d000000000a000019000000050ba00210000000000cb80019000000000bb2034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000000e10000413d000000000900004b000000eb0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107400039000001d70000013d000000020120008c0000015d0000c13d000d0000000d001d000c0000000c001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c000002db0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f000000020150003900000000061304360000000101000367000000000200003100000021075000390000000507700272000001450000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000013d0000413d000000000700004b000001470000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000002ee0000013d000007a60740009c000001b90000a13d000007c30100004100000000001004350000004101000039000001c40000013d000000010120008c000001c70000c13d000d0000000d001d000c0000000c001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c0000033c0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f000000020150003900000000061304360000000101000367000000000200003100000021075000390000000507700272000001a70000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000019f0000413d000000000700004b000001a90000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c000000000400201900000021053000390000034f0000013d0000004007400039000000400070043f000000010700003a00000000077404360000000008200350000000000808043b0000000000870435000001d10000c13d000007c30100004100000000001004350000003201000039000000040010043f000007c40100004100001e6a00010430000007a101000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000007a201000041000000c40010043f000007a30100004100001e6a00010430000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400550008a000000000651034f000000400500043d000000000606043b000000800760008c000002230000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000885043600000021097000390000000509900272000002110000613d000000000a000019000000050ba00210000000000cb80019000000000bb2034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002090000413d000000000900004b000002130000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000002330000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000010700003a00000000077504360000000008200350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400b00043d0000002006b000390000000007040433000000000807004b000002410000613d000000000800001900000000096800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000978004b0000023a0000413d000000000467001900000000000404350000000006050433000000000706004b0000024e0000613d000000000700001900000000084700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000002470000413d000000000446001900000000000404350000000004b40049000000200540008a00000000005b04350000001f04400039000a0020000000920000000a0440017f00090000000b001d0000000005b40019000000000445004b00000000040000190000000104004039000b00000005001d0000079f0550009c000001590000213d0000000104400190000001590000c13d0000000b04000029000000400040043f000007a60440009c000001590000213d0000000d070000290000004404700039000000000441034f000000000404043b0000000b080000290000004005800039000000400050043f0000002005800039000007aa060000410000000000650435000000150500003900000000005804350000006004400210000000210580003900000000004504350000012404700039000000000541034f000000400600043d000800000006001d000000000505043b000000800650008c000005510000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c000000010660203900000041076000390000000a0770017f0000000807700029000000080870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000808000029000000000778043600000021086000390000000508800272000002ad0000613d0000000009000019000000050a900210000000000ba70019000000000aa2034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000002a50000413d000000000800004b000002af0000613d00000008080000290000000008080433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000008060000290000002106600039000005630000013d000000000726001a0000000006000414000018670000413d000000000373004b000018670000413d000d0000000d001d000c0000000c001d000007b00360009c000003fb0000413d0000004401400039000007bf020000410000000000210435000000240140003900000008020000390000000000210435000007a10100004100000000001404350000000401400039000000200200003900000000002104350000079b010000410000079b0240009c00000000040180190000004001400210000007b6011001c700001e6a00010430000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400400043d0000000d050000290000010406500039000000000561034f000000000505043b000000800750008c0000039d0000413d0000008007500270000007a80850009c000000000705a019000007a80850009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008840436000000210970003900000005099002720000032a0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000003220000413d000000000900004b0000032c0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000057501cf000000ff0770008c00000000050020190000002107400039000003ae0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400400043d0000000d050000290000010406500039000000000561034f000000000505043b000000800750008c000004d80000413d0000008007500270000007a80850009c000000000705a019000007a80850009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008840436000000210970003900000005099002720000038b0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000003830000413d000000000900004b0000038d0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000057501cf000000ff0770008c00000000050020190000002107400039000004e90000013d000007a60740009c000001590000213d0000004007400039000000400070043f000000000821034f000000010700003a00000000077404360000000008800350000000000808043b0000000000870435000001c10000613d000000f809500210000007a00a000041000000000505004b000000000a09c019000007a7058001970000000005a5019f0000000000570435000000400500043d000000400760008a000000000671034f000000000606043b000000800860008c000005aa0000413d0000008008600270000007a80960009c000000000806a019000007a80960009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000003e90000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000003e10000413d000000000a00004b000003eb0000613d000000000a050433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000005bb0000013d0000079b02200197000000000121034f00000000027500490000079b0220019700000000012103df000000c002600210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b053001970000000102200190000005360000613d0000003f02500039000007b302200197000000400600043d0000000002260019000000000362004b000000000300001900000001030040390000079f0420009c000001590000213d0000000103300190000001590000c13d000000400020043f0000000004560436000000010200036700000000030000310000001f075000390000000507700272000004270000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000041f0000413d000000000700004b000004290000613d0000001f0750018f0000000505500272000004350000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b0000042d0000413d000000000807004b000004440000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c00000c590000c13d0000000d060000290000000001630049000000230510008a000b02040060003d0000000b01200360000000000101043b000007a006000041000000000751004b00000000070000190000000007068019000007a005500197000007a008100197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c050000290000009f0000c13d0000000004040433000a00000004001d0000000001510019000000000412034f000000000504043b0000079f0450009c0000009f0000213d000000050450021000000000034300490000002006100039000007a001000041000000000736004b00000000070000190000000007012019000007a003300197000007a008600197000000000938004b0000000001008019000000000338013f000007a00330009c000000000107c019000000000101004b0000009f0000c13d000000400100043d0000002003100039000007b405500198000004800000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000004780000413d000000000200004b000004820000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b000000000400001900000001040040390000079f0520009c000001590000213d0000000104400190000001590000c13d000000400020043f0000079b020000410000079b0430009c0000000003028019000000400330021000000000010104330000079b0410009c00000000010280190000006001100210000000000131019f00000000030004140000079b0430009c0000000003028019000000c002300210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000000c0a0000290000000d030000290000009f0000613d00000000020000310000000003320049000000230530008a0000000b0300002900000020043000390000000103000367000000000443034f000000000404043b000007a006000041000000000754004b00000000070000190000000007068019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000101043b000b00000001001d000000000106004b0000009f0000c13d0000000001a40019000000000413034f000000000404043b0000079f0540009c0000009f0000213d00000000054200490000002001100039000007a006000041000000000751004b00000000070000190000000007062019000007a005500197000007a008100197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000009f0000c13d000000000514001a0000000004000414000018670000413d000000000652004b000018670000413d000007b00640009c00000b610000413d000000400400043d000002ca0000013d000007a60740009c000001590000213d0000004007400039000000400070043f000000000821034f000000010700003a00000000077404360000000008800350000000000808043b0000000000870435000001c10000613d000000f809500210000007a00a000041000000000505004b000000000a09c019000007a7058001970000000005a5019f0000000000570435000000400500043d000000600660008a000000000761034f000000000707043b000000800870008c000006080000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000005240000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000051c0000413d000000000a00004b000005260000613d000000000a050433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c00000000070020190000002108500039000006190000013d0000001f0350018f0000000502500272000005410000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b0000053a0000413d000000000403004b0000054f0000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f0000000000120435000000600150021000001e6a000104300000000806000029000007a60660009c000001590000213d00000008070000290000004006700039000000400060043f000000010600003a00000000066704360000000007200350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f00000000005604350000000c0b0000290000000005b30049000000a006400039000000000461034f000000000404043b0000001f0550008a000007a007500197000007a008400197000007a009000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000854004b0000000009004019000007a00770009c000000000a09c01900000000070a004b0000009f0000c13d0000000008b40019000000000781034f000000000707043b0000079f0970009c0000009f0000213d00000000097300490000002008800039000007a00a000041000000000b98004b000000000b000019000000000b0a2019000007a009900197000007a00c800197000000000d9c004b000000000a00801900000000099c013f000007a00990009c000000000a0bc01900000000090a004b0000009f0000c13d000000010970008c000007ab0000c13d000000000281034f000000000202043b000000010700008a000007a008000041000000000772004b00000000070000190000000007082019000007a002200197000007a00920009c0000000008008019000007a002200167000007a00220009c000000000807c019000700600000003d000000000208004b000007e70000c13d000000400200043d000700000002001d000007a60220009c000001590000213d00000007080000290000004002800039000000400020043f0000002002800039000007a907000041000000000072043500000001020000390000000000280435000007e70000013d000007a60850009c000001590000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a600210000007a00b000041000000000606004b000000000b0ac019000007a7069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c000006660000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb00272000005f60000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000005ee0000413d000000000b00004b000005f80000613d000000000b060433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109600039000006770000013d000007a60850009c000001590000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c000006c50000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000006540000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b0000064c0000413d000000000b00004b000006560000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000006d60000013d000007a60960009c000001590000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400800043d000b0040007000920000000b09100360000000000909043b000000800a90008c000007360000413d000000800a900270000007a80b90009c000000000a09a019000007a80b90009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000006b20000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b000006aa0000413d000000000700004b000006b40000613d0000000007080433000000000707004b000001c10000613d00000000070b0433000007a707700197000000f80ca0021000000000077c019f000007a90770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c000000000900201900000021078000390000000000970435000007480000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400900043d000007a60890009c000001590000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000007aa0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000b00000006001d000000800a60008c0000089f0000413d0000000b06000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000007230000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b0000071b0000413d000000000600004b000007250000613d0000000006080433000000000606004b000001c10000613d00000000060b0433000007a706600197000000f80ca0021000000000066c019f000007a90660004100000000006b04350000000306a00210000000f8066000890000000b0a6001ef000000ff0660008c000000000a00201900000021068000390000000000a60435000008b20000013d000007a60780009c000001590000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba0435000001c10000613d000000f807900210000007a00c000041000000000909004b000000000c07c019000007a707b001970000000007c7019f00000000007a0435000000400a00043d000007a607a0009c000001590000213d0000000b0c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a00039000007aa0b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000b00000007001d000000800b70008c000009560000413d0000000b07000029000000800b700270000007a80c70009c000000000b07a019000007a80c70009c000000000c000019000000100c002039000000080dc001bf0000079f0eb0009c000000000d0ca019000000400cb002700000079f0eb0009c000000000c0ba019000000040ed001bf0000079b0bc0009c000000000e0da019000000200dc002700000079b0bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000a00000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000079f0ec0009c000001590000213d000000010dd00190000001590000c13d0000004000c0043f0000000a07000029000000020c700039000000000cc90436000000210d700039000000050dd00272000007970000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b0000078f0000413d000000000700004b000007990000613d0000000007090433000000000707004b000001c10000613d00000000070c0433000007a7077001970000000a0d000029000000f80bd0021000000000077b019f000007a90770004100000000007c04350000000307d00210000000f8077000890000000b0b7001ef000000ff0770008c000000000b00201900000021079000390000000000b70435000009690000013d000000400800043d000700000008001d000000380870008c000007d60000413d00000020097002700000079b0870009c000000000907a0190000079b0870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000070a000029000007a60aa0009c000001590000213d000000000898019f000000070a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000002200350000000000202043b0000000000290435000001c10000613d000007a702200197000000f80a80021000000000022a019f000007ab022001c700000000002904350000000302800210000000f80220015f00000000022701cf000000070700002900000021077000390000000000270435000007e70000013d0000000708000029000007a60880009c000001590000213d00000007090000290000004008900039000000400080043f000000010800003a00000000088904360000000002200350000000000202043b0000000000280435000001c10000613d000000f807700210000007a702200197000000000272019f000007a0022001670000000000280435000000800260008a000000000621034f0000006002000039000000000606043b000000000606004b000008480000c13d000007a006000041000000000754004b00000000070000190000000007068019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c050000290000009f0000c13d00000009060000290000000006060433000000800700043d0000000b08000029000000000808043300000008090000290000000009090433000000070a000029000000000a0a04330000000005540019000000000451034f000000000404043b0000079f0b40009c0000009f0000213d000000000b4300490000002005500039000007a00c000041000000000db5004b000000000d000019000000000d0c2019000007a00bb00197000007a00e500197000000000fbe004b000000000c008019000000000bbe013f000007a00bb0009c000000000c0dc019000000000b0c004b0000009f0000c13d0000000006760019000000000686001900000000069600190000000006a60019000000000646001900000000070204330000000006760019000000400700043d0000079f06600197000000380860008c00000a530000413d00000020096002700000079b0860009c000000000906a0190000079b0860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a70009c000001590000213d000000000898019f0000004009700039000000400090043f000000000931034f000000020380003a00000000033704360000000009900350000000000909043b0000000000930435000001c10000613d000007a709900197000000f80a80021000000000099a019f000007ad099001c700000000009304350000000303800210000000f80330015f00000000033601cf0000002106700039000000000036043500000a630000013d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400400043d000000000201043b000000800120008c00000a1a0000413d0000008001200270000007a80320009c000000000102a019000007a80320009c0000000003000019000000100300203900000008053001bf0000079f0610009c000000000503a01900000040031002700000079f0610009c000000000301a01900000004015001bf0000079b0630009c000000000105a01900000020063002700000079b0530009c000000000603a01900000002051001bf0000ffff0360008c000000000501a0190000001001600270000000000106a019000000ff0110008c000000010550203900000041015000390000000a0110017f0000000001140019000000000341004b000000000300001900000001030040390000079f0610009c000001590000213d0000000103300190000001590000c13d000000400010043f0000000201500039000000000614043600000001010003670000000003000031000000210750003900000005077002720000088d0000613d000000000831034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000008850000413d000000000700004b0000088f0000613d0000000007040433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000a2d0000013d000007a60680009c000001590000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba0435000001c10000613d0000000b0d000029000000f806d00210000007a00c000041000000000d0d004b000000000c06c019000007a706b001970000000006c6019f00000000006a0435000000400600043d000000200a600039000000000b030433000000000c0b004b000008bf0000613d000000000c000019000000000dac0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dbc004b000008b80000413d0000000003ab00190000000000030435000000000a040433000000000b0a004b000008cc0000613d000000000b000019000000000c3b0019000000200bb00039000000000d4b0019000000000d0d04330000000000dc0435000000000cab004b000008c50000413d00000000033a001900000000000304350000000004050433000000000a04004b000008d90000613d000000000a000019000000000b3a0019000000200aa00039000000000c5a0019000000000c0c04330000000000cb0435000000000b4a004b000008d20000413d000000000334001900000000000304350000000004070433000000000504004b000008e60000613d0000000005000019000000000a3500190000002005500039000000000b750019000000000b0b04330000000000ba0435000000000a45004b000008df0000413d000000000334001900000000000304350000000004090433000000000504004b000008f30000613d000000000500001900000000073500190000002005500039000000000a950019000000000a0a04330000000000a70435000000000745004b000008ec0000413d000000000334001900000000000304350000000004080433000000000504004b000009000000613d000000000500001900000000073500190000002005500039000000000985001900000000090904330000000000970435000000000745004b000008f90000413d000000000334001900000000000304350000000003630049000000200430008a00000000004604350000001f04300039000000200300008a000000000434016f0000000007640019000000000447004b000000000400001900000001040040390000079f0570009c000001590000213d0000000104400190000001590000c13d000000400070043f0000000d05000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000007a008000041000000000954004b00000000090000190000000009088019000007a005500197000007a00a400197000000000b5a004b000000000800801900000000055a013f000007a00550009c000000000809c019000000000508004b0000000c050000290000009f0000c13d0000000005540019000000000451034f000000000404043b0000079f0840009c0000009f0000213d00000000084200490000002005500039000007a009000041000000000a85004b000000000a000019000000000a092019000007a008800197000007a00b500197000000000c8b004b000000000900801900000000088b013f000007a00880009c00000000090ac019000000000809004b0000009f0000c13d000000010840008c00000c6b0000c13d000000000851034f000000000808043b000000010900008a000007a00a000041000000000998004b000000000900001900000000090a2019000007a008800197000007a00b80009c000000000a008019000007a008800167000007a00880009c000000000a09c019000000600800003900000000090a004b00000ce70000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a909000041000000000098043500000001080000390000000000870435000000000807001900000ce70000013d000007a60790009c000001590000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb0435000001c10000613d0000000b0e000029000000f807e00210000007a00d000041000000000e0e004b000000000d07c019000007a707c001970000000007d7019f00000000007b0435000000400700043d000000200b700039000000000c030433000000000d0c004b000009760000613d000000000d000019000000000ebd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ecd004b0000096f0000413d0000000003bc00190000000000030435000000000b040433000000000c0b004b000009830000613d000000000c000019000000000d3c0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dbc004b0000097c0000413d00000000033b001900000000000304350000000004050433000000000b04004b000009900000613d000000000b000019000000000c3b0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b000009890000413d000000000334001900000000000304350000000004060433000000000504004b0000099d0000613d0000000005000019000000000b3500190000002005500039000000000c650019000000000c0c04330000000000cb0435000000000b45004b000009960000413d000000000334001900000000000304350000000004080433000000000504004b000009aa0000613d000000000500001900000000063500190000002005500039000000000b850019000000000b0b04330000000000b60435000000000645004b000009a30000413d0000000003340019000000000003043500000000040a0433000000000504004b000009b70000613d0000000005000019000000000635001900000020055000390000000008a5001900000000080804330000000000860435000000000645004b000009b00000413d000000000334001900000000000304350000000004090433000000000504004b000009c40000613d000000000500001900000000063500190000002005500039000000000895001900000000080804330000000000860435000000000645004b000009bd0000413d000000000334001900000000000304350000000003730049000000200430008a00000000004704350000001f04300039000000200300008a000000000434016f0000000006740019000000000446004b000000000400001900000001040040390000079f0560009c000001590000213d0000000104400190000001590000c13d000000400060043f0000000d05000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000007a008000041000000000954004b00000000090000190000000009088019000007a005500197000007a00a400197000000000b5a004b000000000800801900000000055a013f000007a00550009c000000000809c019000000000508004b0000000c050000290000009f0000c13d0000000005540019000000000451034f000000000404043b0000079f0840009c0000009f0000213d00000000084200490000002005500039000007a009000041000000000a85004b000000000a000019000000000a092019000007a008800197000007a00b500197000000000c8b004b000000000900801900000000088b013f000007a00880009c00000000090ac019000000000809004b0000009f0000c13d000000010840008c00000cae0000c13d000000000851034f000000000808043b000000010900008a000007a00a000041000000000998004b000000000900001900000000090a2019000007a008800197000007a00b80009c000000000a008019000007a008800167000007a00880009c000000000a09c019000000600800003900000000090a004b00000d870000c13d000007a60860009c000001590000213d0000004008600039000000400080043f0000002008600039000007a909000041000000000098043500000001080000390000000000860435000000000806001900000d870000013d000007a60140009c000001590000213d0000004001400039000000400010043f000000010100003a000000000514043600000000030000310000000101000367000000000631034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807200210000007a008000041000000000202004b000000000807c019000007a702600197000000000282019f0000000000250435000000400200043d00000020052000390000000006040433000000000706004b00000a3b0000613d000000000700001900000000085700190000002007700039000000000947001900000000090904330000000000980435000000000867004b00000a340000413d0000000004560019000007c005000041000000000054043500000000042400490000001e0540008a000000000052043500000021044000390000000a0540017f0000000004250019000000000554004b000000000500001900000001050040390000079f0640009c000001590000213d0000000105500190000001590000c13d0000000d06000029000001c405600039000000400040043f000000000451034f0000000005630049000000230550008a000000000404043b000007ed0000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000831034f000000010300003a00000000033704360000000008800350000000000808043b0000000000830435000001c10000613d000007a708800197000000f806600210000000000686019f000007ac066000410000000000630435000000400300043d00000020063000390000000008070433000000000908004b00000a700000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b00000a690000413d00000000076800190000000000070435000000800800043d000000000908004b00000a7d0000613d0000000009000019000000000a790019000000a00b900039000000000b0b04330000000000ba04350000002009900039000000000a89004b00000a760000413d00000000077800190000000000070435000000090c00002900000000080c0433000000000908004b00000a8b0000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000a840000413d000000000778001900000000000704350000000b0c00002900000000080c0433000000000908004b00000a990000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000a920000413d00000000077800190000000000070435000000080c00002900000000080c0433000000000908004b00000aa70000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000aa00000413d00000000077800190000000000070435000000070c00002900000000080c0433000000000908004b00000ab50000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000aae0000413d000000000551034f00000000017800190000001f0740018f0000000000010435000000050840027200000ac40000613d0000000009000019000000050a900210000000000ba10019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000abc0000413d000000000907004b00000ad30000613d0000000508800210000000000585034f00000000088100190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f0000000000580435000000000141001900000000000104350000000004020433000000000504004b00000ae00000613d000000000500001900000000071500190000002005500039000000000825001900000000080804330000000000870435000000000745004b00000ad90000413d000000000114001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000a0210017f0000000001320019000000000221004b000000000200001900000001020040390000079f0410009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b010000410000079b0260009c0000000006018019000000400260021000000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000000c030000290000000d020000290000009f0000613d000d00000002001d0000000102000367000c00000003001d000000000332034f000000000101043b000b00000001001d000000000103043b000000710310008c00000d220000c13d0000000c09000029000001e001900039000000000312034f00000000010000310000000d0410006a000000230440008a000000000303043b000007a005000041000000000643004b00000000060000190000000006058019000007a004400197000007a007300197000000000847004b0000000005008019000000000447013f000007a00440009c000000000506c019000000000405004b0000009f0000c13d0000000003930019000000000232034f000000000202043b0000079f0420009c0000009f0000213d00000000042100490000002001300039000007a003000041000000000541004b00000000050000190000000005032019000007a004400197000007a006100197000000000746004b0000000003008019000000000446013f000007a00440009c000000000305c019000000000303004b0000009f0000c13d1e681dc60000040f000000400200043d00000040032000390000000000130435000000400100003900000000011204360000000b030000290000000000310435000007c50320009c000001590000213d0000006003200039000000400030043f0000079b030000410000079b0410009c0000000001038019000000400110021000000000020204330000079b0420009c00000000020380190000006002200210000000000112019f00000000020004140000079b0420009c0000000002038019000000c002200210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b000000400200043d00000020032000390000000b04000029000000000043043500000000001204350000079b010000410000079b0320009c00000000020180190000004001200210000007c6011001c700001e690001042e0000079b01100197000000000113034f00000000025200490000079b0220019700000000012103df000000c002400210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b04300197000000010220019000000c930000613d0000003f02400039000007b302200197000000400500043d0000000002250019000000000352004b000000000300001900000001030040390000079f0620009c000001590000213d0000000103300190000001590000c13d000000400020043f000000000245043600000001030003670000001f06400039000000050660027200000b8c0000613d000000000730036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b00000b840000413d000000000600004b00000b8e0000613d0000001f0640018f000000050440027200000b9a0000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000847004b00000b920000413d000000000706004b00000ba90000613d0000000504400210000000000141034f00000000044200190000000306600210000000000704043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001404350000000001050433000000200110008c00000c590000c13d0000000d0b0000290000006401b00039000000000113034f0000004404b00039000000000543034f0000002404b00039000000000443034f0000012406b00039000000000663034f0000010407b00039000000000773034f000000e408b00039000000000883034f000000c409b00039000000000993034f000000a40ab00039000000000aa3034f000000840bb00039000000000bb3034f0000000c03300360000000000303043b000000000404043b000000000505043b000000000c01043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b000000000606043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a0021000390000000b0d0000290000000000d2043500000180021000390000000a0d0000290000000000d2043500000160021000390000000000620435000001400210003900000000007204350000012002100039000000000082043500000100021000390000000000920435000000e0021000390000000000a20435000000c0021000390000000000b20435000000a0021000390000000000c204350000008002100039000000000052043500000060021000390000000000420435000000400210003900000000003204350000002002100039000007b7030000410000000000320435000001c0030000390000000000310435000007b80310009c000001590000213d000001e003100039000000400030043f0000079b040000410000079b0320009c0000000002048019000000400220021000000000010104330000079b0310009c00000000010480190000006001100210000000000121019f00000000020004140000079b0320009c0000000002048019000000c002200210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b000a00000001001d000000400100043d000b00000001001d000007a401000041000000000010043900000000010004140000079b0210009c0000079b01008041000000c001100210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d0000000b040000290000002002400039000000000101043b000007b9030000410000000000320435000000800340003900000000001304350000006001400039000007ba0300004100000000003104350000004001400039000007bb03000041000000000031043500000080010000390000000000140435000007bc0140009c000001590000213d0000000b04000029000000a001400039000000400010043f0000079b010000410000079b0320009c0000000002018019000000400220021000000000030404330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000301043b000000400100043d00000042021000390000000a0400002900000000004204350000002002100039000007bd0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000007be0310009c000001590000213d0000008003100039000000400030043f0000079b030000410000079b0420009c0000000002038019000000400220021000000000010104330000079b0410009c00000000010380190000006001100210000000000121019f00000000020004140000079b0420009c0000000002038019000000c002200210000000000112019f00000afe0000013d000000400100043d0000004402100039000007b503000041000000000032043500000024021000390000001f030000390000000000320435000007a10200004100000000002104350000000402100039000000200300003900000000003204350000079b020000410000079b0310009c00000000010280190000004001100210000007b6011001c700001e6a00010430000000380840008c00000cd60000413d00000020094002700000079b0840009c000000000904a0190000079b0840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a70009c000001590000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000007a70aa00197000000f80b800210000000000aab019f000007ab0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf00000021097000390000000000890435000000000807001900000ce70000013d0000001f0340018f000000050240027200000c9e0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000c970000413d000000000503004b00000cac0000613d00000003033002100000000502200210000000000502043300000000053501cf000000000535022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000120435000000600140021000001e6a00010430000000380840008c00000d760000413d00000020094002700000079b0840009c000000000904a0190000079b0840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a60009c000001590000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000007a70aa00197000000f80b800210000000000aab019f000007ab0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf00000021096000390000000000890435000000000806001900000d870000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a400210000007a7099001970000000009a9019f000007a00990016700000000009804350000000008070019000000400700043d000007a60970009c000001590000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b90435000001c10000613d000007a702b00197000007ac0a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d0000079f09900197000000380d90008c00000e1e0000413d000000200d9002700000079b0c90009c000000000d09a0190000079b0c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000007a60ea0009c000001590000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba0435000001c10000613d000000f80bc0021000000000022b019f000007ad022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a00039000000000029043500000e2b0000013d000000000301004b00000dc20000c13d000000400100043d000a00000001001d0000000c010000290000010004100039000000000142034f000000000301043b000000800130008c00000e900000413d0000008001300270000007a80530009c000000000103a019000007a80530009c0000000005000019000000100500203900000008065001bf0000079f0710009c000000000605a01900000040051002700000079f0710009c000000000501a01900000004016001bf0000079b0750009c000000000106a01900000020065002700000079b0750009c000000000605a01900000002051001bf0000ffff0760008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004106500039000000000116016f0000000a011000290000000a0610006c000000000600001900000001060040390000079f0710009c000001590000213d0000000106600190000001590000c13d000000400010043f00000002015000390000000a06000029000000000616043600000000010000310000002107500039000000050770027200000d620000613d000000000812034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000d5a0000413d000000000700004b00000d640000613d0000000a070000290000000007070433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000000a05000029000000210550003900000ea40000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a400210000007a7099001970000000009a9019f000007a00990016700000000009804350000000008060019000000400600043d000007a60960009c000001590000213d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b90435000001c10000613d000007a702b00197000007ac0a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d0000079f09900197000000380d90008c00000f4d0000413d000000200d9002700000079b0c90009c000000000d09a0190000079b0c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000007a60ea0009c000001590000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba0435000001c10000613d000000f80bc0021000000000022b019f000007ad022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a00039000000000029043500000f5a0000013d000000020210008c00000ef10000c13d0000000001000415000a00000001001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c00000fd00000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f00000002015000390000000006130436000000010100036700000000020000310000002107500039000000050770027200000e0c0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000e040000413d000000000700004b00000e0e0000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c0000000004002019000000210530003900000fe30000013d000007a60da0009c000001590000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b000001c10000613d000000f809900210000000000229019f000007ac0220004100000000002d0435000000400200043d0000002009200039000007ae0b0000410000000000b90435000000210b200039000000000c0a0433000000000d0c004b00000e3b0000613d000000000d000019000000000ebd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ecd004b00000e340000413d000000000abc001900000000000a0435000000000b060433000000000c0b004b00000e480000613d000000000c000019000000000dac0019000000200cc00039000000000e6c0019000000000e0e04330000000000ed0435000000000dbc004b00000e410000413d0000000006ab00190000000000060435000000000a080433000000000b0a004b00000e550000613d000000000b000019000000000c6b0019000000200bb00039000000000d8b0019000000000d0d04330000000000dc0435000000000cab004b00000e4e0000413d000000000551034f00000000016a00190000001f0640018f0000000000010435000000050840027200000e640000613d000000000a000019000000050ba00210000000000cb10019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000e5c0000413d000000000a06004b00000e730000613d0000000508800210000000000585034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f0000000000580435000000000141001900000000000104350000000004070433000000000504004b00000e800000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00000e790000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f01100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000079f0410009c000001590000213d000000010330019000000fbe0000613d000001590000013d0000000a01000029000007a60110009c000001590000213d0000000a050000290000004001500039000000400010043f000000010100003a00000000051504360000000001000031000000000612034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807300210000007a008000041000000000303004b000000000807c019000007a703600197000000000383019f0000000000350435000000400300043d000000600440008a000000000542034f000000000505043b000000800650008c000010310000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007730019000000000837004b000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f000000020760003900000000077304360000002108600039000000050880027200000edf0000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000ed70000413d000000000800004b00000ee10000613d0000000008030433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106300039000010420000013d000000010110008c00000fc90000c13d0000000001000415000a00000001001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c0000108f0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f00000002015000390000000006130436000000010100036700000000020000310000002107500039000000050770027200000f3b0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f330000413d000000000700004b00000f3d0000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000010a20000013d000007a60da0009c000001590000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b000001c10000613d000000f809900210000000000229019f000007ac0220004100000000002d0435000000400200043d0000002009200039000007af0b0000410000000000b90435000000210b200039000000000c0a0433000000000d0c004b00000f6a0000613d000000000d000019000000000ebd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ecd004b00000f630000413d000000000abc001900000000000a0435000000000b070433000000000c0b004b00000f770000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b00000f700000413d0000000007ab00190000000000070435000000000a080433000000000b0a004b00000f840000613d000000000b000019000000000c7b0019000000200bb00039000000000d8b0019000000000d0d04330000000000dc0435000000000cab004b00000f7d0000413d000000000551034f00000000017a00190000001f0740018f0000000000010435000000050840027200000f930000613d000000000a000019000000050ba00210000000000cb10019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000f8b0000413d000000000a07004b00000fa20000613d0000000508800210000000000585034f00000000088100190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f0000000000580435000000000141001900000000000104350000000004060433000000000504004b00000faf0000613d000000000500001900000000071500190000002005500039000000000865001900000000080804330000000000870435000000000745004b00000fa80000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f01100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000079f0410009c000001590000213d0000000103300190000001590000c13d000000400010043f0000079b010000410000079b0390009c0000000009018019000000400390021000000000020204330000079b0420009c00000000020180190000006002200210000000000232019f00000af90000013d000000400100043d0000004402100039000007c10300004100000000003204350000002402100039000000130300003900000c5f0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400500043d0000000d040000290000010404400039000000000641034f000000000606043b000000800760008c000010f00000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008850436000000210970003900000005099002720000101f0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000010170000413d000000000900004b000010210000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000011010000013d000007a60630009c000001590000213d0000004006300039000000400060043f000000000712034f000000010600003a00000000066304360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400440008a000000000542034f000000400400043d000000000505043b000000800650008c0000114e0000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000007740436000000210860003900000005088002720000107d0000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000010750000413d000000000800004b0000107f0000613d0000000008040433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000021064000390000115f0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400500043d0000000d040000290000010404400039000000000641034f000000000606043b000000800760008c000011ef0000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000885043600000021097000390000000509900272000010de0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000010d60000413d000000000900004b000010e00000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000012000000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000000821034f000000010700003a00000000077504360000000008800350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400600043d000000400440008a000000000741034f000000000707043b000000800870008c0000124d0000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009960019000000000a69004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009960436000000210a800039000000050aa002720000113c0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000011340000413d000000000a00004b0000113e0000613d000000000a060433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c000000000700201900000021086000390000125e0000013d000007a60640009c000001590000213d0000004006400039000000400060043f000000000712034f000000010600003a00000000066404360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400500043d000900000005001d00000020055000390000000006030433000000000706004b0000116e0000613d000000000700001900000000085700190000002007700039000000000937001900000000090904330000000000980435000000000867004b000011670000413d000000000356001900000000000304350000000005040433000000000605004b0000117b0000613d000000000600001900000000073600190000002006600039000000000846001900000000080804330000000000870435000000000756004b000011740000413d0000000003350019000000000003043500000009050000290000000003530049000000200430008a00000000004504350000001f033000390007002000000092000000070330017f0000000004530019000000000334004b00000000030000190000000103004039000800000004001d0000079f0440009c000001590000213d0000000103300190000001590000c13d0000000803000029000000400030043f000007a60330009c000001590000213d0000000d060000290000004403600039000000000332034f000000000303043b00000008070000290000004004700039000000400040043f0000002004700039000007aa050000410000000000540435000000150400003900000000004704350000006003300210000000210470003900000000003404350000012403600039000000000432034f000000400500043d000600000005001d000000000404043b000000800540008c000013090000413d0000008005400270000007a80640009c000000000504a019000007a80640009c0000000006000019000000100600203900000008076001bf0000079f0850009c000000000706a01900000040065002700000079f0850009c000000000605a01900000004087001bf0000079b0560009c000000000807a01900000020076002700000079b0560009c000000000706a01900000002058001bf0000ffff0670008c000000000508a0190000001006700270000000000607a019000000ff0660008c00000001055020390000004106500039000000070660017f0000000606600029000000060760006c000000000700001900000001070040390000079f0860009c000001590000213d0000000107700190000001590000c13d000000400060043f00000002065000390000000607000029000000000667043600000021075000390000000507700272000011db0000613d000000000812034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000011d30000413d000000000700004b000011dd0000613d00000006070000290000000007070433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c0000000004002019000000060500002900000021055000390000131c0000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000000821034f000000010700003a00000000077504360000000008800350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400600043d000000600440008a000000000741034f000000000707043b000000800870008c000012ab0000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009960019000000000a69004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009960436000000210a800039000000050aa002720000123b0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000012330000413d000000000a00004b0000123d0000613d000000000a060433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c00000000070020190000002108600039000012bc0000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000200440008a000000000841034f000000000808043b000000800980008c000013630000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000012990000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000012910000413d000000000b00004b0000129b0000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000013740000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000400440008a000000000841034f000000000808043b000000800980008c000013c20000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000012f70000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000012ef0000413d000000000b00004b000012f90000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000013d30000013d0000000605000029000007a60550009c000001590000213d00000006070000290000004005700039000000400050043f000000000612034f000000010500003a00000000055704360000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f00000000004504350000000c0a0000290000000006a10049000000a004300039000000000342034f000000000503043b0000001f0360008a000007a006300197000007a007500197000007a008000041000000000967004b00000000090000190000000009084019000000000667013f000000000735004b0000000008004019000007a00660009c000000000908c019000000000609004b0000009f0000c13d0000000006a50019000000000562034f000000000505043b0000079f0750009c0000009f0000213d00000000075100490000002006600039000007a008000041000000000976004b00000000090000190000000009082019000007a007700197000007a00a600197000000000b7a004b000000000800801900000000077a013f000007a00770009c000000000809c019000000000708004b0000009f0000c13d000000010750008c000015600000c13d000000000562034f000000000505043b000000010600008a000007a007000041000000000665004b00000000060000190000000006072019000007a005500197000007a00850009c0000000007008019000007a005500167000007a00550009c000000000706c019000500600000003d000000000507004b000016630000c13d000000400500043d000500000005001d000007a60550009c000001590000213d00000005070000290000004005700039000000400050043f0000002005700039000007a906000041000000000065043500000001050000390000000000570435000016630000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400800043d00090040004000920000000909100360000000000909043b000000800a90008c000014330000413d000000800a900270000007a80b90009c000000000a09a019000007a80b90009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000013af0000613d000000000d21034f000000000e000019000000050fe002100000000004fb0019000000000ffd034f000000000f0f043b0000000000f40435000000010ee000390000000004ce004b000013a70000413d000000000400004b000013b10000613d0000000004080433000000000404004b000001c10000613d00000000040b0433000007a704400197000000f80ca0021000000000044c019f000007a90440004100000000004b04350000000304a00210000000f80440008900000000094901cf000000ff0440008c000000000900201900000021048000390000000000940435000014450000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400900043d000007a60890009c000001590000213d000000200840008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000007aa0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c004400039000000000441034f000000400800043d000000000404043b000900000004001d000000800a40008c000014a80000413d0000000904000029000000800a400270000007a80b40009c000000000a04a019000007a80b40009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000014200000613d000000000d21034f000000000e000019000000050fe002100000000004fb0019000000000ffd034f000000000f0f043b0000000000f40435000000010ee000390000000004ce004b000014180000413d000000000400004b000014220000613d0000000004080433000000000404004b000001c10000613d00000000040b0433000007a704400197000000f80ca0021000000000044c019f000007a90440004100000000004b04350000000304a00210000000f804400089000000090a4001ef000000ff0440008c000000000a00201900000021048000390000000000a40435000014bb0000013d000007a60480009c000001590000213d0000004004800039000000400040043f000000000421034f000000010a00003a000000000aa804360000000004400350000000000b04043b0000000000ba0435000001c10000613d000000f804900210000007a00c000041000000000909004b000000000c04c019000007a704b001970000000004c4019f00000000004a0435000000400a00043d000007a604a0009c000001590000213d000000090c0000290000002004c0008a000000000441034f000000000404043b0000004009a00039000000400090043f0000002009a00039000007aa0b0000410000000000b90435000000150900003900000000009a043500000060044002100000002109a000390000000000490435000000c004c00039000000000441034f000000400900043d000000000404043b000900000004001d000000800b40008c0000158c0000413d0000000904000029000000800b400270000007a80c40009c000000000b04a019000007a80c40009c000000000c000019000000100c002039000000080dc001bf0000079f0eb0009c000000000d0ca019000000400cb002700000079f0eb0009c000000000c0ba019000000040ed001bf0000079b0bc0009c000000000e0da019000000200dc002700000079b0bc0009c000000000d0ca0190000000204e001bf0000ffff0cd0008c00000000040ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000104402039000000200c00008a000800000004001d000000410d400039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000079f0ec0009c000001590000213d000000010dd00190000001590000c13d0000004000c0043f0000000804000029000000020c400039000000000cc90436000000210d400039000000050dd00272000014940000613d000000000e21034f000000000f0000190000000504f00210000000000b4c001900000000044e034f000000000404043b00000000004b0435000000010ff000390000000004df004b0000148c0000413d000000000400004b000014960000613d0000000004090433000000000404004b000001c10000613d00000000040c0433000007a704400197000000080d000029000000f80bd0021000000000044b019f000007a90440004100000000004c04350000000304d00210000000f804400089000000090b4001ef000000ff0440008c000000000b00201900000021049000390000000000b404350000159f0000013d000007a60480009c000001590000213d0000004004800039000000400040043f000000000421034f000000010a00003a000000000aa804360000000004400350000000000b04043b0000000000ba0435000001c10000613d000000090d000029000000f804d00210000007a00c000041000000000d0d004b000000000c04c019000007a704b001970000000004c4019f00000000004a0435000000400400043d000000200a400039000000000b030433000000000c0b004b000014c80000613d000000000c000019000000000dac0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dbc004b000014c10000413d0000000003ab00190000000000030435000000000a050433000000000b0a004b000014d50000613d000000000b000019000000000c3b0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000cab004b000014ce0000413d00000000033a001900000000000304350000000005060433000000000a05004b000014e20000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b5a004b000014db0000413d000000000335001900000000000304350000000005070433000000000605004b000014ef0000613d0000000006000019000000000a3600190000002006600039000000000b760019000000000b0b04330000000000ba0435000000000a56004b000014e80000413d000000000335001900000000000304350000000005090433000000000605004b000014fc0000613d000000000600001900000000073600190000002006600039000000000a960019000000000a0a04330000000000a70435000000000756004b000014f50000413d000000000335001900000000000304350000000005080433000000000605004b000015090000613d000000000600001900000000073600190000002006600039000000000986001900000000090904330000000000970435000000000756004b000015020000413d000000000335001900000000000304350000000003430049000000200530008a00000000005404350000001f05300039000000200300008a000000000535016f0000000007450019000000000557004b000000000500001900000001050040390000079f0670009c000001590000213d0000000105500190000001590000c13d000000400070043f0000000c0d0000290000000006d200490000000d05000029000001c40c5000390000000005c1034f000000000505043b0000001f0960008a000007a006900197000007a008500197000007a00a000041000000000b68004b000000000b000019000000000b0a4019000000000668013f000000000895004b000000000a004019000007a00660009c000000000b0ac01900000000060b004b0000009f0000c13d0000000006d50019000000000561034f000000000505043b0000079f0850009c0000009f0000213d00000000085200490000002006600039000007a00a000041000000000b86004b000000000b000019000000000b0a2019000007a008800197000d00000006001d000007a00d600197000000000e8d004b000000000a00801900000000088d013f000007a00880009c000000000a0bc01900000000080a004b0000009f0000c13d000000010850008c0000173d0000c13d0000000d08100360000000000808043b000000010a00008a000007a00b000041000000000aa8004b000000000a000019000000000a0b2019000007a008800197000007a00d80009c000000000b008019000007a008800167000007a00880009c000000000b0ac0190000006008000039000000000a0b004b0000179e0000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a90a0000410000000000a804350000000108000039000000000087043500000000080700190000179e0000013d000000400600043d000500000006001d000000380650008c000016510000413d00000020075002700000079b0650009c000000000705a0190000079b0650009c0000000008000019000000040800203900000002068001bf0000ffff0970008c000000000608a0190000001008700270000000000807a019000000ff0780008c000000000700001900000001070020390000000508000029000007a60880009c000001590000213d000000000676019f00000005090000290000004007900039000000400070043f000000000812034f000000020760003a00000000077904360000000008800350000000000808043b0000000000870435000001c10000613d000007a708800197000000f809600210000000000889019f000007ab088001c700000000008704350000000306600210000000f80660015f00000000056501cf000000050600002900000021066000390000000000560435000016630000013d000007a60490009c000001590000213d0000004004900039000000400040043f000000000421034f000000010b00003a000000000bb904360000000004400350000000000c04043b0000000000cb0435000001c10000613d000000090e000029000000f804e00210000007a00d000041000000000e0e004b000000000d04c019000007a704c001970000000004d4019f00000000004b0435000000400400043d000000200b400039000000000c030433000000000d0c004b000015ac0000613d000000000d000019000000000ebd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ecd004b000015a50000413d0000000003bc00190000000000030435000000000b050433000000000c0b004b000015b90000613d000000000c000019000000000d3c0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000dbc004b000015b20000413d00000000033b001900000000000304350000000005060433000000000b05004b000015c60000613d000000000b000019000000000c3b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c5b004b000015bf0000413d000000000335001900000000000304350000000005070433000000000605004b000015d30000613d0000000006000019000000000b3600190000002006600039000000000c760019000000000c0c04330000000000cb0435000000000b56004b000015cc0000413d000000000335001900000000000304350000000005080433000000000605004b000015e00000613d000000000600001900000000073600190000002006600039000000000b860019000000000b0b04330000000000b70435000000000756004b000015d90000413d0000000003350019000000000003043500000000050a0433000000000605004b000015ed0000613d0000000006000019000000000736001900000020066000390000000008a6001900000000080804330000000000870435000000000756004b000015e60000413d000000000335001900000000000304350000000005090433000000000605004b000015fa0000613d000000000600001900000000073600190000002006600039000000000896001900000000080804330000000000870435000000000756004b000015f30000413d000000000335001900000000000304350000000003430049000000200530008a00000000005404350000001f05300039000000200300008a000000000535016f0000000007450019000000000557004b000000000500001900000001050040390000079f0670009c000001590000213d0000000105500190000001590000c13d000000400070043f0000000c0d0000290000000006d200490000000d05000029000001c40c5000390000000005c1034f000000000505043b0000001f0960008a000007a006900197000007a008500197000007a00a000041000000000b68004b000000000b000019000000000b0a4019000000000668013f000000000895004b000000000a004019000007a00660009c000000000b0ac01900000000060b004b0000009f0000c13d0000000006d50019000000000561034f000000000505043b0000079f0850009c0000009f0000213d00000000085200490000002006600039000007a00a000041000000000b86004b000000000b000019000000000b0a2019000007a008800197000d00000006001d000007a00d600197000000000e8d004b000000000a00801900000000088d013f000007a00880009c000000000a0bc01900000000080a004b0000009f0000c13d000000010850008c000017650000c13d0000000d08100360000000000808043b000000010a00008a000007a00b000041000000000aa8004b000000000a000019000000000a0b2019000007a008800197000007a00d80009c000000000b008019000007a008800167000007a00880009c000000000b0ac0190000006008000039000000000a0b004b0000187d0000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a90a0000410000000000a804350000000108000039000000000087043500000000080700190000187d0000013d0000000506000029000007a60660009c000001590000213d00000005080000290000004006800039000000400060043f000000000712034f000000010600003a00000000066804360000000007700350000000000707043b0000000000760435000001c10000613d000000f805500210000007a707700197000000000557019f000007a00550016700000000005604350000002004400039000000000442034f000000000404043b000007a005000041000000000634004b00000000060000190000000006058019000007a003300197000007a007400197000000000837004b0000000005008019000000000337013f000007a00330009c000000000506c019000000000305004b0000000c030000290000009f0000c13d0000000004340019000000000342034f000000000303043b0000079f0530009c0000009f0000213d000000200530008c0000009f0000413d00000000053100490000002004400039000007a006000041000000000754004b00000000070000190000000007062019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000009f0000c13d000000000542034f000000400600043d000400000006001d000000000505043b000000800650008c000016d80000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000070770017f0000000407700029000000040870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000408000029000000000778043600000021086000390000000508800272000016c40000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000016bc0000413d000000000800004b000016c60000613d00000004080000290000000008080433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000004060000290000002106600039000016eb0000013d0000000406000029000007a60660009c000001590000213d00000004080000290000004006800039000000400060043f000000000712034f000000010600003a00000000066804360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400530008c0000009f0000413d000000400500043d000300000005001d0000002004400039000000000542034f000000000505043b000000800650008c000018290000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000070770017f0000000307700029000000030870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000017290000613d000000000112034f0000000009000019000000050a900210000000000ba70019000000000aa1034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000017210000413d000000000100004b0000172b0000613d00000003010000290000000001010433000000000101004b000001c10000613d0000000001070433000007a701100197000000f808600210000000000118019f000007a90110004100000000001704350000000301600210000000f80110008900000000051501cf000000ff0110008c0000000005002019000000030100002900000021011000390000183c0000013d000000380850008c0000178d0000413d000000200a5002700000079b0850009c000000000a05a0190000079b0850009c000000000b000019000000040b0020390000000208b001bf0000ffff0da0008c00000000080ba019000000100ba00270000000000b0aa019000000ff0ab0008c000000000a000019000000010a002039000007a60b70009c000001590000213d0000000008a8019f000000400a7000390000004000a0043f000000000b21034f000000020a80003a000000000aa70436000000000bb00350000000000b0b043b0000000000ba0435000001c10000613d000007a70bb00197000000f80d800210000000000bbd019f000007ab0bb001c70000000000ba04350000000308800210000000f80880015f00000000088501cf000000210a70003900000000008a043500000000080700190000179e0000013d000000380850008c0000186c0000413d000000200a5002700000079b0850009c000000000a05a0190000079b0850009c000000000b000019000000040b0020390000000208b001bf0000ffff0da0008c00000000080ba019000000100ba00270000000000b0aa019000000ff0ab0008c000000000a000019000000010a002039000007a60b70009c000001590000213d0000000008a8019f000000400a7000390000004000a0043f000000000b21034f000000020a80003a000000000aa70436000000000bb00350000000000b0b043b0000000000ba0435000001c10000613d000007a70bb00197000000f80d800210000000000bbd019f000007ab0bb001c70000000000ba04350000000308800210000000f80880015f00000000088501cf000000210a70003900000000008a043500000000080700190000187d0000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000a21034f000000010800003a0000000008870436000000000aa00350000000000a0a043b0000000000a80435000001c10000613d000000f80b500210000007a70aa00197000000000aba019f000007a00aa001670000000000a804350000000008070019000000400700043d000007a60a70009c000001590000213d000000400a7000390000004000a0043f000000000d21034f000000010600003a000700000006001d000000000f6704360000000006d003500008000000060353000000000606043b000900000006001d00000000006f0435000001c10000613d0000000906000029000007a706600197000600000006001d000007ac0b6001c70000000000bf0435000000200bc00039000000000bb1034f000000000c0b043b000007a00b000041000000000f9c004b000000000f000019000000000f0b8019000007a009900197000007a00ec00197000000000a9e004b000000000b00801900000000099e013f000007a00990009c000000000b0fc01900000000090b004b0000000c060000290000009f0000c13d00000000096c0019000000000a91034f00000000060a043b000c00000006001d0000079f0a60009c0000009f0000213d0000000c06000029000000200a60008c0000009f0000413d0000000c0220006a0000002006900039000007a009000041000000000a26004b000000000a000019000000000a092019000007a002200197000400000006001d000007a00b600197000000000c2b004b000000000900801900000000022b013f000007a00220009c00000000090ac019000000000209004b0000009f0000c13d0000000409100360000000400200043d000000000609043b000500000006001d000000800a60008c000000200f200039000019080000413d0000000506000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0ea0009c000000000c0ba019000000400ba002700000079f0ea0009c000000000b0aa019000000040ec001bf0000079b0ab0009c000000000e0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ae001bf0000ffff0bc0008c000000000a0ea019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000410ba00039000000000b3b016f000000000cb20019000000000b2c004b000000000e000019000000010e0040390000079f0bc0009c000001590000213d000000010be00190000001590000c13d0000004000c0043f000000020ba000390000000000b20435000000210ba00039000000050eb00272000018160000613d000000000c000019000000050bc002100000000009bf0019000000000bbd034f000000000b0b043b0000000000b90435000000010cc000390000000009ec004b0000180e0000413d000000000600004b000018180000613d0000000009020433000000000909004b000001c10000613d00000000090f0433000007a709900197000000f80ba0021000000000099b019f000007a90990004100000000009f04350000000309a00210000000f809900089000000050a9001ef000000ff0990008c000000000a00201900000021092000390000000000a90435000019190000013d0000000306000029000007a60660009c000001590000213d00000003070000290000004006700039000000400060043f000000000612034f000000010100003a00000000011704360000000006600350000000000606043b0000000000610435000001c10000613d000000f807500210000007a008000041000000000505004b000000000807c019000007a705600197000000000585019f0000000000510435000000410130008c000001c10000413d0000002001400039000000000112034f000000000101043b000000f801100270000200000001001d0000001b0110008a000000020110008c00001d060000813d0000000d01000029000101440010003d0000000101200360000000000101043b000000000101004b00001a920000613d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000000201043b0000000101200210000000000302004b000018630000613d000000090300008a000000000331004b000018670000213d00000000322100d9000000020220008c000018670000c13d00000002011000290000000803100039000000020130006c0000196e0000813d000007c30100004100000000001004350000001101000039000001c40000013d000000000001042f000007a60870009c000001590000213d0000004008700039000000400080043f000000000a21034f000000010800003a0000000008870436000000000aa00350000000000a0a043b0000000000a80435000001c10000613d000000f80b500210000007a70aa00197000000000aba019f000007a00aa001670000000000a804350000000008070019000000400700043d000007a60a70009c000001590000213d000000400a7000390000004000a0043f000000000d21034f000000010600003a000900000006001d000000000a6704360000000006d003500007000000060353000000000606043b000800000006001d00000000006a0435000001c10000613d0000000806000029000007a706600197000500000006001d000007ac0f6001c70000000000fa0435000000200ac00039000000000aa1034f000000000a0a043b000007a00c000041000000000f9a004b000000000f000019000000000f0c8019000007a009900197000007a00ea00197000000000b9e004b000000000c00801900000000099e013f000007a00990009c000000000c0fc01900000000090c004b0000000c060000290000009f0000c13d00000000096a0019000000000a91034f00000000060a043b000c00000006001d0000079f0a60009c0000009f0000213d0000000c06000029000000200a60008c0000009f0000413d0000000c0220006a0000002006900039000007a009000041000000000a26004b000000000a000019000000000a092019000007a002200197000400000006001d000007a00b600197000000000e2b004b000000000900801900000000022b013f000007a00220009c00000000090ac019000000000209004b0000009f0000c13d0000000409100360000000400200043d000000000609043b000600000006001d000000800a60008c000000200f200039000019ba0000413d0000000606000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080eb001bf0000079f0ca0009c000000000e0ba019000000400ba002700000079f0ca0009c000000000b0aa019000000040ae001bf0000079b0cb0009c000000000a0ea019000000200cb002700000079b0eb0009c000000000c0ba019000000020ba001bf0000ffff0ec0008c000000000b0aa019000000100ac00270000000000a0ca019000000ff0aa0008c000000010bb02039000000410ab00039000000000a3a016f000000000aa20019000000000c2a004b000000000e000019000000010e0040390000079f0ca0009c000001590000213d000000010ce00190000001590000c13d0000004000a0043f000000020ab000390000000000a20435000000210ab00039000000050aa00272000018f50000613d000000000e000019000000050ce002100000000009cf0019000000000ccd034f000000000c0c043b0000000000c90435000000010ee000390000000009ae004b000018ed0000413d000000000600004b000018f70000613d0000000009020433000000000909004b000001c10000613d00000000090f0433000007a709900197000000f80ab0021000000000099a019f000007a90990004100000000009f04350000000309b00210000000f809900089000000060a9001ef000000ff0990008c000000000a00201900000021092000390000000000a90435000019cb0000013d000007a60920009c000001590000213d0000004009200039000000400090043f000000090600002900000000006f043500000007060000290000000000620435000000000906004b000001c10000613d0000000506000029000000f809600210000007a00a000041000000000b06004b000000000a09c0190000000609a001af00000000009f04350000000c06000029000000400960008c0000009f0000413d000000400900043d0000000406000029000500200060003d000000050a10036000000000060a043b000900000006001d000000800a60008c000000200e90003900001a200000413d0000000906000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0fa0009c000000000c0ba019000000400ba002700000079f0fa0009c000000000b0aa019000000040fc001bf0000079b0ab0009c000000000f0ca019000000200cb002700000079b0ab0009c000000000c0ba0190000000206f001bf0000ffff0bc0008c00000000060fa019000000100bc00270000000000b0ca019000000ff0bb0008c0000000106602039000600000006001d000000410b600039000000000b3b016f000000000cb90019000000000b9c004b000000000f000019000000010f0040390000079f0bc0009c000001590000213d000000010bf00190000001590000c13d0000004000c0043f0000000606000029000000020b6000390000000000b90435000000210b600039000000050cb002720000195a0000613d000000000f000019000000050bf00210000000000abe0019000000000bbd034f000000000b0b043b0000000000ba0435000000010ff00039000000000acf004b000019520000413d000000000600004b0000195c0000613d000000000a090433000000000a0a004b000001c10000613d000000000a0e0433000007a70aa001970000000606000029000000f80b600210000000000aab019f000007a90aa000410000000000ae0435000000030a600210000000f80aa00089000000090ba001ef000000ff0aa0008c000000000b002019000000210a9000390000000000ba043500001a330000013d000000800130008c000200000003001d00001a920000413d0000008001300270000007a80230009c000000000103a019000007a80230009c0000000002000019000000100200203900000008042001bf0000079f0510009c000000000402a01900000040021002700000079f0510009c000000000201a01900000004014001bf0000079b0520009c000000000104a01900000020042002700000079b0520009c000000000402a01900000002051001bf0000ffff0240008c000000000501a0190000001001400270000000000104a019000000ff0110008c00000001055020390000004101500039000000070210017f000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000079f0620009c000001590000213d0000000104400190000001590000c13d000000400020043f000000020250003900000000062104360000000102000367000000000400003100000021075000390000000507700272000019a70000613d000000000842034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000199f0000413d000000000700004b000019a90000613d0000000007010433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105100039000000000035043500001aa80000013d000007a60920009c000001590000213d0000004009200039000000400090043f000000080600002900000000006f043500000009060000290000000000620435000000000906004b000001c10000613d0000000606000029000000f809600210000007a00a000041000000000b06004b000000000a09c0190000000509a001af00000000009f04350000000c06000029000000400960008c0000009f0000413d000000400900043d0000000406000029000500200060003d000000050a10036000000000060a043b000800000006001d000000800a60008c000000200e90003900001b110000413d0000000806000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0fa0009c000000000c0ba019000000400ba002700000079f0fa0009c000000000b0aa019000000040ac001bf0000079b0fb0009c000000000a0ca019000000200cb002700000079b0fb0009c000000000c0ba0190000000206a001bf0000ffff0fc0008c00000000060aa019000000100ac00270000000000a0ca019000000ff0aa0008c0000000106602039000600000006001d000000410a600039000000000a3a016f000000000aa90019000000000c9a004b000000000c000019000000010c0040390000079f0fa0009c000001590000213d000000010cc00190000001590000c13d0000004000a0043f0000000606000029000000020a6000390000000000a90435000000210a600039000000050aa0027200001a0c0000613d000000000c000019000000050fc00210000000000bfe0019000000000ffd034f000000000f0f043b0000000000fb0435000000010cc00039000000000bac004b00001a040000413d000000000600004b00001a0e0000613d000000000a090433000000000a0a004b000001c10000613d000000000a0e0433000007a70aa001970000000606000029000000f80b600210000000000aab019f000007a90aa000410000000000ae0435000000030a600210000000f80aa00089000000080ba001ef000000ff0aa0008c000000000b002019000000210a9000390000000000ba043500001b240000013d000007a60a90009c000001590000213d000000400a9000390000004000a0043f000000070b0000290000000000b90435000000080600035f000000000a06043b0000000000ae0435000000000b0b004b000001c10000613d0000000906000029000000f80b600210000007a00c000041000000000d06004b000000000c0bc019000007a70aa00197000000000aca019f0000000000ae04350000000c06000029000000410a60008c000001c10000413d0000000506000029000000200a600039000000000ba1034f000000000a000415000000110aa0008a000000200aa000c9000007a00d000041000000000b0b043b000000f80cb002700000001b0bc0008c00001a470000613d000000000a000415000000100aa0008a000000200aa000c9000007ae0d0000410000001c0bc0008c00001d060000c13d000000400c00043d000007a60bc0009c000001590000213d000000400bc000390000004000b0043f000000070b000029000000000ebc0436000000080600035f000000000f06043b0000000000fe0435000000000b0b004b000001c10000613d000007a70bf00197000000000bdb019f0000000000be0435000000000b040433000000000d080433000000050aa00270000000000a0c001f000000000a5d0019000000000aba0019000000000b070433000000000aba0019000000000b020433000000000aba0019000000000b090433000000000aba0019000000000b0c0433000000000aba0019000000400d00043d0000079f06a00197000900000006001d000000380b60008c0006004000d0003d000c002000d0003d00001b810000413d0000000906000029000000200f6002700000079b0b60009c000000000f06a0190000079b0b60009c000000000e000019000000040e002039000000020be001bf0000ffff0af0008c000000000b0ea019000000100af00270000000000a0fa019000000ff0aa0008c000000000f000019000000010f002039000007a60ad0009c000001590000213d000000000bfb019f0000000606000029000000400060043f000000020ab0003a0000000000ad0435000000080600035f000000000f06043b0000000c060000290000000000f60435000001c10000613d000007a70af00197000000f80eb00210000000000aae019f000007ad0aa001c70000000c060000290000000000a60435000000030ab00210000000f80aa0015f000000090aa001ef000000210bd000390000000000ab043500001b940000013d000000400100043d000007a60210009c000001590000213d0000004002100039000000400020043f000000010200003a000000000321043600000000040000310000000102000367000000000542034f0000000005500350000000000505043b0000000000530435000001c10000613d0000000208000029000000f806800210000007a007000041000000000808004b000000000706c019000007a705500197000000000575019f000000000053043500000001030000290000008003300039000000000332034f0000000d0540006a000000230550008a000000000303043b000007a006000041000000000753004b00000000070000190000000007068019000007a005500197000007a008300197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c060000290000009f0000c13d0000000a050000290000000005050433000000090700002900000000070704330000000808000029000000000808043300000006090000290000000009090433000000050a000029000000000a0a04330000000006630019000000000362034f000000000303043b0000079f0b30009c0000009f0000213d000000000b3400490000002006600039000007a00c000041000000000db6004b000000000d000019000000000d0c2019000007a00bb00197000007a00e600197000000000fbe004b000000000c008019000000000bbe013f000007a00bb0009c000000000c0dc019000000000b0c004b0000009f0000c13d0000000005570019000000000585001900000000059500190000000005a50019000000000535001900000004070000290000000007070433000000000575001900000003070000290000000007070433000000000575001900000000070104330000000005750019000000400700043d0000079f05500197000000380850008c0000004009700039000000000842034f000000200470003900001c390000413d000000200b5002700000079b0a50009c000000000b05a0190000079b0a50009c000000000c000019000000040c002039000000020ac001bf0000ffff0db0008c000000000a0ca019000000100cb00270000000000c0ba019000000ff0bc0008c000000000b000019000000010b002039000007a60c70009c000001590000213d000000000aba019f000000400090043f0000000209a0003a00000000009704350000000008800350000000000808043b0000000000840435000001c10000613d000007a708800197000000f809a00210000000000889019f000007ad088001c700000000008404350000000304a00210000000f80440015f00000000044501cf0000002105700039000000000045043500001c470000013d000007a60a90009c000001590000213d000000400a9000390000004000a0043f00000009060000290000000000690435000000070a00035f000000000a0a043b0000000000ae0435000000000b06004b000001c10000613d0000000806000029000000f80b600210000007a00c000041000000000d06004b000000000c0bc019000007a70aa00197000000000aca019f0000000000ae04350000000c06000029000000410a60008c000001c10000413d0000000506000029000000200a600039000000000aa1034f000000000b0004150000000f0bb0008a000000200bb000c9000007a00d000041000000000a0a043b000000f80aa002700000001b0ca0008c00001b380000613d000000000b0004150000000e0bb0008a000000200bb000c9000007ae0d0000410000001c0aa0008c00001d060000c13d000000400c00043d000007a60ac0009c000001590000213d000000400ac000390000004000a0043f0000000906000029000000000a6c0436000000070e00035f000000000e0e043b00080000000e001d0000000000ea0435000000000e06004b000001c10000613d0000000806000029000707a70060019b000000070dd001af0000000000da0435000000000a040433000000000d080433000000050bb00270000000000b0c001f000000000b5d0019000000000aab0019000000000b070433000000000aba0019000000000b020433000000000aba0019000000000b090433000000000aba0019000000000b0c0433000000000aba0019000000400d00043d0000079f0fa00197000000380af0008c0006004000d0003d000c002000d0003d00001d0d0000413d000000200ef002700000079b0af0009c000000000e0fa0190000079b0af0009c00000000060000190000000406002039000000020a6001bf0000ffff0be0008c000000000a06a019000000100be00270000000000b0ea019000000ff0bb0008c000000000e000019000000010e002039000007a60bd0009c000001590000213d000000000aea019f0000000606000029000000400060043f00000008060000290000000c0b00002900000000006b0435000000020ba0003a0000000000bd0435000001c10000613d000000f80ba00210000000070bb001af000007ad0bb001c70000000c060000290000000000b60435000000030aa00210000000f80aa0015f000000000aaf01cf000000210bd000390000000000ab043500001d1d0000013d000007a60ad0009c000001590000213d0000000606000029000000400060043f000000070a0000290000000000ad0435000000080600035f000000000f06043b0000000c060000290000000000f60435000000000a0a004b000001c10000613d000007a70af001970000000906000029000000f80b600210000000000aab019f000007ac0aa000410000000c060000290000000000a60435000000400600043d000000200a600039000007ae0b00004100090000000a001d0000000000ba0435000c00000006001d000000210e600039000000000f0d0433000000000b0f004b00001ba60000613d000000000b000019000000000aeb0019000000200bb000390000000006db0019000000000606043300000000006a04350000000006fb004b00001b9f0000413d000000000def001900000000000d0435000000000e04043300000000060e004b00001bb30000613d000000000b0000190000000006db0019000000200bb00039000000000a4b0019000000000a0a04330000000000a604350000000006eb004b00001bac0000413d000000000dde001900000000000d0435000000000e08043300000000040e004b00001bc00000613d00000000040000190000000006d400190000002004400039000000000a840019000000000a0a04330000000000a604350000000006e4004b00001bb90000413d0000000d041003600000000001de00190000001f0650018f0000000000010435000000050850027200001bcf0000613d000000000d000019000000050ad00210000000000ba10019000000000aa4034f000000000a0a043b0000000000ab0435000000010dd00039000000000a8d004b00001bc70000413d000000000a06004b00001bde0000613d0000000508800210000000000484034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004a4019f0000000000480435000000000151001900000000000104350000000004070433000000000504004b00001beb0000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00001be40000413d0000000001140019000000000001043500000000040c0433000000000504004b00001bf80000613d0000000005000019000000000615001900000020055000390000000007c5001900000000070704330000000000760435000000000645004b00001bf10000413d000000000114001900000000000104350000000004020433000000000504004b00001c050000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00001bfe0000413d000000000114001900000000000104350000000002090433000000000402004b00001c120000613d000000000400001900000000051400190000002004400039000000000694001900000000060604330000000000650435000000000524004b00001c0b0000413d000000000112001900000000000104350000000c040000290000000001410049000000200210008a00000000002404350000001f01100039000000000231016f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b0100004100000009030000290000079b0230009c000000000301801900000040023002100000000c0300002900000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d00001dc10000013d000007a60a70009c000001590000213d000000400090043f000000010900003a00000000009704350000000008800350000000000808043b0000000000840435000001c10000613d000007a708800197000000f805500210000000000585019f000007ac055000410000000000540435000000400400043d00000020054000390000000008070433000000000908004b00001c540000613d0000000009000019000000000a5900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b00001c4d0000413d000000000758001900000000000704350000000a080000290000000008080433000000000908004b00001c620000613d0000000009000019000000000a79001900000020099000390000000a0b900029000000000b0b04330000000000ba0435000000000a89004b00001c5b0000413d0000000007780019000000000007043500000009080000290000000008080433000000000908004b00001c700000613d0000000009000019000000000a7900190000002009900039000000090b900029000000000b0b04330000000000ba0435000000000a89004b00001c690000413d0000000007780019000000000007043500000008080000290000000008080433000000000908004b00001c7e0000613d0000000009000019000000000a7900190000002009900039000000080b900029000000000b0b04330000000000ba0435000000000a89004b00001c770000413d0000000007780019000000000007043500000006080000290000000008080433000000000908004b00001c8c0000613d0000000009000019000000000a7900190000002009900039000000060b900029000000000b0b04330000000000ba0435000000000a89004b00001c850000413d0000000007780019000000000007043500000005080000290000000008080433000000000908004b00001c9a0000613d0000000009000019000000000a7900190000002009900039000000050b900029000000000b0b04330000000000ba0435000000000a89004b00001c930000413d000000000662034f00000000027800190000001f0730018f0000000000020435000000050830027200001ca90000613d0000000009000019000000050a900210000000000ba20019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00001ca10000413d000000000907004b00001cb80000613d0000000508800210000000000686034f00000000088200190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000232001900000000000204350000000003010433000000000603004b00001cc50000613d000000000600001900000000072600190000002006600039000000000816001900000000080804330000000000870435000000000736004b00001cbe0000413d0000000001230019000000000001043500000004020000290000000002020433000000000302004b00001cd30000613d000000000300001900000000061300190000002003300039000000040730002900000000070704330000000000760435000000000623004b00001ccc0000413d0000000001120019000000000001043500000003020000290000000002020433000000000302004b00001ce10000613d000000000300001900000000061300190000002003300039000000030730002900000000070704330000000000760435000000000623004b00001cda0000413d000000000112001900000000000104350000000001410049000000200210008a00000000002404350000001f01100039000000070210017f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b010000410000079b0250009c0000000005018019000000400250021000000000030404330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b00000b560000013d000000400100043d0000004402100039000007c203000041000000000032043500000024021000390000000f0300003900000c5f0000013d000007a60ad0009c000001590000213d0000000606000029000000400060043f00000008060000290000000c0a00002900000000006a0435000000090600002900000000006d0435000000000a06004b000001c10000613d000000f80af00210000000070aa001af000007ac0aa000410000000c060000290000000000a60435000000400600043d000000200a600039000007af0b00004100090000000a001d0000000000ba0435000c00000006001d000000210e600039000000000f0d0433000000000b0f004b00001d2f0000613d000000000b000019000000000aeb0019000000200bb000390000000006db0019000000000606043300000000006a04350000000006fb004b00001d280000413d000000000def001900000000000d0435000000000e04043300000000060e004b00001d3c0000613d000000000b0000190000000006db0019000000200bb00039000000000a4b0019000000000a0a04330000000000a604350000000006eb004b00001d350000413d000000000dde001900000000000d0435000000000e08043300000000040e004b00001d490000613d00000000040000190000000006d400190000002004400039000000000a840019000000000a0a04330000000000a604350000000006e4004b00001d420000413d0000000d041003600000000001de00190000001f0650018f0000000000010435000000050850027200001d580000613d000000000d000019000000050ad00210000000000ba10019000000000aa4034f000000000a0a043b0000000000ab0435000000010dd00039000000000a8d004b00001d500000413d000000000a06004b00001d670000613d0000000508800210000000000484034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004a4019f0000000000480435000000000151001900000000000104350000000004070433000000000504004b00001d740000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00001d6d0000413d0000000001140019000000000001043500000000040c0433000000000504004b00001d810000613d0000000005000019000000000615001900000020055000390000000007c5001900000000070704330000000000760435000000000645004b00001d7a0000413d000000000114001900000000000104350000000004020433000000000504004b00001d8e0000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00001d870000413d000000000114001900000000000104350000000002090433000000000402004b00001d9b0000613d000000000400001900000000051400190000002004400039000000000694001900000000060604330000000000650435000000000524004b00001d940000413d000000000112001900000000000104350000000c040000290000000001410049000000200210008a00000000002404350000001f01100039000000000231016f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b0100004100000009030000290000079b0230009c000000000301801900000040023002100000000c0300002900000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b00000000020004150000000a02200069000000000200000200000b560000013d00000000030004140000000004120019000000000224004b000000000500001900000001050040390000079b02100197000000010150019000001e1f0000c13d0000000001000031000000000541004b00001e1f0000413d0000000102200367000007b00530009c00001e230000813d00000000014100490000079b0110019700000000011203df000000c002300210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b03300197000000010220019000001e2a0000613d0000003f02300039000007b304200197000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000079f0640009c00001e450000213d000000010550019000001e450000c13d000000400040043f00000000043204360000001f05300039000000050550027200001dfd0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001df50000413d000000000500004b00001dff0000613d0000001f0530018f000000050330027200001e0b0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b00001e030000413d000000000605004b00001e1a0000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c00001e4b0000c13d0000000001040433000000000001042d000007c3010000410000000000100435000000110100003900001e480000013d000000400100043d0000004402100039000007bf0300004100000000003204350000002402100039000000080300003900001e510000013d0000001f0430018f000000050230027200001e350000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00001e2e0000413d000000000504004b00001e430000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000001e6a00010430000007c30100004100000000001004350000004101000039000000040010043f000007c40100004100001e6a00010430000000400100043d0000004402100039000007b503000041000000000032043500000024021000390000001f030000390000000000320435000007a10200004100000000002104350000000402100039000000200300003900000000003204350000079b020000410000079b0310009c00000000010280190000004001100210000007b6011001c700001e6a00010430000000000001042f00001e61002104230000000102000039000000000001042d0000000002000019000000000001042d00001e66002104230000000102000039000000000001042d0000000002000019000000000001042d00001e680000043200001e690001042e00001e6a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000456e636f64696e6720756e737570706f7274656420747800000000000000000000000000000000000000000000000000000000640000008000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c69642064617461000000000000000000000000000000000000000064000000000000000000000000848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f4f766572666c6f770000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ac46880ebec771717dc70f9688fe43e58ce01ef6ff73d4b4fb82cf87c76e3a51", + "deployedBytecode": "0x000200000000000200110000000000020001000000010355000000000301001900000060053002700000079b0050019d0000008004000039000000400040043f0000079b0350019700000001022001900000006f0000c13d000000040230008c0000009f0000413d000000000201043b0000079d022001970000079e0220009c0000009f0000c13d0000000002000416000000000202004b0000009f0000c13d000000040230008a000000200620008c0000009f0000413d0000000406100370000000000d06043b0000079f06d0009c0000009f0000213d0000000002d20049000007a006000041000002600720008c00000000070000190000000007064019000007a002200197000000000802004b000000000600a019000007a00220009c000000000607c019000000000206004b0000009f0000c13d000000040cd000390000000002c1034f000000000202043b000000000602004b000000770000c13d000000000231034f0000010005c00039000000000451034f000000000404043b000000800640008c000000a10000413d0000008006400270000007a80740009c000000000604a019000007a80740009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a000000c108600039000000000778016f000000400070043f0000000207600039000000800070043f000000210760003900000005077002720000005d0000613d00000000080000190000000509800210000000000a92034f000000000a0a043b000000a0099000390000000000a904350000000108800039000000000978004b000000550000413d000000000700004b0000005f0000613d000000800700043d000000000707004b000001c10000613d000000a00700043d000007a707700197000000f808600210000000000778019f000007a907700041000000a00070043f0000000306600210000000f80660008900000000046401cf000000ff0660008c0000000004002019000000a10040043f000000ae0000013d0000000001000416000000000101004b0000009f0000c13d0000002001000039000001000010044300000120000004430000079c0100004100001e690001042e000000710620008c000000fb0000c13d000001c402d00039000000000221034f0000000006d30049000000230660008a000000000202043b000007a007000041000000000862004b00000000080000190000000008078019000007a006600197000007a009200197000000000a69004b0000000007008019000000000669013f000007a00660009c000000000708c019000000000607004b0000009f0000c13d0000000002c20019000000000621034f000000000606043b0000079f0760009c0000009f0000213d00000000076300490000002002200039000007a008000041000000000972004b00000000090000190000000009082019000007a007700197000007a00a200197000000000b7a004b000000000800801900000000077a013f000007a00770009c000000000809c019000000000708004b000002c10000613d000000000100001900001e6a00010430000000f806400210000007a007000041000000000404004b000000000706c019000000c004000039000000400040043f0000000104000039000000800040043f0000000004200350000000000404043b000007a704400197000000000474019f000000a00040043f000d0000000d001d000c0000000c001d000000400400043d000000600550008a000000000651034f000000000606043b000000800760008c000001570000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000884043600000021097000390000000509900272000000e90000613d000000000a000019000000050ba00210000000000cb80019000000000bb2034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000000e10000413d000000000900004b000000eb0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107400039000001d70000013d000000020120008c0000015d0000c13d000d0000000d001d000c0000000c001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c000002db0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f000000020150003900000000061304360000000101000367000000000200003100000021075000390000000507700272000001450000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000013d0000413d000000000700004b000001470000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000002ee0000013d000007a60740009c000001b90000a13d000007c30100004100000000001004350000004101000039000001c40000013d000000010120008c000001c70000c13d000d0000000d001d000c0000000c001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c0000033c0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f000000020150003900000000061304360000000101000367000000000200003100000021075000390000000507700272000001a70000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000019f0000413d000000000700004b000001a90000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c000000000400201900000021053000390000034f0000013d0000004007400039000000400070043f000000010700003a00000000077404360000000008200350000000000808043b0000000000870435000001d10000c13d000007c30100004100000000001004350000003201000039000000040010043f000007c40100004100001e6a00010430000007a101000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000007a201000041000000c40010043f000007a30100004100001e6a00010430000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400550008a000000000651034f000000400500043d000000000606043b000000800760008c000002230000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000885043600000021097000390000000509900272000002110000613d000000000a000019000000050ba00210000000000cb80019000000000bb2034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002090000413d000000000900004b000002130000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000002330000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000010700003a00000000077504360000000008200350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400b00043d0000002006b000390000000007040433000000000807004b000002410000613d000000000800001900000000096800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000978004b0000023a0000413d000000000467001900000000000404350000000006050433000000000706004b0000024e0000613d000000000700001900000000084700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000002470000413d000000000446001900000000000404350000000004b40049000000200540008a00000000005b04350000001f04400039000a0020000000920000000a0440017f00090000000b001d0000000005b40019000000000445004b00000000040000190000000104004039000b00000005001d0000079f0550009c000001590000213d0000000104400190000001590000c13d0000000b04000029000000400040043f000007a60440009c000001590000213d0000000d070000290000004404700039000000000441034f000000000404043b0000000b080000290000004005800039000000400050043f0000002005800039000007aa060000410000000000650435000000150500003900000000005804350000006004400210000000210580003900000000004504350000012404700039000000000541034f000000400600043d000800000006001d000000000505043b000000800650008c000005510000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c000000010660203900000041076000390000000a0770017f0000000807700029000000080870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000808000029000000000778043600000021086000390000000508800272000002ad0000613d0000000009000019000000050a900210000000000ba70019000000000aa2034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000002a50000413d000000000800004b000002af0000613d00000008080000290000000008080433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000008060000290000002106600039000005630000013d000000000726001a0000000006000414000018670000413d000000000373004b000018670000413d000d0000000d001d000c0000000c001d000007b00360009c000003fb0000413d0000004401400039000007bf020000410000000000210435000000240140003900000008020000390000000000210435000007a10100004100000000001404350000000401400039000000200200003900000000002104350000079b010000410000079b0240009c00000000040180190000004001400210000007b6011001c700001e6a00010430000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400400043d0000000d050000290000010406500039000000000561034f000000000505043b000000800750008c0000039d0000413d0000008007500270000007a80850009c000000000705a019000007a80850009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008840436000000210970003900000005099002720000032a0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000003220000413d000000000900004b0000032c0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000057501cf000000ff0770008c00000000050020190000002107400039000003ae0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400400043d0000000d050000290000010406500039000000000561034f000000000505043b000000800750008c000004d80000413d0000008007500270000007a80850009c000000000705a019000007a80850009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008840436000000210970003900000005099002720000038b0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000003830000413d000000000900004b0000038d0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000057501cf000000ff0770008c00000000050020190000002107400039000004e90000013d000007a60740009c000001590000213d0000004007400039000000400070043f000000000821034f000000010700003a00000000077404360000000008800350000000000808043b0000000000870435000001c10000613d000000f809500210000007a00a000041000000000505004b000000000a09c019000007a7058001970000000005a5019f0000000000570435000000400500043d000000400760008a000000000671034f000000000606043b000000800860008c000005aa0000413d0000008008600270000007a80960009c000000000806a019000007a80960009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000003e90000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000003e10000413d000000000a00004b000003eb0000613d000000000a050433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000005bb0000013d0000079b02200197000000000121034f00000000027500490000079b0220019700000000012103df000000c002600210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b053001970000000102200190000005360000613d0000003f02500039000007b302200197000000400600043d0000000002260019000000000362004b000000000300001900000001030040390000079f0420009c000001590000213d0000000103300190000001590000c13d000000400020043f0000000004560436000000010200036700000000030000310000001f075000390000000507700272000004270000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000041f0000413d000000000700004b000004290000613d0000001f0750018f0000000505500272000004350000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b0000042d0000413d000000000807004b000004440000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c00000c590000c13d0000000d060000290000000001630049000000230510008a000b02040060003d0000000b01200360000000000101043b000007a006000041000000000751004b00000000070000190000000007068019000007a005500197000007a008100197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c050000290000009f0000c13d0000000004040433000a00000004001d0000000001510019000000000412034f000000000504043b0000079f0450009c0000009f0000213d000000050450021000000000034300490000002006100039000007a001000041000000000736004b00000000070000190000000007012019000007a003300197000007a008600197000000000938004b0000000001008019000000000338013f000007a00330009c000000000107c019000000000101004b0000009f0000c13d000000400100043d0000002003100039000007b405500198000004800000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000004780000413d000000000200004b000004820000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b000000000400001900000001040040390000079f0520009c000001590000213d0000000104400190000001590000c13d000000400020043f0000079b020000410000079b0430009c0000000003028019000000400330021000000000010104330000079b0410009c00000000010280190000006001100210000000000131019f00000000030004140000079b0430009c0000000003028019000000c002300210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000000c0a0000290000000d030000290000009f0000613d00000000020000310000000003320049000000230530008a0000000b0300002900000020043000390000000103000367000000000443034f000000000404043b000007a006000041000000000754004b00000000070000190000000007068019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000101043b000b00000001001d000000000106004b0000009f0000c13d0000000001a40019000000000413034f000000000404043b0000079f0540009c0000009f0000213d00000000054200490000002001100039000007a006000041000000000751004b00000000070000190000000007062019000007a005500197000007a008100197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000009f0000c13d000000000514001a0000000004000414000018670000413d000000000652004b000018670000413d000007b00640009c00000b610000413d000000400400043d000002ca0000013d000007a60740009c000001590000213d0000004007400039000000400070043f000000000821034f000000010700003a00000000077404360000000008800350000000000808043b0000000000870435000001c10000613d000000f809500210000007a00a000041000000000505004b000000000a09c019000007a7058001970000000005a5019f0000000000570435000000400500043d000000600660008a000000000761034f000000000707043b000000800870008c000006080000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000005240000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000051c0000413d000000000a00004b000005260000613d000000000a050433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c00000000070020190000002108500039000006190000013d0000001f0350018f0000000502500272000005410000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b0000053a0000413d000000000403004b0000054f0000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f0000000000120435000000600150021000001e6a000104300000000806000029000007a60660009c000001590000213d00000008070000290000004006700039000000400060043f000000010600003a00000000066704360000000007200350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f00000000005604350000000c0b0000290000000005b30049000000a006400039000000000461034f000000000404043b0000001f0550008a000007a007500197000007a008400197000007a009000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000854004b0000000009004019000007a00770009c000000000a09c01900000000070a004b0000009f0000c13d0000000008b40019000000000781034f000000000707043b0000079f0970009c0000009f0000213d00000000097300490000002008800039000007a00a000041000000000b98004b000000000b000019000000000b0a2019000007a009900197000007a00c800197000000000d9c004b000000000a00801900000000099c013f000007a00990009c000000000a0bc01900000000090a004b0000009f0000c13d000000010970008c000007ab0000c13d000000000281034f000000000202043b000000010700008a000007a008000041000000000772004b00000000070000190000000007082019000007a002200197000007a00920009c0000000008008019000007a002200167000007a00220009c000000000807c019000700600000003d000000000208004b000007e70000c13d000000400200043d000700000002001d000007a60220009c000001590000213d00000007080000290000004002800039000000400020043f0000002002800039000007a907000041000000000072043500000001020000390000000000280435000007e70000013d000007a60850009c000001590000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a600210000007a00b000041000000000606004b000000000b0ac019000007a7069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c000006660000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb00272000005f60000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000005ee0000413d000000000b00004b000005f80000613d000000000b060433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109600039000006770000013d000007a60850009c000001590000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c000006c50000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000006540000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b0000064c0000413d000000000b00004b000006560000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000006d60000013d000007a60960009c000001590000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400800043d000b0040007000920000000b09100360000000000909043b000000800a90008c000007360000413d000000800a900270000007a80b90009c000000000a09a019000007a80b90009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000006b20000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b000006aa0000413d000000000700004b000006b40000613d0000000007080433000000000707004b000001c10000613d00000000070b0433000007a707700197000000f80ca0021000000000077c019f000007a90770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c000000000900201900000021078000390000000000970435000007480000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400900043d000007a60890009c000001590000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000007aa0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000b00000006001d000000800a60008c0000089f0000413d0000000b06000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000007230000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b0000071b0000413d000000000600004b000007250000613d0000000006080433000000000606004b000001c10000613d00000000060b0433000007a706600197000000f80ca0021000000000066c019f000007a90660004100000000006b04350000000306a00210000000f8066000890000000b0a6001ef000000ff0660008c000000000a00201900000021068000390000000000a60435000008b20000013d000007a60780009c000001590000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba0435000001c10000613d000000f807900210000007a00c000041000000000909004b000000000c07c019000007a707b001970000000007c7019f00000000007a0435000000400a00043d000007a607a0009c000001590000213d0000000b0c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a00039000007aa0b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000b00000007001d000000800b70008c000009560000413d0000000b07000029000000800b700270000007a80c70009c000000000b07a019000007a80c70009c000000000c000019000000100c002039000000080dc001bf0000079f0eb0009c000000000d0ca019000000400cb002700000079f0eb0009c000000000c0ba019000000040ed001bf0000079b0bc0009c000000000e0da019000000200dc002700000079b0bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000a00000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000079f0ec0009c000001590000213d000000010dd00190000001590000c13d0000004000c0043f0000000a07000029000000020c700039000000000cc90436000000210d700039000000050dd00272000007970000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b0000078f0000413d000000000700004b000007990000613d0000000007090433000000000707004b000001c10000613d00000000070c0433000007a7077001970000000a0d000029000000f80bd0021000000000077b019f000007a90770004100000000007c04350000000307d00210000000f8077000890000000b0b7001ef000000ff0770008c000000000b00201900000021079000390000000000b70435000009690000013d000000400800043d000700000008001d000000380870008c000007d60000413d00000020097002700000079b0870009c000000000907a0190000079b0870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000070a000029000007a60aa0009c000001590000213d000000000898019f000000070a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000002200350000000000202043b0000000000290435000001c10000613d000007a702200197000000f80a80021000000000022a019f000007ab022001c700000000002904350000000302800210000000f80220015f00000000022701cf000000070700002900000021077000390000000000270435000007e70000013d0000000708000029000007a60880009c000001590000213d00000007090000290000004008900039000000400080043f000000010800003a00000000088904360000000002200350000000000202043b0000000000280435000001c10000613d000000f807700210000007a702200197000000000272019f000007a0022001670000000000280435000000800260008a000000000621034f0000006002000039000000000606043b000000000606004b000008480000c13d000007a006000041000000000754004b00000000070000190000000007068019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c050000290000009f0000c13d00000009060000290000000006060433000000800700043d0000000b08000029000000000808043300000008090000290000000009090433000000070a000029000000000a0a04330000000005540019000000000451034f000000000404043b0000079f0b40009c0000009f0000213d000000000b4300490000002005500039000007a00c000041000000000db5004b000000000d000019000000000d0c2019000007a00bb00197000007a00e500197000000000fbe004b000000000c008019000000000bbe013f000007a00bb0009c000000000c0dc019000000000b0c004b0000009f0000c13d0000000006760019000000000686001900000000069600190000000006a60019000000000646001900000000070204330000000006760019000000400700043d0000079f06600197000000380860008c00000a530000413d00000020096002700000079b0860009c000000000906a0190000079b0860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a70009c000001590000213d000000000898019f0000004009700039000000400090043f000000000931034f000000020380003a00000000033704360000000009900350000000000909043b0000000000930435000001c10000613d000007a709900197000000f80a80021000000000099a019f000007ad099001c700000000009304350000000303800210000000f80330015f00000000033601cf0000002106700039000000000036043500000a630000013d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400400043d000000000201043b000000800120008c00000a1a0000413d0000008001200270000007a80320009c000000000102a019000007a80320009c0000000003000019000000100300203900000008053001bf0000079f0610009c000000000503a01900000040031002700000079f0610009c000000000301a01900000004015001bf0000079b0630009c000000000105a01900000020063002700000079b0530009c000000000603a01900000002051001bf0000ffff0360008c000000000501a0190000001001600270000000000106a019000000ff0110008c000000010550203900000041015000390000000a0110017f0000000001140019000000000341004b000000000300001900000001030040390000079f0610009c000001590000213d0000000103300190000001590000c13d000000400010043f0000000201500039000000000614043600000001010003670000000003000031000000210750003900000005077002720000088d0000613d000000000831034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000008850000413d000000000700004b0000088f0000613d0000000007040433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000a2d0000013d000007a60680009c000001590000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba0435000001c10000613d0000000b0d000029000000f806d00210000007a00c000041000000000d0d004b000000000c06c019000007a706b001970000000006c6019f00000000006a0435000000400600043d000000200a600039000000000b030433000000000c0b004b000008bf0000613d000000000c000019000000000dac0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dbc004b000008b80000413d0000000003ab00190000000000030435000000000a040433000000000b0a004b000008cc0000613d000000000b000019000000000c3b0019000000200bb00039000000000d4b0019000000000d0d04330000000000dc0435000000000cab004b000008c50000413d00000000033a001900000000000304350000000004050433000000000a04004b000008d90000613d000000000a000019000000000b3a0019000000200aa00039000000000c5a0019000000000c0c04330000000000cb0435000000000b4a004b000008d20000413d000000000334001900000000000304350000000004070433000000000504004b000008e60000613d0000000005000019000000000a3500190000002005500039000000000b750019000000000b0b04330000000000ba0435000000000a45004b000008df0000413d000000000334001900000000000304350000000004090433000000000504004b000008f30000613d000000000500001900000000073500190000002005500039000000000a950019000000000a0a04330000000000a70435000000000745004b000008ec0000413d000000000334001900000000000304350000000004080433000000000504004b000009000000613d000000000500001900000000073500190000002005500039000000000985001900000000090904330000000000970435000000000745004b000008f90000413d000000000334001900000000000304350000000003630049000000200430008a00000000004604350000001f04300039000000200300008a000000000434016f0000000007640019000000000447004b000000000400001900000001040040390000079f0570009c000001590000213d0000000104400190000001590000c13d000000400070043f0000000d05000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000007a008000041000000000954004b00000000090000190000000009088019000007a005500197000007a00a400197000000000b5a004b000000000800801900000000055a013f000007a00550009c000000000809c019000000000508004b0000000c050000290000009f0000c13d0000000005540019000000000451034f000000000404043b0000079f0840009c0000009f0000213d00000000084200490000002005500039000007a009000041000000000a85004b000000000a000019000000000a092019000007a008800197000007a00b500197000000000c8b004b000000000900801900000000088b013f000007a00880009c00000000090ac019000000000809004b0000009f0000c13d000000010840008c00000c6b0000c13d000000000851034f000000000808043b000000010900008a000007a00a000041000000000998004b000000000900001900000000090a2019000007a008800197000007a00b80009c000000000a008019000007a008800167000007a00880009c000000000a09c019000000600800003900000000090a004b00000ce70000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a909000041000000000098043500000001080000390000000000870435000000000807001900000ce70000013d000007a60790009c000001590000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb0435000001c10000613d0000000b0e000029000000f807e00210000007a00d000041000000000e0e004b000000000d07c019000007a707c001970000000007d7019f00000000007b0435000000400700043d000000200b700039000000000c030433000000000d0c004b000009760000613d000000000d000019000000000ebd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ecd004b0000096f0000413d0000000003bc00190000000000030435000000000b040433000000000c0b004b000009830000613d000000000c000019000000000d3c0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dbc004b0000097c0000413d00000000033b001900000000000304350000000004050433000000000b04004b000009900000613d000000000b000019000000000c3b0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b000009890000413d000000000334001900000000000304350000000004060433000000000504004b0000099d0000613d0000000005000019000000000b3500190000002005500039000000000c650019000000000c0c04330000000000cb0435000000000b45004b000009960000413d000000000334001900000000000304350000000004080433000000000504004b000009aa0000613d000000000500001900000000063500190000002005500039000000000b850019000000000b0b04330000000000b60435000000000645004b000009a30000413d0000000003340019000000000003043500000000040a0433000000000504004b000009b70000613d0000000005000019000000000635001900000020055000390000000008a5001900000000080804330000000000860435000000000645004b000009b00000413d000000000334001900000000000304350000000004090433000000000504004b000009c40000613d000000000500001900000000063500190000002005500039000000000895001900000000080804330000000000860435000000000645004b000009bd0000413d000000000334001900000000000304350000000003730049000000200430008a00000000004704350000001f04300039000000200300008a000000000434016f0000000006740019000000000446004b000000000400001900000001040040390000079f0560009c000001590000213d0000000104400190000001590000c13d000000400060043f0000000d05000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000007a008000041000000000954004b00000000090000190000000009088019000007a005500197000007a00a400197000000000b5a004b000000000800801900000000055a013f000007a00550009c000000000809c019000000000508004b0000000c050000290000009f0000c13d0000000005540019000000000451034f000000000404043b0000079f0840009c0000009f0000213d00000000084200490000002005500039000007a009000041000000000a85004b000000000a000019000000000a092019000007a008800197000007a00b500197000000000c8b004b000000000900801900000000088b013f000007a00880009c00000000090ac019000000000809004b0000009f0000c13d000000010840008c00000cae0000c13d000000000851034f000000000808043b000000010900008a000007a00a000041000000000998004b000000000900001900000000090a2019000007a008800197000007a00b80009c000000000a008019000007a008800167000007a00880009c000000000a09c019000000600800003900000000090a004b00000d870000c13d000007a60860009c000001590000213d0000004008600039000000400080043f0000002008600039000007a909000041000000000098043500000001080000390000000000860435000000000806001900000d870000013d000007a60140009c000001590000213d0000004001400039000000400010043f000000010100003a000000000514043600000000030000310000000101000367000000000631034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807200210000007a008000041000000000202004b000000000807c019000007a702600197000000000282019f0000000000250435000000400200043d00000020052000390000000006040433000000000706004b00000a3b0000613d000000000700001900000000085700190000002007700039000000000947001900000000090904330000000000980435000000000867004b00000a340000413d0000000004560019000007c005000041000000000054043500000000042400490000001e0540008a000000000052043500000021044000390000000a0540017f0000000004250019000000000554004b000000000500001900000001050040390000079f0640009c000001590000213d0000000105500190000001590000c13d0000000d06000029000001c405600039000000400040043f000000000451034f0000000005630049000000230550008a000000000404043b000007ed0000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000831034f000000010300003a00000000033704360000000008800350000000000808043b0000000000830435000001c10000613d000007a708800197000000f806600210000000000686019f000007ac066000410000000000630435000000400300043d00000020063000390000000008070433000000000908004b00000a700000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b00000a690000413d00000000076800190000000000070435000000800800043d000000000908004b00000a7d0000613d0000000009000019000000000a790019000000a00b900039000000000b0b04330000000000ba04350000002009900039000000000a89004b00000a760000413d00000000077800190000000000070435000000090c00002900000000080c0433000000000908004b00000a8b0000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000a840000413d000000000778001900000000000704350000000b0c00002900000000080c0433000000000908004b00000a990000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000a920000413d00000000077800190000000000070435000000080c00002900000000080c0433000000000908004b00000aa70000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000aa00000413d00000000077800190000000000070435000000070c00002900000000080c0433000000000908004b00000ab50000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000aae0000413d000000000551034f00000000017800190000001f0740018f0000000000010435000000050840027200000ac40000613d0000000009000019000000050a900210000000000ba10019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000abc0000413d000000000907004b00000ad30000613d0000000508800210000000000585034f00000000088100190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f0000000000580435000000000141001900000000000104350000000004020433000000000504004b00000ae00000613d000000000500001900000000071500190000002005500039000000000825001900000000080804330000000000870435000000000745004b00000ad90000413d000000000114001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000a0210017f0000000001320019000000000221004b000000000200001900000001020040390000079f0410009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b010000410000079b0260009c0000000006018019000000400260021000000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000000c030000290000000d020000290000009f0000613d000d00000002001d0000000102000367000c00000003001d000000000332034f000000000101043b000b00000001001d000000000103043b000000710310008c00000d220000c13d0000000c09000029000001e001900039000000000312034f00000000010000310000000d0410006a000000230440008a000000000303043b000007a005000041000000000643004b00000000060000190000000006058019000007a004400197000007a007300197000000000847004b0000000005008019000000000447013f000007a00440009c000000000506c019000000000405004b0000009f0000c13d0000000003930019000000000232034f000000000202043b0000079f0420009c0000009f0000213d00000000042100490000002001300039000007a003000041000000000541004b00000000050000190000000005032019000007a004400197000007a006100197000000000746004b0000000003008019000000000446013f000007a00440009c000000000305c019000000000303004b0000009f0000c13d1e681dc60000040f000000400200043d00000040032000390000000000130435000000400100003900000000011204360000000b030000290000000000310435000007c50320009c000001590000213d0000006003200039000000400030043f0000079b030000410000079b0410009c0000000001038019000000400110021000000000020204330000079b0420009c00000000020380190000006002200210000000000112019f00000000020004140000079b0420009c0000000002038019000000c002200210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b000000400200043d00000020032000390000000b04000029000000000043043500000000001204350000079b010000410000079b0320009c00000000020180190000004001200210000007c6011001c700001e690001042e0000079b01100197000000000113034f00000000025200490000079b0220019700000000012103df000000c002400210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b04300197000000010220019000000c930000613d0000003f02400039000007b302200197000000400500043d0000000002250019000000000352004b000000000300001900000001030040390000079f0620009c000001590000213d0000000103300190000001590000c13d000000400020043f000000000245043600000001030003670000001f06400039000000050660027200000b8c0000613d000000000730036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b00000b840000413d000000000600004b00000b8e0000613d0000001f0640018f000000050440027200000b9a0000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000847004b00000b920000413d000000000706004b00000ba90000613d0000000504400210000000000141034f00000000044200190000000306600210000000000704043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001404350000000001050433000000200110008c00000c590000c13d0000000d0b0000290000006401b00039000000000113034f0000004404b00039000000000543034f0000002404b00039000000000443034f0000012406b00039000000000663034f0000010407b00039000000000773034f000000e408b00039000000000883034f000000c409b00039000000000993034f000000a40ab00039000000000aa3034f000000840bb00039000000000bb3034f0000000c03300360000000000303043b000000000404043b000000000505043b000000000c01043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b000000000606043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a0021000390000000b0d0000290000000000d2043500000180021000390000000a0d0000290000000000d2043500000160021000390000000000620435000001400210003900000000007204350000012002100039000000000082043500000100021000390000000000920435000000e0021000390000000000a20435000000c0021000390000000000b20435000000a0021000390000000000c204350000008002100039000000000052043500000060021000390000000000420435000000400210003900000000003204350000002002100039000007b7030000410000000000320435000001c0030000390000000000310435000007b80310009c000001590000213d000001e003100039000000400030043f0000079b040000410000079b0320009c0000000002048019000000400220021000000000010104330000079b0310009c00000000010480190000006001100210000000000121019f00000000020004140000079b0320009c0000000002048019000000c002200210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b000a00000001001d000000400100043d000b00000001001d000007a401000041000000000010043900000000010004140000079b0210009c0000079b01008041000000c001100210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d0000000b040000290000002002400039000000000101043b000007b9030000410000000000320435000000800340003900000000001304350000006001400039000007ba0300004100000000003104350000004001400039000007bb03000041000000000031043500000080010000390000000000140435000007bc0140009c000001590000213d0000000b04000029000000a001400039000000400010043f0000079b010000410000079b0320009c0000000002018019000000400220021000000000030404330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000301043b000000400100043d00000042021000390000000a0400002900000000004204350000002002100039000007bd0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000007be0310009c000001590000213d0000008003100039000000400030043f0000079b030000410000079b0420009c0000000002038019000000400220021000000000010104330000079b0410009c00000000010380190000006001100210000000000121019f00000000020004140000079b0420009c0000000002038019000000c002200210000000000112019f00000afe0000013d000000400100043d0000004402100039000007b503000041000000000032043500000024021000390000001f030000390000000000320435000007a10200004100000000002104350000000402100039000000200300003900000000003204350000079b020000410000079b0310009c00000000010280190000004001100210000007b6011001c700001e6a00010430000000380840008c00000cd60000413d00000020094002700000079b0840009c000000000904a0190000079b0840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a70009c000001590000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000007a70aa00197000000f80b800210000000000aab019f000007ab0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf00000021097000390000000000890435000000000807001900000ce70000013d0000001f0340018f000000050240027200000c9e0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000c970000413d000000000503004b00000cac0000613d00000003033002100000000502200210000000000502043300000000053501cf000000000535022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000120435000000600140021000001e6a00010430000000380840008c00000d760000413d00000020094002700000079b0840009c000000000904a0190000079b0840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a60009c000001590000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000007a70aa00197000000f80b800210000000000aab019f000007ab0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf00000021096000390000000000890435000000000806001900000d870000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a400210000007a7099001970000000009a9019f000007a00990016700000000009804350000000008070019000000400700043d000007a60970009c000001590000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b90435000001c10000613d000007a702b00197000007ac0a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d0000079f09900197000000380d90008c00000e1e0000413d000000200d9002700000079b0c90009c000000000d09a0190000079b0c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000007a60ea0009c000001590000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba0435000001c10000613d000000f80bc0021000000000022b019f000007ad022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a00039000000000029043500000e2b0000013d000000000301004b00000dc20000c13d000000400100043d000a00000001001d0000000c010000290000010004100039000000000142034f000000000301043b000000800130008c00000e900000413d0000008001300270000007a80530009c000000000103a019000007a80530009c0000000005000019000000100500203900000008065001bf0000079f0710009c000000000605a01900000040051002700000079f0710009c000000000501a01900000004016001bf0000079b0750009c000000000106a01900000020065002700000079b0750009c000000000605a01900000002051001bf0000ffff0760008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004106500039000000000116016f0000000a011000290000000a0610006c000000000600001900000001060040390000079f0710009c000001590000213d0000000106600190000001590000c13d000000400010043f00000002015000390000000a06000029000000000616043600000000010000310000002107500039000000050770027200000d620000613d000000000812034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000d5a0000413d000000000700004b00000d640000613d0000000a070000290000000007070433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000000a05000029000000210550003900000ea40000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a400210000007a7099001970000000009a9019f000007a00990016700000000009804350000000008060019000000400600043d000007a60960009c000001590000213d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b90435000001c10000613d000007a702b00197000007ac0a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d0000079f09900197000000380d90008c00000f4d0000413d000000200d9002700000079b0c90009c000000000d09a0190000079b0c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000007a60ea0009c000001590000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba0435000001c10000613d000000f80bc0021000000000022b019f000007ad022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a00039000000000029043500000f5a0000013d000000020210008c00000ef10000c13d0000000001000415000a00000001001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c00000fd00000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f00000002015000390000000006130436000000010100036700000000020000310000002107500039000000050770027200000e0c0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000e040000413d000000000700004b00000e0e0000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c0000000004002019000000210530003900000fe30000013d000007a60da0009c000001590000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b000001c10000613d000000f809900210000000000229019f000007ac0220004100000000002d0435000000400200043d0000002009200039000007ae0b0000410000000000b90435000000210b200039000000000c0a0433000000000d0c004b00000e3b0000613d000000000d000019000000000ebd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ecd004b00000e340000413d000000000abc001900000000000a0435000000000b060433000000000c0b004b00000e480000613d000000000c000019000000000dac0019000000200cc00039000000000e6c0019000000000e0e04330000000000ed0435000000000dbc004b00000e410000413d0000000006ab00190000000000060435000000000a080433000000000b0a004b00000e550000613d000000000b000019000000000c6b0019000000200bb00039000000000d8b0019000000000d0d04330000000000dc0435000000000cab004b00000e4e0000413d000000000551034f00000000016a00190000001f0640018f0000000000010435000000050840027200000e640000613d000000000a000019000000050ba00210000000000cb10019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000e5c0000413d000000000a06004b00000e730000613d0000000508800210000000000585034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f0000000000580435000000000141001900000000000104350000000004070433000000000504004b00000e800000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00000e790000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f01100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000079f0410009c000001590000213d000000010330019000000fbe0000613d000001590000013d0000000a01000029000007a60110009c000001590000213d0000000a050000290000004001500039000000400010043f000000010100003a00000000051504360000000001000031000000000612034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807300210000007a008000041000000000303004b000000000807c019000007a703600197000000000383019f0000000000350435000000400300043d000000600440008a000000000542034f000000000505043b000000800650008c000010310000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007730019000000000837004b000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f000000020760003900000000077304360000002108600039000000050880027200000edf0000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000ed70000413d000000000800004b00000ee10000613d0000000008030433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106300039000010420000013d000000010110008c00000fc90000c13d0000000001000415000a00000001001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c0000108f0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f00000002015000390000000006130436000000010100036700000000020000310000002107500039000000050770027200000f3b0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f330000413d000000000700004b00000f3d0000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000010a20000013d000007a60da0009c000001590000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b000001c10000613d000000f809900210000000000229019f000007ac0220004100000000002d0435000000400200043d0000002009200039000007af0b0000410000000000b90435000000210b200039000000000c0a0433000000000d0c004b00000f6a0000613d000000000d000019000000000ebd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ecd004b00000f630000413d000000000abc001900000000000a0435000000000b070433000000000c0b004b00000f770000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b00000f700000413d0000000007ab00190000000000070435000000000a080433000000000b0a004b00000f840000613d000000000b000019000000000c7b0019000000200bb00039000000000d8b0019000000000d0d04330000000000dc0435000000000cab004b00000f7d0000413d000000000551034f00000000017a00190000001f0740018f0000000000010435000000050840027200000f930000613d000000000a000019000000050ba00210000000000cb10019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000f8b0000413d000000000a07004b00000fa20000613d0000000508800210000000000585034f00000000088100190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f0000000000580435000000000141001900000000000104350000000004060433000000000504004b00000faf0000613d000000000500001900000000071500190000002005500039000000000865001900000000080804330000000000870435000000000745004b00000fa80000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f01100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000079f0410009c000001590000213d0000000103300190000001590000c13d000000400010043f0000079b010000410000079b0390009c0000000009018019000000400390021000000000020204330000079b0420009c00000000020180190000006002200210000000000232019f00000af90000013d000000400100043d0000004402100039000007c10300004100000000003204350000002402100039000000130300003900000c5f0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400500043d0000000d040000290000010404400039000000000641034f000000000606043b000000800760008c000010f00000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008850436000000210970003900000005099002720000101f0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000010170000413d000000000900004b000010210000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000011010000013d000007a60630009c000001590000213d0000004006300039000000400060043f000000000712034f000000010600003a00000000066304360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400440008a000000000542034f000000400400043d000000000505043b000000800650008c0000114e0000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000007740436000000210860003900000005088002720000107d0000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000010750000413d000000000800004b0000107f0000613d0000000008040433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000021064000390000115f0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400500043d0000000d040000290000010404400039000000000641034f000000000606043b000000800760008c000011ef0000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000885043600000021097000390000000509900272000010de0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000010d60000413d000000000900004b000010e00000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000012000000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000000821034f000000010700003a00000000077504360000000008800350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400600043d000000400440008a000000000741034f000000000707043b000000800870008c0000124d0000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009960019000000000a69004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009960436000000210a800039000000050aa002720000113c0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000011340000413d000000000a00004b0000113e0000613d000000000a060433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c000000000700201900000021086000390000125e0000013d000007a60640009c000001590000213d0000004006400039000000400060043f000000000712034f000000010600003a00000000066404360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400500043d000900000005001d00000020055000390000000006030433000000000706004b0000116e0000613d000000000700001900000000085700190000002007700039000000000937001900000000090904330000000000980435000000000867004b000011670000413d000000000356001900000000000304350000000005040433000000000605004b0000117b0000613d000000000600001900000000073600190000002006600039000000000846001900000000080804330000000000870435000000000756004b000011740000413d0000000003350019000000000003043500000009050000290000000003530049000000200430008a00000000004504350000001f033000390007002000000092000000070330017f0000000004530019000000000334004b00000000030000190000000103004039000800000004001d0000079f0440009c000001590000213d0000000103300190000001590000c13d0000000803000029000000400030043f000007a60330009c000001590000213d0000000d060000290000004403600039000000000332034f000000000303043b00000008070000290000004004700039000000400040043f0000002004700039000007aa050000410000000000540435000000150400003900000000004704350000006003300210000000210470003900000000003404350000012403600039000000000432034f000000400500043d000600000005001d000000000404043b000000800540008c000013090000413d0000008005400270000007a80640009c000000000504a019000007a80640009c0000000006000019000000100600203900000008076001bf0000079f0850009c000000000706a01900000040065002700000079f0850009c000000000605a01900000004087001bf0000079b0560009c000000000807a01900000020076002700000079b0560009c000000000706a01900000002058001bf0000ffff0670008c000000000508a0190000001006700270000000000607a019000000ff0660008c00000001055020390000004106500039000000070660017f0000000606600029000000060760006c000000000700001900000001070040390000079f0860009c000001590000213d0000000107700190000001590000c13d000000400060043f00000002065000390000000607000029000000000667043600000021075000390000000507700272000011db0000613d000000000812034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000011d30000413d000000000700004b000011dd0000613d00000006070000290000000007070433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c0000000004002019000000060500002900000021055000390000131c0000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000000821034f000000010700003a00000000077504360000000008800350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400600043d000000600440008a000000000741034f000000000707043b000000800870008c000012ab0000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009960019000000000a69004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009960436000000210a800039000000050aa002720000123b0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000012330000413d000000000a00004b0000123d0000613d000000000a060433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c00000000070020190000002108600039000012bc0000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000200440008a000000000841034f000000000808043b000000800980008c000013630000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000012990000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000012910000413d000000000b00004b0000129b0000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000013740000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000400440008a000000000841034f000000000808043b000000800980008c000013c20000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000012f70000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000012ef0000413d000000000b00004b000012f90000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000013d30000013d0000000605000029000007a60550009c000001590000213d00000006070000290000004005700039000000400050043f000000000612034f000000010500003a00000000055704360000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f00000000004504350000000c0a0000290000000006a10049000000a004300039000000000342034f000000000503043b0000001f0360008a000007a006300197000007a007500197000007a008000041000000000967004b00000000090000190000000009084019000000000667013f000000000735004b0000000008004019000007a00660009c000000000908c019000000000609004b0000009f0000c13d0000000006a50019000000000562034f000000000505043b0000079f0750009c0000009f0000213d00000000075100490000002006600039000007a008000041000000000976004b00000000090000190000000009082019000007a007700197000007a00a600197000000000b7a004b000000000800801900000000077a013f000007a00770009c000000000809c019000000000708004b0000009f0000c13d000000010750008c000015600000c13d000000000562034f000000000505043b000000010600008a000007a007000041000000000665004b00000000060000190000000006072019000007a005500197000007a00850009c0000000007008019000007a005500167000007a00550009c000000000706c019000500600000003d000000000507004b000016630000c13d000000400500043d000500000005001d000007a60550009c000001590000213d00000005070000290000004005700039000000400050043f0000002005700039000007a906000041000000000065043500000001050000390000000000570435000016630000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400800043d00090040004000920000000909100360000000000909043b000000800a90008c000014330000413d000000800a900270000007a80b90009c000000000a09a019000007a80b90009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000013af0000613d000000000d21034f000000000e000019000000050fe002100000000004fb0019000000000ffd034f000000000f0f043b0000000000f40435000000010ee000390000000004ce004b000013a70000413d000000000400004b000013b10000613d0000000004080433000000000404004b000001c10000613d00000000040b0433000007a704400197000000f80ca0021000000000044c019f000007a90440004100000000004b04350000000304a00210000000f80440008900000000094901cf000000ff0440008c000000000900201900000021048000390000000000940435000014450000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400900043d000007a60890009c000001590000213d000000200840008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000007aa0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c004400039000000000441034f000000400800043d000000000404043b000900000004001d000000800a40008c000014a80000413d0000000904000029000000800a400270000007a80b40009c000000000a04a019000007a80b40009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000014200000613d000000000d21034f000000000e000019000000050fe002100000000004fb0019000000000ffd034f000000000f0f043b0000000000f40435000000010ee000390000000004ce004b000014180000413d000000000400004b000014220000613d0000000004080433000000000404004b000001c10000613d00000000040b0433000007a704400197000000f80ca0021000000000044c019f000007a90440004100000000004b04350000000304a00210000000f804400089000000090a4001ef000000ff0440008c000000000a00201900000021048000390000000000a40435000014bb0000013d000007a60480009c000001590000213d0000004004800039000000400040043f000000000421034f000000010a00003a000000000aa804360000000004400350000000000b04043b0000000000ba0435000001c10000613d000000f804900210000007a00c000041000000000909004b000000000c04c019000007a704b001970000000004c4019f00000000004a0435000000400a00043d000007a604a0009c000001590000213d000000090c0000290000002004c0008a000000000441034f000000000404043b0000004009a00039000000400090043f0000002009a00039000007aa0b0000410000000000b90435000000150900003900000000009a043500000060044002100000002109a000390000000000490435000000c004c00039000000000441034f000000400900043d000000000404043b000900000004001d000000800b40008c0000158c0000413d0000000904000029000000800b400270000007a80c40009c000000000b04a019000007a80c40009c000000000c000019000000100c002039000000080dc001bf0000079f0eb0009c000000000d0ca019000000400cb002700000079f0eb0009c000000000c0ba019000000040ed001bf0000079b0bc0009c000000000e0da019000000200dc002700000079b0bc0009c000000000d0ca0190000000204e001bf0000ffff0cd0008c00000000040ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000104402039000000200c00008a000800000004001d000000410d400039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000079f0ec0009c000001590000213d000000010dd00190000001590000c13d0000004000c0043f0000000804000029000000020c400039000000000cc90436000000210d400039000000050dd00272000014940000613d000000000e21034f000000000f0000190000000504f00210000000000b4c001900000000044e034f000000000404043b00000000004b0435000000010ff000390000000004df004b0000148c0000413d000000000400004b000014960000613d0000000004090433000000000404004b000001c10000613d00000000040c0433000007a704400197000000080d000029000000f80bd0021000000000044b019f000007a90440004100000000004c04350000000304d00210000000f804400089000000090b4001ef000000ff0440008c000000000b00201900000021049000390000000000b404350000159f0000013d000007a60480009c000001590000213d0000004004800039000000400040043f000000000421034f000000010a00003a000000000aa804360000000004400350000000000b04043b0000000000ba0435000001c10000613d000000090d000029000000f804d00210000007a00c000041000000000d0d004b000000000c04c019000007a704b001970000000004c4019f00000000004a0435000000400400043d000000200a400039000000000b030433000000000c0b004b000014c80000613d000000000c000019000000000dac0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dbc004b000014c10000413d0000000003ab00190000000000030435000000000a050433000000000b0a004b000014d50000613d000000000b000019000000000c3b0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000cab004b000014ce0000413d00000000033a001900000000000304350000000005060433000000000a05004b000014e20000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b5a004b000014db0000413d000000000335001900000000000304350000000005070433000000000605004b000014ef0000613d0000000006000019000000000a3600190000002006600039000000000b760019000000000b0b04330000000000ba0435000000000a56004b000014e80000413d000000000335001900000000000304350000000005090433000000000605004b000014fc0000613d000000000600001900000000073600190000002006600039000000000a960019000000000a0a04330000000000a70435000000000756004b000014f50000413d000000000335001900000000000304350000000005080433000000000605004b000015090000613d000000000600001900000000073600190000002006600039000000000986001900000000090904330000000000970435000000000756004b000015020000413d000000000335001900000000000304350000000003430049000000200530008a00000000005404350000001f05300039000000200300008a000000000535016f0000000007450019000000000557004b000000000500001900000001050040390000079f0670009c000001590000213d0000000105500190000001590000c13d000000400070043f0000000c0d0000290000000006d200490000000d05000029000001c40c5000390000000005c1034f000000000505043b0000001f0960008a000007a006900197000007a008500197000007a00a000041000000000b68004b000000000b000019000000000b0a4019000000000668013f000000000895004b000000000a004019000007a00660009c000000000b0ac01900000000060b004b0000009f0000c13d0000000006d50019000000000561034f000000000505043b0000079f0850009c0000009f0000213d00000000085200490000002006600039000007a00a000041000000000b86004b000000000b000019000000000b0a2019000007a008800197000d00000006001d000007a00d600197000000000e8d004b000000000a00801900000000088d013f000007a00880009c000000000a0bc01900000000080a004b0000009f0000c13d000000010850008c0000173d0000c13d0000000d08100360000000000808043b000000010a00008a000007a00b000041000000000aa8004b000000000a000019000000000a0b2019000007a008800197000007a00d80009c000000000b008019000007a008800167000007a00880009c000000000b0ac0190000006008000039000000000a0b004b0000179e0000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a90a0000410000000000a804350000000108000039000000000087043500000000080700190000179e0000013d000000400600043d000500000006001d000000380650008c000016510000413d00000020075002700000079b0650009c000000000705a0190000079b0650009c0000000008000019000000040800203900000002068001bf0000ffff0970008c000000000608a0190000001008700270000000000807a019000000ff0780008c000000000700001900000001070020390000000508000029000007a60880009c000001590000213d000000000676019f00000005090000290000004007900039000000400070043f000000000812034f000000020760003a00000000077904360000000008800350000000000808043b0000000000870435000001c10000613d000007a708800197000000f809600210000000000889019f000007ab088001c700000000008704350000000306600210000000f80660015f00000000056501cf000000050600002900000021066000390000000000560435000016630000013d000007a60490009c000001590000213d0000004004900039000000400040043f000000000421034f000000010b00003a000000000bb904360000000004400350000000000c04043b0000000000cb0435000001c10000613d000000090e000029000000f804e00210000007a00d000041000000000e0e004b000000000d04c019000007a704c001970000000004d4019f00000000004b0435000000400400043d000000200b400039000000000c030433000000000d0c004b000015ac0000613d000000000d000019000000000ebd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ecd004b000015a50000413d0000000003bc00190000000000030435000000000b050433000000000c0b004b000015b90000613d000000000c000019000000000d3c0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000dbc004b000015b20000413d00000000033b001900000000000304350000000005060433000000000b05004b000015c60000613d000000000b000019000000000c3b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c5b004b000015bf0000413d000000000335001900000000000304350000000005070433000000000605004b000015d30000613d0000000006000019000000000b3600190000002006600039000000000c760019000000000c0c04330000000000cb0435000000000b56004b000015cc0000413d000000000335001900000000000304350000000005080433000000000605004b000015e00000613d000000000600001900000000073600190000002006600039000000000b860019000000000b0b04330000000000b70435000000000756004b000015d90000413d0000000003350019000000000003043500000000050a0433000000000605004b000015ed0000613d0000000006000019000000000736001900000020066000390000000008a6001900000000080804330000000000870435000000000756004b000015e60000413d000000000335001900000000000304350000000005090433000000000605004b000015fa0000613d000000000600001900000000073600190000002006600039000000000896001900000000080804330000000000870435000000000756004b000015f30000413d000000000335001900000000000304350000000003430049000000200530008a00000000005404350000001f05300039000000200300008a000000000535016f0000000007450019000000000557004b000000000500001900000001050040390000079f0670009c000001590000213d0000000105500190000001590000c13d000000400070043f0000000c0d0000290000000006d200490000000d05000029000001c40c5000390000000005c1034f000000000505043b0000001f0960008a000007a006900197000007a008500197000007a00a000041000000000b68004b000000000b000019000000000b0a4019000000000668013f000000000895004b000000000a004019000007a00660009c000000000b0ac01900000000060b004b0000009f0000c13d0000000006d50019000000000561034f000000000505043b0000079f0850009c0000009f0000213d00000000085200490000002006600039000007a00a000041000000000b86004b000000000b000019000000000b0a2019000007a008800197000d00000006001d000007a00d600197000000000e8d004b000000000a00801900000000088d013f000007a00880009c000000000a0bc01900000000080a004b0000009f0000c13d000000010850008c000017650000c13d0000000d08100360000000000808043b000000010a00008a000007a00b000041000000000aa8004b000000000a000019000000000a0b2019000007a008800197000007a00d80009c000000000b008019000007a008800167000007a00880009c000000000b0ac0190000006008000039000000000a0b004b0000187d0000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a90a0000410000000000a804350000000108000039000000000087043500000000080700190000187d0000013d0000000506000029000007a60660009c000001590000213d00000005080000290000004006800039000000400060043f000000000712034f000000010600003a00000000066804360000000007700350000000000707043b0000000000760435000001c10000613d000000f805500210000007a707700197000000000557019f000007a00550016700000000005604350000002004400039000000000442034f000000000404043b000007a005000041000000000634004b00000000060000190000000006058019000007a003300197000007a007400197000000000837004b0000000005008019000000000337013f000007a00330009c000000000506c019000000000305004b0000000c030000290000009f0000c13d0000000004340019000000000342034f000000000303043b0000079f0530009c0000009f0000213d000000200530008c0000009f0000413d00000000053100490000002004400039000007a006000041000000000754004b00000000070000190000000007062019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000009f0000c13d000000000542034f000000400600043d000400000006001d000000000505043b000000800650008c000016d80000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000070770017f0000000407700029000000040870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000408000029000000000778043600000021086000390000000508800272000016c40000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000016bc0000413d000000000800004b000016c60000613d00000004080000290000000008080433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000004060000290000002106600039000016eb0000013d0000000406000029000007a60660009c000001590000213d00000004080000290000004006800039000000400060043f000000000712034f000000010600003a00000000066804360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400530008c0000009f0000413d000000400500043d000300000005001d0000002004400039000000000542034f000000000505043b000000800650008c000018290000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000070770017f0000000307700029000000030870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000017290000613d000000000112034f0000000009000019000000050a900210000000000ba70019000000000aa1034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000017210000413d000000000100004b0000172b0000613d00000003010000290000000001010433000000000101004b000001c10000613d0000000001070433000007a701100197000000f808600210000000000118019f000007a90110004100000000001704350000000301600210000000f80110008900000000051501cf000000ff0110008c0000000005002019000000030100002900000021011000390000183c0000013d000000380850008c0000178d0000413d000000200a5002700000079b0850009c000000000a05a0190000079b0850009c000000000b000019000000040b0020390000000208b001bf0000ffff0da0008c00000000080ba019000000100ba00270000000000b0aa019000000ff0ab0008c000000000a000019000000010a002039000007a60b70009c000001590000213d0000000008a8019f000000400a7000390000004000a0043f000000000b21034f000000020a80003a000000000aa70436000000000bb00350000000000b0b043b0000000000ba0435000001c10000613d000007a70bb00197000000f80d800210000000000bbd019f000007ab0bb001c70000000000ba04350000000308800210000000f80880015f00000000088501cf000000210a70003900000000008a043500000000080700190000179e0000013d000000380850008c0000186c0000413d000000200a5002700000079b0850009c000000000a05a0190000079b0850009c000000000b000019000000040b0020390000000208b001bf0000ffff0da0008c00000000080ba019000000100ba00270000000000b0aa019000000ff0ab0008c000000000a000019000000010a002039000007a60b70009c000001590000213d0000000008a8019f000000400a7000390000004000a0043f000000000b21034f000000020a80003a000000000aa70436000000000bb00350000000000b0b043b0000000000ba0435000001c10000613d000007a70bb00197000000f80d800210000000000bbd019f000007ab0bb001c70000000000ba04350000000308800210000000f80880015f00000000088501cf000000210a70003900000000008a043500000000080700190000187d0000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000a21034f000000010800003a0000000008870436000000000aa00350000000000a0a043b0000000000a80435000001c10000613d000000f80b500210000007a70aa00197000000000aba019f000007a00aa001670000000000a804350000000008070019000000400700043d000007a60a70009c000001590000213d000000400a7000390000004000a0043f000000000d21034f000000010600003a000700000006001d000000000f6704360000000006d003500008000000060353000000000606043b000900000006001d00000000006f0435000001c10000613d0000000906000029000007a706600197000600000006001d000007ac0b6001c70000000000bf0435000000200bc00039000000000bb1034f000000000c0b043b000007a00b000041000000000f9c004b000000000f000019000000000f0b8019000007a009900197000007a00ec00197000000000a9e004b000000000b00801900000000099e013f000007a00990009c000000000b0fc01900000000090b004b0000000c060000290000009f0000c13d00000000096c0019000000000a91034f00000000060a043b000c00000006001d0000079f0a60009c0000009f0000213d0000000c06000029000000200a60008c0000009f0000413d0000000c0220006a0000002006900039000007a009000041000000000a26004b000000000a000019000000000a092019000007a002200197000400000006001d000007a00b600197000000000c2b004b000000000900801900000000022b013f000007a00220009c00000000090ac019000000000209004b0000009f0000c13d0000000409100360000000400200043d000000000609043b000500000006001d000000800a60008c000000200f200039000019080000413d0000000506000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0ea0009c000000000c0ba019000000400ba002700000079f0ea0009c000000000b0aa019000000040ec001bf0000079b0ab0009c000000000e0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ae001bf0000ffff0bc0008c000000000a0ea019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000410ba00039000000000b3b016f000000000cb20019000000000b2c004b000000000e000019000000010e0040390000079f0bc0009c000001590000213d000000010be00190000001590000c13d0000004000c0043f000000020ba000390000000000b20435000000210ba00039000000050eb00272000018160000613d000000000c000019000000050bc002100000000009bf0019000000000bbd034f000000000b0b043b0000000000b90435000000010cc000390000000009ec004b0000180e0000413d000000000600004b000018180000613d0000000009020433000000000909004b000001c10000613d00000000090f0433000007a709900197000000f80ba0021000000000099b019f000007a90990004100000000009f04350000000309a00210000000f809900089000000050a9001ef000000ff0990008c000000000a00201900000021092000390000000000a90435000019190000013d0000000306000029000007a60660009c000001590000213d00000003070000290000004006700039000000400060043f000000000612034f000000010100003a00000000011704360000000006600350000000000606043b0000000000610435000001c10000613d000000f807500210000007a008000041000000000505004b000000000807c019000007a705600197000000000585019f0000000000510435000000410130008c000001c10000413d0000002001400039000000000112034f000000000101043b000000f801100270000200000001001d0000001b0110008a000000020110008c00001d060000813d0000000d01000029000101440010003d0000000101200360000000000101043b000000000101004b00001a920000613d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000000201043b0000000101200210000000000302004b000018630000613d000000090300008a000000000331004b000018670000213d00000000322100d9000000020220008c000018670000c13d00000002011000290000000803100039000000020130006c0000196e0000813d000007c30100004100000000001004350000001101000039000001c40000013d000000000001042f000007a60870009c000001590000213d0000004008700039000000400080043f000000000a21034f000000010800003a0000000008870436000000000aa00350000000000a0a043b0000000000a80435000001c10000613d000000f80b500210000007a70aa00197000000000aba019f000007a00aa001670000000000a804350000000008070019000000400700043d000007a60a70009c000001590000213d000000400a7000390000004000a0043f000000000d21034f000000010600003a000900000006001d000000000a6704360000000006d003500007000000060353000000000606043b000800000006001d00000000006a0435000001c10000613d0000000806000029000007a706600197000500000006001d000007ac0f6001c70000000000fa0435000000200ac00039000000000aa1034f000000000a0a043b000007a00c000041000000000f9a004b000000000f000019000000000f0c8019000007a009900197000007a00ea00197000000000b9e004b000000000c00801900000000099e013f000007a00990009c000000000c0fc01900000000090c004b0000000c060000290000009f0000c13d00000000096a0019000000000a91034f00000000060a043b000c00000006001d0000079f0a60009c0000009f0000213d0000000c06000029000000200a60008c0000009f0000413d0000000c0220006a0000002006900039000007a009000041000000000a26004b000000000a000019000000000a092019000007a002200197000400000006001d000007a00b600197000000000e2b004b000000000900801900000000022b013f000007a00220009c00000000090ac019000000000209004b0000009f0000c13d0000000409100360000000400200043d000000000609043b000600000006001d000000800a60008c000000200f200039000019ba0000413d0000000606000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080eb001bf0000079f0ca0009c000000000e0ba019000000400ba002700000079f0ca0009c000000000b0aa019000000040ae001bf0000079b0cb0009c000000000a0ea019000000200cb002700000079b0eb0009c000000000c0ba019000000020ba001bf0000ffff0ec0008c000000000b0aa019000000100ac00270000000000a0ca019000000ff0aa0008c000000010bb02039000000410ab00039000000000a3a016f000000000aa20019000000000c2a004b000000000e000019000000010e0040390000079f0ca0009c000001590000213d000000010ce00190000001590000c13d0000004000a0043f000000020ab000390000000000a20435000000210ab00039000000050aa00272000018f50000613d000000000e000019000000050ce002100000000009cf0019000000000ccd034f000000000c0c043b0000000000c90435000000010ee000390000000009ae004b000018ed0000413d000000000600004b000018f70000613d0000000009020433000000000909004b000001c10000613d00000000090f0433000007a709900197000000f80ab0021000000000099a019f000007a90990004100000000009f04350000000309b00210000000f809900089000000060a9001ef000000ff0990008c000000000a00201900000021092000390000000000a90435000019cb0000013d000007a60920009c000001590000213d0000004009200039000000400090043f000000090600002900000000006f043500000007060000290000000000620435000000000906004b000001c10000613d0000000506000029000000f809600210000007a00a000041000000000b06004b000000000a09c0190000000609a001af00000000009f04350000000c06000029000000400960008c0000009f0000413d000000400900043d0000000406000029000500200060003d000000050a10036000000000060a043b000900000006001d000000800a60008c000000200e90003900001a200000413d0000000906000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0fa0009c000000000c0ba019000000400ba002700000079f0fa0009c000000000b0aa019000000040fc001bf0000079b0ab0009c000000000f0ca019000000200cb002700000079b0ab0009c000000000c0ba0190000000206f001bf0000ffff0bc0008c00000000060fa019000000100bc00270000000000b0ca019000000ff0bb0008c0000000106602039000600000006001d000000410b600039000000000b3b016f000000000cb90019000000000b9c004b000000000f000019000000010f0040390000079f0bc0009c000001590000213d000000010bf00190000001590000c13d0000004000c0043f0000000606000029000000020b6000390000000000b90435000000210b600039000000050cb002720000195a0000613d000000000f000019000000050bf00210000000000abe0019000000000bbd034f000000000b0b043b0000000000ba0435000000010ff00039000000000acf004b000019520000413d000000000600004b0000195c0000613d000000000a090433000000000a0a004b000001c10000613d000000000a0e0433000007a70aa001970000000606000029000000f80b600210000000000aab019f000007a90aa000410000000000ae0435000000030a600210000000f80aa00089000000090ba001ef000000ff0aa0008c000000000b002019000000210a9000390000000000ba043500001a330000013d000000800130008c000200000003001d00001a920000413d0000008001300270000007a80230009c000000000103a019000007a80230009c0000000002000019000000100200203900000008042001bf0000079f0510009c000000000402a01900000040021002700000079f0510009c000000000201a01900000004014001bf0000079b0520009c000000000104a01900000020042002700000079b0520009c000000000402a01900000002051001bf0000ffff0240008c000000000501a0190000001001400270000000000104a019000000ff0110008c00000001055020390000004101500039000000070210017f000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000079f0620009c000001590000213d0000000104400190000001590000c13d000000400020043f000000020250003900000000062104360000000102000367000000000400003100000021075000390000000507700272000019a70000613d000000000842034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000199f0000413d000000000700004b000019a90000613d0000000007010433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105100039000000000035043500001aa80000013d000007a60920009c000001590000213d0000004009200039000000400090043f000000080600002900000000006f043500000009060000290000000000620435000000000906004b000001c10000613d0000000606000029000000f809600210000007a00a000041000000000b06004b000000000a09c0190000000509a001af00000000009f04350000000c06000029000000400960008c0000009f0000413d000000400900043d0000000406000029000500200060003d000000050a10036000000000060a043b000800000006001d000000800a60008c000000200e90003900001b110000413d0000000806000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0fa0009c000000000c0ba019000000400ba002700000079f0fa0009c000000000b0aa019000000040ac001bf0000079b0fb0009c000000000a0ca019000000200cb002700000079b0fb0009c000000000c0ba0190000000206a001bf0000ffff0fc0008c00000000060aa019000000100ac00270000000000a0ca019000000ff0aa0008c0000000106602039000600000006001d000000410a600039000000000a3a016f000000000aa90019000000000c9a004b000000000c000019000000010c0040390000079f0fa0009c000001590000213d000000010cc00190000001590000c13d0000004000a0043f0000000606000029000000020a6000390000000000a90435000000210a600039000000050aa0027200001a0c0000613d000000000c000019000000050fc00210000000000bfe0019000000000ffd034f000000000f0f043b0000000000fb0435000000010cc00039000000000bac004b00001a040000413d000000000600004b00001a0e0000613d000000000a090433000000000a0a004b000001c10000613d000000000a0e0433000007a70aa001970000000606000029000000f80b600210000000000aab019f000007a90aa000410000000000ae0435000000030a600210000000f80aa00089000000080ba001ef000000ff0aa0008c000000000b002019000000210a9000390000000000ba043500001b240000013d000007a60a90009c000001590000213d000000400a9000390000004000a0043f000000070b0000290000000000b90435000000080600035f000000000a06043b0000000000ae0435000000000b0b004b000001c10000613d0000000906000029000000f80b600210000007a00c000041000000000d06004b000000000c0bc019000007a70aa00197000000000aca019f0000000000ae04350000000c06000029000000410a60008c000001c10000413d0000000506000029000000200a600039000000000ba1034f000000000a000415000000110aa0008a000000200aa000c9000007a00d000041000000000b0b043b000000f80cb002700000001b0bc0008c00001a470000613d000000000a000415000000100aa0008a000000200aa000c9000007ae0d0000410000001c0bc0008c00001d060000c13d000000400c00043d000007a60bc0009c000001590000213d000000400bc000390000004000b0043f000000070b000029000000000ebc0436000000080600035f000000000f06043b0000000000fe0435000000000b0b004b000001c10000613d000007a70bf00197000000000bdb019f0000000000be0435000000000b040433000000000d080433000000050aa00270000000000a0c001f000000000a5d0019000000000aba0019000000000b070433000000000aba0019000000000b020433000000000aba0019000000000b090433000000000aba0019000000000b0c0433000000000aba0019000000400d00043d0000079f06a00197000900000006001d000000380b60008c0006004000d0003d000c002000d0003d00001b810000413d0000000906000029000000200f6002700000079b0b60009c000000000f06a0190000079b0b60009c000000000e000019000000040e002039000000020be001bf0000ffff0af0008c000000000b0ea019000000100af00270000000000a0fa019000000ff0aa0008c000000000f000019000000010f002039000007a60ad0009c000001590000213d000000000bfb019f0000000606000029000000400060043f000000020ab0003a0000000000ad0435000000080600035f000000000f06043b0000000c060000290000000000f60435000001c10000613d000007a70af00197000000f80eb00210000000000aae019f000007ad0aa001c70000000c060000290000000000a60435000000030ab00210000000f80aa0015f000000090aa001ef000000210bd000390000000000ab043500001b940000013d000000400100043d000007a60210009c000001590000213d0000004002100039000000400020043f000000010200003a000000000321043600000000040000310000000102000367000000000542034f0000000005500350000000000505043b0000000000530435000001c10000613d0000000208000029000000f806800210000007a007000041000000000808004b000000000706c019000007a705500197000000000575019f000000000053043500000001030000290000008003300039000000000332034f0000000d0540006a000000230550008a000000000303043b000007a006000041000000000753004b00000000070000190000000007068019000007a005500197000007a008300197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c060000290000009f0000c13d0000000a050000290000000005050433000000090700002900000000070704330000000808000029000000000808043300000006090000290000000009090433000000050a000029000000000a0a04330000000006630019000000000362034f000000000303043b0000079f0b30009c0000009f0000213d000000000b3400490000002006600039000007a00c000041000000000db6004b000000000d000019000000000d0c2019000007a00bb00197000007a00e600197000000000fbe004b000000000c008019000000000bbe013f000007a00bb0009c000000000c0dc019000000000b0c004b0000009f0000c13d0000000005570019000000000585001900000000059500190000000005a50019000000000535001900000004070000290000000007070433000000000575001900000003070000290000000007070433000000000575001900000000070104330000000005750019000000400700043d0000079f05500197000000380850008c0000004009700039000000000842034f000000200470003900001c390000413d000000200b5002700000079b0a50009c000000000b05a0190000079b0a50009c000000000c000019000000040c002039000000020ac001bf0000ffff0db0008c000000000a0ca019000000100cb00270000000000c0ba019000000ff0bc0008c000000000b000019000000010b002039000007a60c70009c000001590000213d000000000aba019f000000400090043f0000000209a0003a00000000009704350000000008800350000000000808043b0000000000840435000001c10000613d000007a708800197000000f809a00210000000000889019f000007ad088001c700000000008404350000000304a00210000000f80440015f00000000044501cf0000002105700039000000000045043500001c470000013d000007a60a90009c000001590000213d000000400a9000390000004000a0043f00000009060000290000000000690435000000070a00035f000000000a0a043b0000000000ae0435000000000b06004b000001c10000613d0000000806000029000000f80b600210000007a00c000041000000000d06004b000000000c0bc019000007a70aa00197000000000aca019f0000000000ae04350000000c06000029000000410a60008c000001c10000413d0000000506000029000000200a600039000000000aa1034f000000000b0004150000000f0bb0008a000000200bb000c9000007a00d000041000000000a0a043b000000f80aa002700000001b0ca0008c00001b380000613d000000000b0004150000000e0bb0008a000000200bb000c9000007ae0d0000410000001c0aa0008c00001d060000c13d000000400c00043d000007a60ac0009c000001590000213d000000400ac000390000004000a0043f0000000906000029000000000a6c0436000000070e00035f000000000e0e043b00080000000e001d0000000000ea0435000000000e06004b000001c10000613d0000000806000029000707a70060019b000000070dd001af0000000000da0435000000000a040433000000000d080433000000050bb00270000000000b0c001f000000000b5d0019000000000aab0019000000000b070433000000000aba0019000000000b020433000000000aba0019000000000b090433000000000aba0019000000000b0c0433000000000aba0019000000400d00043d0000079f0fa00197000000380af0008c0006004000d0003d000c002000d0003d00001d0d0000413d000000200ef002700000079b0af0009c000000000e0fa0190000079b0af0009c00000000060000190000000406002039000000020a6001bf0000ffff0be0008c000000000a06a019000000100be00270000000000b0ea019000000ff0bb0008c000000000e000019000000010e002039000007a60bd0009c000001590000213d000000000aea019f0000000606000029000000400060043f00000008060000290000000c0b00002900000000006b0435000000020ba0003a0000000000bd0435000001c10000613d000000f80ba00210000000070bb001af000007ad0bb001c70000000c060000290000000000b60435000000030aa00210000000f80aa0015f000000000aaf01cf000000210bd000390000000000ab043500001d1d0000013d000007a60ad0009c000001590000213d0000000606000029000000400060043f000000070a0000290000000000ad0435000000080600035f000000000f06043b0000000c060000290000000000f60435000000000a0a004b000001c10000613d000007a70af001970000000906000029000000f80b600210000000000aab019f000007ac0aa000410000000c060000290000000000a60435000000400600043d000000200a600039000007ae0b00004100090000000a001d0000000000ba0435000c00000006001d000000210e600039000000000f0d0433000000000b0f004b00001ba60000613d000000000b000019000000000aeb0019000000200bb000390000000006db0019000000000606043300000000006a04350000000006fb004b00001b9f0000413d000000000def001900000000000d0435000000000e04043300000000060e004b00001bb30000613d000000000b0000190000000006db0019000000200bb00039000000000a4b0019000000000a0a04330000000000a604350000000006eb004b00001bac0000413d000000000dde001900000000000d0435000000000e08043300000000040e004b00001bc00000613d00000000040000190000000006d400190000002004400039000000000a840019000000000a0a04330000000000a604350000000006e4004b00001bb90000413d0000000d041003600000000001de00190000001f0650018f0000000000010435000000050850027200001bcf0000613d000000000d000019000000050ad00210000000000ba10019000000000aa4034f000000000a0a043b0000000000ab0435000000010dd00039000000000a8d004b00001bc70000413d000000000a06004b00001bde0000613d0000000508800210000000000484034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004a4019f0000000000480435000000000151001900000000000104350000000004070433000000000504004b00001beb0000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00001be40000413d0000000001140019000000000001043500000000040c0433000000000504004b00001bf80000613d0000000005000019000000000615001900000020055000390000000007c5001900000000070704330000000000760435000000000645004b00001bf10000413d000000000114001900000000000104350000000004020433000000000504004b00001c050000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00001bfe0000413d000000000114001900000000000104350000000002090433000000000402004b00001c120000613d000000000400001900000000051400190000002004400039000000000694001900000000060604330000000000650435000000000524004b00001c0b0000413d000000000112001900000000000104350000000c040000290000000001410049000000200210008a00000000002404350000001f01100039000000000231016f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b0100004100000009030000290000079b0230009c000000000301801900000040023002100000000c0300002900000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d00001dc10000013d000007a60a70009c000001590000213d000000400090043f000000010900003a00000000009704350000000008800350000000000808043b0000000000840435000001c10000613d000007a708800197000000f805500210000000000585019f000007ac055000410000000000540435000000400400043d00000020054000390000000008070433000000000908004b00001c540000613d0000000009000019000000000a5900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b00001c4d0000413d000000000758001900000000000704350000000a080000290000000008080433000000000908004b00001c620000613d0000000009000019000000000a79001900000020099000390000000a0b900029000000000b0b04330000000000ba0435000000000a89004b00001c5b0000413d0000000007780019000000000007043500000009080000290000000008080433000000000908004b00001c700000613d0000000009000019000000000a7900190000002009900039000000090b900029000000000b0b04330000000000ba0435000000000a89004b00001c690000413d0000000007780019000000000007043500000008080000290000000008080433000000000908004b00001c7e0000613d0000000009000019000000000a7900190000002009900039000000080b900029000000000b0b04330000000000ba0435000000000a89004b00001c770000413d0000000007780019000000000007043500000006080000290000000008080433000000000908004b00001c8c0000613d0000000009000019000000000a7900190000002009900039000000060b900029000000000b0b04330000000000ba0435000000000a89004b00001c850000413d0000000007780019000000000007043500000005080000290000000008080433000000000908004b00001c9a0000613d0000000009000019000000000a7900190000002009900039000000050b900029000000000b0b04330000000000ba0435000000000a89004b00001c930000413d000000000662034f00000000027800190000001f0730018f0000000000020435000000050830027200001ca90000613d0000000009000019000000050a900210000000000ba20019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00001ca10000413d000000000907004b00001cb80000613d0000000508800210000000000686034f00000000088200190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000232001900000000000204350000000003010433000000000603004b00001cc50000613d000000000600001900000000072600190000002006600039000000000816001900000000080804330000000000870435000000000736004b00001cbe0000413d0000000001230019000000000001043500000004020000290000000002020433000000000302004b00001cd30000613d000000000300001900000000061300190000002003300039000000040730002900000000070704330000000000760435000000000623004b00001ccc0000413d0000000001120019000000000001043500000003020000290000000002020433000000000302004b00001ce10000613d000000000300001900000000061300190000002003300039000000030730002900000000070704330000000000760435000000000623004b00001cda0000413d000000000112001900000000000104350000000001410049000000200210008a00000000002404350000001f01100039000000070210017f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b010000410000079b0250009c0000000005018019000000400250021000000000030404330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b00000b560000013d000000400100043d0000004402100039000007c203000041000000000032043500000024021000390000000f0300003900000c5f0000013d000007a60ad0009c000001590000213d0000000606000029000000400060043f00000008060000290000000c0a00002900000000006a0435000000090600002900000000006d0435000000000a06004b000001c10000613d000000f80af00210000000070aa001af000007ac0aa000410000000c060000290000000000a60435000000400600043d000000200a600039000007af0b00004100090000000a001d0000000000ba0435000c00000006001d000000210e600039000000000f0d0433000000000b0f004b00001d2f0000613d000000000b000019000000000aeb0019000000200bb000390000000006db0019000000000606043300000000006a04350000000006fb004b00001d280000413d000000000def001900000000000d0435000000000e04043300000000060e004b00001d3c0000613d000000000b0000190000000006db0019000000200bb00039000000000a4b0019000000000a0a04330000000000a604350000000006eb004b00001d350000413d000000000dde001900000000000d0435000000000e08043300000000040e004b00001d490000613d00000000040000190000000006d400190000002004400039000000000a840019000000000a0a04330000000000a604350000000006e4004b00001d420000413d0000000d041003600000000001de00190000001f0650018f0000000000010435000000050850027200001d580000613d000000000d000019000000050ad00210000000000ba10019000000000aa4034f000000000a0a043b0000000000ab0435000000010dd00039000000000a8d004b00001d500000413d000000000a06004b00001d670000613d0000000508800210000000000484034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004a4019f0000000000480435000000000151001900000000000104350000000004070433000000000504004b00001d740000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00001d6d0000413d0000000001140019000000000001043500000000040c0433000000000504004b00001d810000613d0000000005000019000000000615001900000020055000390000000007c5001900000000070704330000000000760435000000000645004b00001d7a0000413d000000000114001900000000000104350000000004020433000000000504004b00001d8e0000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00001d870000413d000000000114001900000000000104350000000002090433000000000402004b00001d9b0000613d000000000400001900000000051400190000002004400039000000000694001900000000060604330000000000650435000000000524004b00001d940000413d000000000112001900000000000104350000000c040000290000000001410049000000200210008a00000000002404350000001f01100039000000000231016f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b0100004100000009030000290000079b0230009c000000000301801900000040023002100000000c0300002900000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b00000000020004150000000a02200069000000000200000200000b560000013d00000000030004140000000004120019000000000224004b000000000500001900000001050040390000079b02100197000000010150019000001e1f0000c13d0000000001000031000000000541004b00001e1f0000413d0000000102200367000007b00530009c00001e230000813d00000000014100490000079b0110019700000000011203df000000c002300210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b03300197000000010220019000001e2a0000613d0000003f02300039000007b304200197000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000079f0640009c00001e450000213d000000010550019000001e450000c13d000000400040043f00000000043204360000001f05300039000000050550027200001dfd0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001df50000413d000000000500004b00001dff0000613d0000001f0530018f000000050330027200001e0b0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b00001e030000413d000000000605004b00001e1a0000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c00001e4b0000c13d0000000001040433000000000001042d000007c3010000410000000000100435000000110100003900001e480000013d000000400100043d0000004402100039000007bf0300004100000000003204350000002402100039000000080300003900001e510000013d0000001f0430018f000000050230027200001e350000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00001e2e0000413d000000000504004b00001e430000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000001e6a00010430000007c30100004100000000001004350000004101000039000000040010043f000007c40100004100001e6a00010430000000400100043d0000004402100039000007b503000041000000000032043500000024021000390000001f030000390000000000320435000007a10200004100000000002104350000000402100039000000200300003900000000003204350000079b020000410000079b0310009c00000000010280190000004001100210000007b6011001c700001e6a00010430000000000001042f00001e61002104230000000102000039000000000001042d0000000002000019000000000001042d00001e66002104230000000102000039000000000001042d0000000002000019000000000001042d00001e680000043200001e690001042e00001e6a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000456e636f64696e6720756e737570706f7274656420747800000000000000000000000000000000000000000000000000000000640000008000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c69642064617461000000000000000000000000000000000000000064000000000000000000000000848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f4f766572666c6f770000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ac46880ebec771717dc70f9688fe43e58ce01ef6ff73d4b4fb82cf87c76e3a51", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/ComplexUpgrader.json b/src/deps/contracts/ComplexUpgrader.json index 137c2845..6895cf47 100644 --- a/src/deps/contracts/ComplexUpgrader.json +++ b/src/deps/contracts/ComplexUpgrader.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "ComplexUpgrader", - "sourceName": "cache-zk/solpp-generated-contracts/ComplexUpgrader.sol", + "sourceName": "contracts-preprocessed/ComplexUpgrader.sol", "abi": [ { "inputs": [ @@ -22,8 +22,8 @@ "type": "function" } ], - "bytecode": "0x000400000000000200000000030100190000006003300270000000470430019700030000004103550002000000010355000000470030019d000100000000001f0000008001000039000000400010043f0000000101200190000000440000c13d0000000004000031000000040140008c0000004c0000413d0000000202000367000000000102043b00000049011001970000004a0110009c0000004c0000c13d000000040140008a0000004b03000041000000400510008c000000000500001900000000050340190000004b01100197000000000601004b000000000300a0190000004b0110009c00000000010500190000000001036019000000000101004b0000004c0000c13d0000000401200370000000000101043b0000004c0310009c0000004c0000213d0000002403200370000000000503043b0000004d0350009c0000004c0000213d00000023035000390000004b06000041000000000743004b000000000700001900000000070680190000004b084001970000004b03300197000000000983004b0000000006008019000000000383013f0000004b0330009c00000000030700190000000003066019000000000303004b0000004c0000c13d0000000403500039000000000232034f000000000302043b0000004d0230009c0000004c0000213d00000024025000390000000005230019000000000445004b0000004c0000213d0118004e0000040f0000000001000019000001190001042e0000000001000416000000000101004b0000004c0000c13d0000002001000039000001000010044300000120000004430000004801000041000001190001042e00000000010000190000011a000104300003000000000002000300000003001d000200000002001d0000000002000411000080070220008c000000dc0000c13d00000052020000410000000000200439000100000001001d000000040010044300000047010000410000000002000414000000470320009c0000000001024019000000c00110021000000053011001c700008002020000390118010e0000040f0000000102200190000000f10000613d000000400800043d000000000101043b000000000101004b0000000309000029000000f30000613d0000001f0190018f000000020200002900000002032003670000000504900272000000750000613d000000000500001900000005065002100000000007680019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b0000006d0000413d000000000501004b000000840000613d0000000504400210000000000343034f00000000044800190000000301100210000000000504043300000000051501cf000000000515022f000000000303043b0000010001100089000000000313022f00000000011301cf000000000151019f00000000001404350000000001980019000000000001043500000000010004140000000102000029000000040320008c0000008d0000c13d00000001030000310000000002000019000000a10000013d0000004703000041000000470490009c000000000403001900000000040940190000006004400210000000470580009c000000000503001900000000050840190000004005500210000000000545019f000000470410009c0000000001038019000000c001100210000000000151019f011801130000040f000000010220015f00030000000103550000006001100270000100470010019d00000047031001970000006001000039000000000403004b000000d30000613d000000540130009c000000d60000813d0000001f01300039000000200400008a000000000141016f0000003f01100039000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000004d0640009c000000d60000213d0000000105500190000000d60000c13d000000400040043f0000000003310436000000030400036700000001060000310000001f0560018f0000000506600272000000c40000613d000000000700001900000005087002100000000009830019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000000bc0000413d000000000705004b000000d30000613d0000000506600210000000000464034f00000000036300190000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000102200190000001040000c13d000000000001042d000000550100004100000000001004350000004101000039000000040010043f00000056010000410000011a00010430000000400100043d00000064021000390000004e03000041000000000032043500000044021000390000004f030000410000000000320435000000240210003900000024030000390000000000320435000000500200004100000000002104350000000402100039000000200300003900000000003204350000004702000041000000470310009c0000000001028019000000400110021000000051011001c70000011a0001043000000000010000190000011a00010430000000440180003900000057030000410000000000310435000000240180003900000013030000390000000000310435000000500100004100000000001804350000000401800039000000200300003900000000003104350000004701000041000000470380009c0000000001084019000000400110021000000058011001c70000011a0001043000000000210104340000004703000041000000470410009c0000000001038019000000470420009c000000000203801900000040022002100000006001100210000000000121019f0000011a0001043000000111002104230000000102000039000000000001042d0000000002000019000000000001042d00000116002104250000000102000039000000000001042d0000000002000019000000000001042d0000011800000432000001190001042e0000011a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000c987336c000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff4f5945520000000000000000000000000000000000000000000000000000000043616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c08c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000044656c65676174656520697320616e20454f410000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3ae095b702686e9c828067f7814feec49aed4be7494fed7813e54a61aa5fdd3", - "deployedBytecode": "0x000400000000000200000000030100190000006003300270000000470430019700030000004103550002000000010355000000470030019d000100000000001f0000008001000039000000400010043f0000000101200190000000440000c13d0000000004000031000000040140008c0000004c0000413d0000000202000367000000000102043b00000049011001970000004a0110009c0000004c0000c13d000000040140008a0000004b03000041000000400510008c000000000500001900000000050340190000004b01100197000000000601004b000000000300a0190000004b0110009c00000000010500190000000001036019000000000101004b0000004c0000c13d0000000401200370000000000101043b0000004c0310009c0000004c0000213d0000002403200370000000000503043b0000004d0350009c0000004c0000213d00000023035000390000004b06000041000000000743004b000000000700001900000000070680190000004b084001970000004b03300197000000000983004b0000000006008019000000000383013f0000004b0330009c00000000030700190000000003066019000000000303004b0000004c0000c13d0000000403500039000000000232034f000000000302043b0000004d0230009c0000004c0000213d00000024025000390000000005230019000000000445004b0000004c0000213d0118004e0000040f0000000001000019000001190001042e0000000001000416000000000101004b0000004c0000c13d0000002001000039000001000010044300000120000004430000004801000041000001190001042e00000000010000190000011a000104300003000000000002000300000003001d000200000002001d0000000002000411000080070220008c000000dc0000c13d00000052020000410000000000200439000100000001001d000000040010044300000047010000410000000002000414000000470320009c0000000001024019000000c00110021000000053011001c700008002020000390118010e0000040f0000000102200190000000f10000613d000000400800043d000000000101043b000000000101004b0000000309000029000000f30000613d0000001f0190018f000000020200002900000002032003670000000504900272000000750000613d000000000500001900000005065002100000000007680019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b0000006d0000413d000000000501004b000000840000613d0000000504400210000000000343034f00000000044800190000000301100210000000000504043300000000051501cf000000000515022f000000000303043b0000010001100089000000000313022f00000000011301cf000000000151019f00000000001404350000000001980019000000000001043500000000010004140000000102000029000000040320008c0000008d0000c13d00000001030000310000000002000019000000a10000013d0000004703000041000000470490009c000000000403001900000000040940190000006004400210000000470580009c000000000503001900000000050840190000004005500210000000000545019f000000470410009c0000000001038019000000c001100210000000000151019f011801130000040f000000010220015f00030000000103550000006001100270000100470010019d00000047031001970000006001000039000000000403004b000000d30000613d000000540130009c000000d60000813d0000001f01300039000000200400008a000000000141016f0000003f01100039000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000004d0640009c000000d60000213d0000000105500190000000d60000c13d000000400040043f0000000003310436000000030400036700000001060000310000001f0560018f0000000506600272000000c40000613d000000000700001900000005087002100000000009830019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000000bc0000413d000000000705004b000000d30000613d0000000506600210000000000464034f00000000036300190000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000102200190000001040000c13d000000000001042d000000550100004100000000001004350000004101000039000000040010043f00000056010000410000011a00010430000000400100043d00000064021000390000004e03000041000000000032043500000044021000390000004f030000410000000000320435000000240210003900000024030000390000000000320435000000500200004100000000002104350000000402100039000000200300003900000000003204350000004702000041000000470310009c0000000001028019000000400110021000000051011001c70000011a0001043000000000010000190000011a00010430000000440180003900000057030000410000000000310435000000240180003900000013030000390000000000310435000000500100004100000000001804350000000401800039000000200300003900000000003104350000004701000041000000470380009c0000000001084019000000400110021000000058011001c70000011a0001043000000000210104340000004703000041000000470410009c0000000001038019000000470420009c000000000203801900000040022002100000006001100210000000000121019f0000011a0001043000000111002104230000000102000039000000000001042d0000000002000019000000000001042d00000116002104250000000102000039000000000001042d0000000002000019000000000001042d0000011800000432000001190001042e0000011a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000c987336c000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff4f5945520000000000000000000000000000000000000000000000000000000043616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c08c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000044656c65676174656520697320616e20454f410000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3ae095b702686e9c828067f7814feec49aed4be7494fed7813e54a61aa5fdd3", + "bytecode": "0x00030000000000020004000000000002000000000301001900000060033002700000004103300197000200000031035500010000000103550000008008000039000000400080043f00000001022001900000005a0000c13d000000040230008c000000620000413d000000000201043b0000004302200197000000440220009c000000620000c13d000000040230008a000000400220008c000000620000413d0000000402100370000000000902043b000000450290009c000000620000213d0000002402100370000000000202043b000000460420009c000000620000213d00000023042000390000004705000041000000000634004b000000000600001900000000060580190000004704400197000000000704004b0000000005008019000000470440009c000000000506c019000000000405004b000000620000c13d0000000405200039000000000151034f000000000401043b000000460140009c000000620000213d00000000014200190000002401100039000000000131004b000000620000213d0000000001000411000080070110008c000000640000c13d000100000005001d000200000004001d000400000008001d0000004c010000410000000000100439000300000009001d000000040090044300000041010000410000000002000414000000410320009c0000000002018019000000c0012002100000004d011001c7000080020200003900fd00f30000040f0000000102200190000000700000613d000000400800043d000000000101043b000000000101004b000000710000c13d000000440180003900000051030000410000000000310435000000240180003900000013030000390000000000310435000000480100004100000000001804350000000401800039000000200300003900000000003104350000004101000041000000410380009c0000000008018019000000400180021000000052011001c7000000ff000104300000000001000416000000000101004b000000620000c13d0000002001000039000001000010044300000120000004430000004201000041000000fe0001042e0000000001000019000000ff000104300000004801000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000004901000041000000c40010043f0000004a01000041000000e40010043f0000004b01000041000000ff00010430000000000001042f00000002090000290000001f0190018f0000000102000029000000200320003900000001033003670000000504900272000000810000613d000000000500001900000005065002100000000007680019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000000790000413d000000000501004b0000000302000029000000910000613d0000000504400210000000000343034f00000000044800190000000301100210000000000504043300000000051501cf000000000515022f000000000303043b0000010001100089000000000313022f00000000011301cf000000000151019f0000000000140435000000000198001900000000000104350000000001000414000000040320008c000000990000c13d00000000030000310000000002000019000000ab0000013d0000004103000041000000410490009c00000000090380190000006004900210000000410580009c00000000080380190000004005800210000000000545019f000000410410009c0000000001038019000000c001100210000000000151019f00fd00f80000040f000000010220015f00020000000103550000006001100270000000410010019d000000410310019700000004090000290000006001000039000000000403004b000000bb0000c13d0000000102200190000000f00000613d00000000010104330000004102000041000000410310009c0000000001028019000000410390009c000000000902801900000040029002100000006001100210000000000121019f000000ff000104300000004e0130009c000000ea0000813d0000001f01300039000000200400008a000000000141016f0000003f01100039000000000441016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000000460640009c000000ea0000213d0000000105500190000000ea0000c13d000000400040043f0000001f0430018f000000000931043600000002050003670000000503300272000000da0000613d000000000600001900000005076002100000000008790019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000000d20000413d000000000604004b000000af0000613d0000000503300210000000000535034f00000000033900190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f0000000000430435000000af0000013d0000004f0100004100000000001004350000004101000039000000040010043f0000005001000041000000ff000104300000000001000019000000fe0001042e000000000001042f000000f6002104230000000102000039000000000001042d0000000002000019000000000001042d000000fb002104250000000102000039000000000001042d0000000002000019000000000001042d000000fd00000432000000fe0001042e000000ff00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000c987336c00000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f5945520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000044656c65676174656520697320616e20454f410000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eaef84efea5e82103c4338a1dc87dfa5c18f5c5adecacf06063a21eaa290dd0e", + "deployedBytecode": "0x00030000000000020004000000000002000000000301001900000060033002700000004103300197000200000031035500010000000103550000008008000039000000400080043f00000001022001900000005a0000c13d000000040230008c000000620000413d000000000201043b0000004302200197000000440220009c000000620000c13d000000040230008a000000400220008c000000620000413d0000000402100370000000000902043b000000450290009c000000620000213d0000002402100370000000000202043b000000460420009c000000620000213d00000023042000390000004705000041000000000634004b000000000600001900000000060580190000004704400197000000000704004b0000000005008019000000470440009c000000000506c019000000000405004b000000620000c13d0000000405200039000000000151034f000000000401043b000000460140009c000000620000213d00000000014200190000002401100039000000000131004b000000620000213d0000000001000411000080070110008c000000640000c13d000100000005001d000200000004001d000400000008001d0000004c010000410000000000100439000300000009001d000000040090044300000041010000410000000002000414000000410320009c0000000002018019000000c0012002100000004d011001c7000080020200003900fd00f30000040f0000000102200190000000700000613d000000400800043d000000000101043b000000000101004b000000710000c13d000000440180003900000051030000410000000000310435000000240180003900000013030000390000000000310435000000480100004100000000001804350000000401800039000000200300003900000000003104350000004101000041000000410380009c0000000008018019000000400180021000000052011001c7000000ff000104300000000001000416000000000101004b000000620000c13d0000002001000039000001000010044300000120000004430000004201000041000000fe0001042e0000000001000019000000ff000104300000004801000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000004901000041000000c40010043f0000004a01000041000000e40010043f0000004b01000041000000ff00010430000000000001042f00000002090000290000001f0190018f0000000102000029000000200320003900000001033003670000000504900272000000810000613d000000000500001900000005065002100000000007680019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000000790000413d000000000501004b0000000302000029000000910000613d0000000504400210000000000343034f00000000044800190000000301100210000000000504043300000000051501cf000000000515022f000000000303043b0000010001100089000000000313022f00000000011301cf000000000151019f0000000000140435000000000198001900000000000104350000000001000414000000040320008c000000990000c13d00000000030000310000000002000019000000ab0000013d0000004103000041000000410490009c00000000090380190000006004900210000000410580009c00000000080380190000004005800210000000000545019f000000410410009c0000000001038019000000c001100210000000000151019f00fd00f80000040f000000010220015f00020000000103550000006001100270000000410010019d000000410310019700000004090000290000006001000039000000000403004b000000bb0000c13d0000000102200190000000f00000613d00000000010104330000004102000041000000410310009c0000000001028019000000410390009c000000000902801900000040029002100000006001100210000000000121019f000000ff000104300000004e0130009c000000ea0000813d0000001f01300039000000200400008a000000000141016f0000003f01100039000000000441016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000000460640009c000000ea0000213d0000000105500190000000ea0000c13d000000400040043f0000001f0430018f000000000931043600000002050003670000000503300272000000da0000613d000000000600001900000005076002100000000008790019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000000d20000413d000000000604004b000000af0000613d0000000503300210000000000535034f00000000033900190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f0000000000430435000000af0000013d0000004f0100004100000000001004350000004101000039000000040010043f0000005001000041000000ff000104300000000001000019000000fe0001042e000000000001042f000000f6002104230000000102000039000000000001042d0000000002000019000000000001042d000000fb002104250000000102000039000000000001042d0000000002000019000000000001042d000000fd00000432000000fe0001042e000000ff00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000c987336c00000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f5945520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000044656c65676174656520697320616e20454f410000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eaef84efea5e82103c4338a1dc87dfa5c18f5c5adecacf06063a21eaa290dd0e", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/Compressor.json b/src/deps/contracts/Compressor.json index aaea9846..54bc3b4a 100644 --- a/src/deps/contracts/Compressor.json +++ b/src/deps/contracts/Compressor.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "Compressor", - "sourceName": "cache-zk/solpp-generated-contracts/Compressor.sol", + "sourceName": "contracts-preprocessed/Compressor.sol", "abi": [ { "inputs": [ @@ -62,8 +62,8 @@ "type": "function" } ], - "bytecode": "0x0004000000000002000b000000000002000000000301001900000060033002700000017c04300197000300000041035500020000000103550000017c0030019d000100000000001f0000008001000039000000400010043f0000000101200190000002a80000c13d0000000005000031000000040150008c000001fe0000413d0000000203000367000000000103043b000000e0011002700000017e0210009c000002550000c13d000000040150008a0000018002000041000000800410008c000000000400001900000000040240190000018001100197000000000601004b000000000200a019000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d0000000401300370000000000701043b0000004401300370000000000201043b0000002401300370000000000101043b000600000001001d000100000002001d000001810120009c000001fe0000213d000000010100002900000023011000390000018002000041000000000451004b0000000004000019000000000402801900000180065001970000018001100197000000000861004b0000000002008019000000000161013f000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d00000001010000290000000401100039000000000113034f000000000801043b000001810180009c000001fe0000213d00000001010000290000002401100039000b00000001001d0000000001180019000000000151004b000001fe0000213d0000006401300370000000000101043b000500000001001d000001810110009c000001fe0000213d000000050100002900000023011000390000018002000041000000000451004b0000000004000019000000000402801900000180065001970000018001100197000a00000008001d000000000861004b0000000a080000290000000002008019000000000161013f000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d00000005010000290000000401100039000000000113034f000000000101043b000800000001001d000001810110009c000001fe0000213d000000050100002900000024021000390000000801000029000900000002001d0000000001210019000000000151004b000001fe0000213d0000000001000411000080080110008c000002b00000c13d0000000601000029000000090110008c000002ba0000813d000000020600003900000110147000c9000001110500008a000000000b00001900000000090000190000007d0000013d0000000001e1004b00000000090c00190000000a08000029000002330000c13d000000000107004b000000820000613d00000000217400d9000001100110008c0000022d0000c13d000000000149004b000000fc0000813d000000000159004b0000022d0000213d000001100c90003900000000018c004b000001fe0000213d0000000b01000029000000000e1900190000003c01e00039000000000113034f000000000101043b000001810110019800000000090c00190000007d0000c13d000000010900008a00000000019b004b0000022d0000613d000000090100002900000000011600190000003402e00039000000000223034f000000000113034f000000000101043b000000000202043b000000000112004b000002160000c13d000000210100008a000000000116004b0000022d0000213d00000020016000390000000802000029000000000221004b000002100000813d00000009020000290000000001210019000000000113034f000000000101043b000000fb02100270000000f801100270000000070d100190000000000a020019000000200a006039000000210160003900000000061a001a0000022d0000413d0000000802000029000000000226004b000001fe0000213d000000090200002900000000012100190000007c02e00039000000000223034f0000005c0ee00039000000000ee3034f000000000113034f000000000101043b000000000f0e043b000000000e02043b0000001f02a0008c0000000302a00210000000d30000213d000001000820008900000000088901cf000700000008001d000000000920004900000000080e0019000000000e0f0019000000000f06001900000000060b0019000001000b00008a0000000009b9004b000000000b06001900000000060f0019000000000f0e0019000000000e08001900000007080000290000000008004019000000000181016f00000000080a004b000000dc0000613d000001000820008c0000022d0000213d0000000098a200d9000000080880008c0000022d0000c13d0000010008200089000000000181022f000000000202004b000000dd0000c13d0000000001000019000000010bb0003900000000020d004b000000790000613d0000000302d0008c000000790000613d0000000102d0008c0000000a08000029000000ea0000c13d0000000001f100190000000001e1004b00000000090c00190000007d0000613d0000023f0000013d0000000202d0008c0000024b0000c13d00000000011f00490000000001e1004b00000000090c00190000007d0000613d0000018201000041000000800010043f0000002001000039000000840010043f0000002f01000039000000a40010043f0000019101000041000000c40010043f0000019201000041000000e40010043f0000018901000041000005ee0001043000000005010000290000000601100039000000000113034f000000000101043b0000ffff0110018f00000000011b004b000001270000c13d0000000601000029000000030b1002100000010001b00089000000010200008a000700000001001d000300000002001d00000000011201cf0000000002b00049000001000900008a000200000009001d000000000292004b0000000001004019000400000001001d0000010101b0008c000001330000413d000000000107004b0000014a0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001170000613d0000015f0000013d0000018201000041000000800010043f0000002001000039000000840010043f0000002901000039000000a40010043f0000018701000041000000c40010043f0000018801000041000000e40010043f0000018901000041000005ee0001043000000000010b004b000001660000c13d000000000107004b000001e30000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b000001810220019800000000020700190000013a0000613d000001f80000013d00000000217400d9000001100110008c0000022d0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001500000613d0000000601000029000000000116001a0000022d0000413d0000000802000029000000000121004b000001fe0000213d000002200000013d00050000000b001d000000000d0000190000016d0000013d0000000001c1004b000000000d0900190000000a08000029000002330000c13d000000000107004b000001720000613d00000000217400d9000001100110008c0000022d0000c13d00000000014d004b000002000000813d00000000015d004b0000022d0000213d0000011009d00039000000000189004b000001fe0000213d0000000b01000029000000000c1d00190000003c01c00039000000000113034f000000000101043b000001810e100198000000000d0900190000016d0000613d0000000601000029000000000d16001a0000022d0000413d000000080100002900000000011d004b000001fe0000213d00000009010000290000000001160019000000000113034f000000000101043b00000006020000290000001f0220008c000001930000213d0000000402000029000000000121016f0000000602000029000000000202004b000002230000613d0000000602000029000000050600002900000000622600d9000000080220008c0000022d0000c13d0000000702000029000000000121022f00000000011e004b000002230000c13d000000080100002900000000011d004b000002100000813d000000090100002900000000011d0019000000000113034f000000000101043b000000fb02100270000000f801100270000000070f100190000000000e020019000000200e0060390000000101d0003900000000061e00190000000002d6004b0000022d0000a13d0000000802000029000000000226004b000001fe0000213d000000090200002900000000012100190000007c02c00039000000000223034f0000005c08c00039000000000883034f000000000113034f000000000101043b000000000b08043b000000000c02043b0000001f02e0008c0000000302e00210000001c60000213d0000010008200089000000030a00002900000000088a01cf000000000a200049000000020d000029000000000ada004b0000000008004019000000000181016f00000000080e004b000001cf0000613d000001000820008c0000022d0000213d00000000a8e200d9000000080880008c0000022d0000c13d0000010008200089000000000181022f000000000202004b000001d00000c13d000000000100001900000000020f004b000001690000613d0000000302f0008c000001690000613d0000000102f0008c0000000a08000029000001dc0000c13d0000000001b100190000000001c1004b000000000d0900190000016d0000613d0000023f0000013d0000000202f0008c0000024b0000c13d00000000011b00490000000001c1004b000000000d0900190000016d0000613d000000f00000013d00000000217400d9000001100110008c0000022d0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001e90000613d0000000601000029000000000116001a0000022d0000413d0000000802000029000000000121004b000002200000a13d0000000001000019000005ee000104300000000801000029000000000116004b0000000001000019000000010100603905ec05190000040f0000000b010000290000000a0200002905ec05310000040f000000400200043d00000000001204350000017c010000410000017c0320009c0000000001024019000000400110021000000185011001c7000005ed0001042e0000018c0100004100000000001004350000003201000039000000040010043f0000018d01000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000018b01000041000000c40010043f0000018401000041000005ee000104300000000601000029000000000101004b0000022d0000c13d0000018201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000018a01000041000000c40010043f0000018401000041000005ee000104300000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000018e01000041000000c40010043f0000018f01000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000002e01000039000000a40010043f0000019301000041000000c40010043f0000019401000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000019001000041000000c40010043f0000018401000041000005ee000104300000017f0110009c000001fe0000c13d000000040150008a0000018002000041000000400410008c000000000400001900000000040240190000018001100197000000000601004b000000000200a019000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d0000000401300370000000000101043b000001810210009c000001fe0000213d00000023021000390000018004000041000000000652004b0000000006000019000000000604801900000180075001970000018002200197000000000872004b0000000004008019000000000272013f000001800220009c00000000020600190000000002046019000000000202004b000001fe0000c13d0000000402100039000000000223034f000000000202043b000001810420009c000001fe0000213d00000024011000390000000004120019000000000454004b000001fe0000213d0000002404300370000000000604043b000001810460009c000001fe0000213d00000023046000390000018007000041000000000854004b0000000008000019000000000807801900000180095001970000018004400197000000000a94004b0000000007008019000000000494013f000001800440009c00000000040800190000000004076019000000000404004b000001fe0000c13d0000000404600039000000000343034f000000000403043b000001810340009c000001fe0000213d00000024036000390000000006340019000000000556004b000001fe0000213d0000000005000411000080010550008c000002c60000c13d05ec02d00000040f000000400200043d00000000001204350000017c010000410000017c0320009c0000000001024019000000400110021000000185011001c7000005ed0001042e0000000001000416000000000101004b000001fe0000c13d0000002001000039000001000010044300000120000004430000017d01000041000005ed0001042e0000018201000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000018601000041000000c40010043f0000018401000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000019501000041000000c40010043f0000019601000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000018301000041000000c40010043f0000018401000041000005ee0001043000030000000000020000001e0530008a000000020d00036700000000065d034f000000000606043b0000000306600210000001970c6001970000000206c001bf000000000746004b000004320000213d000000000b6400490000000207b00210000000000727004b000004400000c13d000000000746004b000002f80000613d0000000005650019000000160630008a000000180710008a0000000008000019000000000985001900000000099d034f000000000909043b00000003099002100000019709900197000000000ac9004b000004080000813d0000000009960019000000020a800210000000000aa70019000000000aad034f00000000099d034f000000000909043b000000000a0a043b0000000009a9013f00000181099001980000041d0000c13d00000002088000390000000009b8004b000002e40000413d0000001f05200190000004580000c13d000001a30520009c0000046a0000813d00000020052001900000047c0000613d00000000080004140000000007120019000000000527004b000000000500001900000001050040390000017c0610019700000001015001900000043a0000c13d0000000001000031000000000571004b0000043a0000413d000100000002001d000300000003001d000200000004001d0000000204600367000001a40580009c0000048e0000813d00000000017100490000017c0110019700000000011403df000000c002800210000001a502200197000001a6022001c700000000012103af000000020200003905ec05e70000040f000000000301001900000060033002700001017c0030019d0000017c0330019700030000000103550000000102200190000004a00000613d0000003f01300039000001a702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000001810520009c0000000209000029000000030a000029000004340000213d0000000104400190000004340000c13d000000400020043f00000000023104360000001f043000390000000504400272000000010b0000290000033d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000003350000413d000000000400004b0000033f0000613d0000000104000031000000000443004b000004320000213d00000003050003670000001f0430018f00000005033002720000034f0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000003470000413d000000000604004b0000035e0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000004bb0000c13d0000000001020433000000400800043d000001a902000041000000000028043500000004028000390000002003000039000000000032043500000024028000390000000000920435000001aa01100197000000db02b00210000001ab02200197000000000412019f0000001f0290018f00000044018000390000000203a00367000001ac044001c7000300000004001d00000005049002720000037e0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000003760000413d000000000502004b0000038d0000613d0000000504400210000000000343034f00000000044100190000000302200210000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000000191001900000000000104350000001f01900039000000200200008a000000000121016f0000017c020000410000017c0380009c00000000030200190000000003084019000000400330021000000044011000390000017c0410009c00000000010280190000006001100210000000000131019f00000000030004140000017c0430009c0000000002034019000000c002200210000000000112019f0000800802000039000200000008001d05ec05dd0000040f000000020a000029000000000301001900000060033002700000017c03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003af0000413d000000000705004b000003c60000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000004cd0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001810410009c000004340000213d0000000102200190000004340000c13d000000400010043f000000200130008c000004320000413d000001ad010000410000000000100439000080040100003900000004001004430000017c0100004100000000020004140000017c0320009c0000000001024019000000c001100210000001ae011001c7000080020200003905ec05e20000040f0000000102200190000004320000613d000000000101043b000000000101004b000004320000613d000000400400043d000001af0100004100000000001404350000000401400039000000030200002900000000002104350000017c0100004100000000020004140000017c0320009c00000000020180190000017c0340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f0000018d011001c7000080040200003905ec05dd0000040f000000000301001900000060033002700001017c0030019d0000017c0430019700030000000103550000000102200190000004f30000613d0000000202000029000001810120009c000004340000213d000000400020043f0000000301000029000000000001042d000000400100043d00000064021000390000019c03000041000000000032043500000044021000390000019d030000410000000000320435000000240210003900000024030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee00010430000000400100043d00000064021000390000019f0300004100000000003204350000004402100039000001a0030000410000000000320435000000240210003900000032030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee000104300000000001000019000005ee000104300000018c0100004100000000001004350000004101000039000000040010043f0000018d01000041000005ee000104300000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee00010430000000400100043d00000084021000390000019803000041000000000032043500000064021000390000019903000041000000000032043500000044021000390000019a030000410000000000320435000000240210003900000048030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019b011001c7000005ee00010430000000400100043d0000004402100039000001a1030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b2030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b1030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b0030000410000000000320435000000240210003900000008030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee000104300000001f0430018f0000000502300272000004ab0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004a40000413d000000000504004b000004b90000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000005ee00010430000000400100043d0000004402100039000001a8030000410000000000320435000000240210003900000019030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400200043d0000001f0430018f0000000503300272000004da0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004d20000413d000000000504004b000004e90000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000017c0100004100000001030000310000017c0430009c00000000030180190000017c0420009c000000000102401900000040011002100000006002300210000000000112019f000005ee00010430000000400200043d0000001f0340018f0000000504400272000005000000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000004f80000413d000000000503004b0000050f0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000017c0100004100000001030000310000017c0430009c00000000030180190000017c0420009c000000000102401900000040011002100000006002300210000000000112019f000005ee00010430000000000101004b0000051c0000613d000000000001042d000000400100043d0000006402100039000001b30300004100000000003204350000004402100039000001b4030000410000000000320435000000240210003900000023030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee0001043000000000030004140000000004120019000000000224004b000000000500001900000001050040390000017c021001970000000101500190000005900000c13d0000000001000031000000000541004b000005900000413d0000000202200367000001a40530009c000005960000813d00000000014100490000017c0110019700000000011203df000000c002300210000001a502200197000001a6022001c700000000012103af000080100200003905ec05e70000040f000000000301001900000060033002700001017c0030019d0000017c0330019700030000000103550000000102200190000005a80000613d0000003f01300039000001a702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000001810520009c000005c30000213d0000000104400190000005c30000c13d000000400020043f00000000023104360000001f0430003900000005044002720000056a0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000005620000413d000000000400004b0000056c0000613d0000000104000031000000000443004b000005c90000213d00000003050003670000001f0430018f00000005033002720000057c0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000005740000413d000000000604004b0000058b0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000005cb0000c13d0000000001020433000000000001042d0000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee00010430000000400100043d0000004402100039000001b0030000410000000000320435000000240210003900000008030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee000104300000001f0430018f0000000502300272000005b30000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000005ac0000413d000000000504004b000005c10000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000005ee000104300000018c0100004100000000001004350000004101000039000000040010043f0000018d01000041000005ee000104300000000001000019000005ee00010430000000400100043d0000004402100039000001b503000041000000000032043500000024021000390000001f030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000005e0002104210000000102000039000000000001042d0000000002000019000000000001042d000005e5002104230000000102000039000000000001042d0000000002000019000000000001042d000005ea002104230000000102000039000000000001042d0000000002000019000000000001042d000005ec00000432000005ed0001042e000005ee00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006006d8b500000000000000000000000000000000000000000000000000000000f5e69a478000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720000000000000000000000000000000000000000640000008000000000000000000000000000000000000000000000000000000020000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000496e636f7272656374206e756d626572206f6620696e697469616c2073746f726167652064696666730000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000072773a20656e756d206b6579206d69736d61746368000000000000000000000069773a20696e697469616c206b6579206d69736d6174636800000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000007472616e73666f726d206f72206e6f20636f6d7072657373696f6e3a20636f6d7072657373656420616e642066696e616c206d69736d61746368000000000000756e737570706f72746564206f7065726174696f6e00000000000000000000007375623a20696e697469616c206d696e757320636f6e766572746564206e6f7420657175616c20746f2066696e616c00000000000000000000000000000000006164643a20696e697469616c20706c757320636f6e766572746564206e6f7420657175616c20746f2066696e616c000000000000000000000000000000000000656e756d65726174696f6e20696e6465782073697a6520697320746f6f206c617267650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fff862797465636f646500000000000000000000000000000000000000000000000074696d65732073686f72746572207468616e20746865206f726967696e616c20456e636f6465642064617461206c656e6774682073686f756c6420626520342000000000000000000000000000000000000000a4000000000000000000000000756e647300000000000000000000000000000000000000000000000000000000456e636f646564206368756e6b20696e646578206973206f7574206f6620626f0000000000000000000000000000000000000084000000000000000000000000206f726967696e616c2062797465636f64650000000000000000000000000000456e636f646564206368756e6b20646f6573206e6f74206d6174636820746865706f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe07368612072657475726e656420696e76616c696420646174610000000000000062f84b240000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff0000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000066667300000000000000000000000000000000000000000000000000000000004578747261206461746120696e205f636f6d70726573736564537461746544696b656363616b3235362072657475726e656420696e76616c6964206461746100b4d4241d8a2da2cf3e1bf35dd302345ffbb506f1f41300f3c5e72d9a0e037dc2", - "deployedBytecode": "0x0004000000000002000b000000000002000000000301001900000060033002700000017c04300197000300000041035500020000000103550000017c0030019d000100000000001f0000008001000039000000400010043f0000000101200190000002a80000c13d0000000005000031000000040150008c000001fe0000413d0000000203000367000000000103043b000000e0011002700000017e0210009c000002550000c13d000000040150008a0000018002000041000000800410008c000000000400001900000000040240190000018001100197000000000601004b000000000200a019000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d0000000401300370000000000701043b0000004401300370000000000201043b0000002401300370000000000101043b000600000001001d000100000002001d000001810120009c000001fe0000213d000000010100002900000023011000390000018002000041000000000451004b0000000004000019000000000402801900000180065001970000018001100197000000000861004b0000000002008019000000000161013f000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d00000001010000290000000401100039000000000113034f000000000801043b000001810180009c000001fe0000213d00000001010000290000002401100039000b00000001001d0000000001180019000000000151004b000001fe0000213d0000006401300370000000000101043b000500000001001d000001810110009c000001fe0000213d000000050100002900000023011000390000018002000041000000000451004b0000000004000019000000000402801900000180065001970000018001100197000a00000008001d000000000861004b0000000a080000290000000002008019000000000161013f000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d00000005010000290000000401100039000000000113034f000000000101043b000800000001001d000001810110009c000001fe0000213d000000050100002900000024021000390000000801000029000900000002001d0000000001210019000000000151004b000001fe0000213d0000000001000411000080080110008c000002b00000c13d0000000601000029000000090110008c000002ba0000813d000000020600003900000110147000c9000001110500008a000000000b00001900000000090000190000007d0000013d0000000001e1004b00000000090c00190000000a08000029000002330000c13d000000000107004b000000820000613d00000000217400d9000001100110008c0000022d0000c13d000000000149004b000000fc0000813d000000000159004b0000022d0000213d000001100c90003900000000018c004b000001fe0000213d0000000b01000029000000000e1900190000003c01e00039000000000113034f000000000101043b000001810110019800000000090c00190000007d0000c13d000000010900008a00000000019b004b0000022d0000613d000000090100002900000000011600190000003402e00039000000000223034f000000000113034f000000000101043b000000000202043b000000000112004b000002160000c13d000000210100008a000000000116004b0000022d0000213d00000020016000390000000802000029000000000221004b000002100000813d00000009020000290000000001210019000000000113034f000000000101043b000000fb02100270000000f801100270000000070d100190000000000a020019000000200a006039000000210160003900000000061a001a0000022d0000413d0000000802000029000000000226004b000001fe0000213d000000090200002900000000012100190000007c02e00039000000000223034f0000005c0ee00039000000000ee3034f000000000113034f000000000101043b000000000f0e043b000000000e02043b0000001f02a0008c0000000302a00210000000d30000213d000001000820008900000000088901cf000700000008001d000000000920004900000000080e0019000000000e0f0019000000000f06001900000000060b0019000001000b00008a0000000009b9004b000000000b06001900000000060f0019000000000f0e0019000000000e08001900000007080000290000000008004019000000000181016f00000000080a004b000000dc0000613d000001000820008c0000022d0000213d0000000098a200d9000000080880008c0000022d0000c13d0000010008200089000000000181022f000000000202004b000000dd0000c13d0000000001000019000000010bb0003900000000020d004b000000790000613d0000000302d0008c000000790000613d0000000102d0008c0000000a08000029000000ea0000c13d0000000001f100190000000001e1004b00000000090c00190000007d0000613d0000023f0000013d0000000202d0008c0000024b0000c13d00000000011f00490000000001e1004b00000000090c00190000007d0000613d0000018201000041000000800010043f0000002001000039000000840010043f0000002f01000039000000a40010043f0000019101000041000000c40010043f0000019201000041000000e40010043f0000018901000041000005ee0001043000000005010000290000000601100039000000000113034f000000000101043b0000ffff0110018f00000000011b004b000001270000c13d0000000601000029000000030b1002100000010001b00089000000010200008a000700000001001d000300000002001d00000000011201cf0000000002b00049000001000900008a000200000009001d000000000292004b0000000001004019000400000001001d0000010101b0008c000001330000413d000000000107004b0000014a0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001170000613d0000015f0000013d0000018201000041000000800010043f0000002001000039000000840010043f0000002901000039000000a40010043f0000018701000041000000c40010043f0000018801000041000000e40010043f0000018901000041000005ee0001043000000000010b004b000001660000c13d000000000107004b000001e30000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b000001810220019800000000020700190000013a0000613d000001f80000013d00000000217400d9000001100110008c0000022d0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001500000613d0000000601000029000000000116001a0000022d0000413d0000000802000029000000000121004b000001fe0000213d000002200000013d00050000000b001d000000000d0000190000016d0000013d0000000001c1004b000000000d0900190000000a08000029000002330000c13d000000000107004b000001720000613d00000000217400d9000001100110008c0000022d0000c13d00000000014d004b000002000000813d00000000015d004b0000022d0000213d0000011009d00039000000000189004b000001fe0000213d0000000b01000029000000000c1d00190000003c01c00039000000000113034f000000000101043b000001810e100198000000000d0900190000016d0000613d0000000601000029000000000d16001a0000022d0000413d000000080100002900000000011d004b000001fe0000213d00000009010000290000000001160019000000000113034f000000000101043b00000006020000290000001f0220008c000001930000213d0000000402000029000000000121016f0000000602000029000000000202004b000002230000613d0000000602000029000000050600002900000000622600d9000000080220008c0000022d0000c13d0000000702000029000000000121022f00000000011e004b000002230000c13d000000080100002900000000011d004b000002100000813d000000090100002900000000011d0019000000000113034f000000000101043b000000fb02100270000000f801100270000000070f100190000000000e020019000000200e0060390000000101d0003900000000061e00190000000002d6004b0000022d0000a13d0000000802000029000000000226004b000001fe0000213d000000090200002900000000012100190000007c02c00039000000000223034f0000005c08c00039000000000883034f000000000113034f000000000101043b000000000b08043b000000000c02043b0000001f02e0008c0000000302e00210000001c60000213d0000010008200089000000030a00002900000000088a01cf000000000a200049000000020d000029000000000ada004b0000000008004019000000000181016f00000000080e004b000001cf0000613d000001000820008c0000022d0000213d00000000a8e200d9000000080880008c0000022d0000c13d0000010008200089000000000181022f000000000202004b000001d00000c13d000000000100001900000000020f004b000001690000613d0000000302f0008c000001690000613d0000000102f0008c0000000a08000029000001dc0000c13d0000000001b100190000000001c1004b000000000d0900190000016d0000613d0000023f0000013d0000000202f0008c0000024b0000c13d00000000011b00490000000001c1004b000000000d0900190000016d0000613d000000f00000013d00000000217400d9000001100110008c0000022d0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001e90000613d0000000601000029000000000116001a0000022d0000413d0000000802000029000000000121004b000002200000a13d0000000001000019000005ee000104300000000801000029000000000116004b0000000001000019000000010100603905ec05190000040f0000000b010000290000000a0200002905ec05310000040f000000400200043d00000000001204350000017c010000410000017c0320009c0000000001024019000000400110021000000185011001c7000005ed0001042e0000018c0100004100000000001004350000003201000039000000040010043f0000018d01000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000018b01000041000000c40010043f0000018401000041000005ee000104300000000601000029000000000101004b0000022d0000c13d0000018201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000018a01000041000000c40010043f0000018401000041000005ee000104300000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000018e01000041000000c40010043f0000018f01000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000002e01000039000000a40010043f0000019301000041000000c40010043f0000019401000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000019001000041000000c40010043f0000018401000041000005ee000104300000017f0110009c000001fe0000c13d000000040150008a0000018002000041000000400410008c000000000400001900000000040240190000018001100197000000000601004b000000000200a019000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d0000000401300370000000000101043b000001810210009c000001fe0000213d00000023021000390000018004000041000000000652004b0000000006000019000000000604801900000180075001970000018002200197000000000872004b0000000004008019000000000272013f000001800220009c00000000020600190000000002046019000000000202004b000001fe0000c13d0000000402100039000000000223034f000000000202043b000001810420009c000001fe0000213d00000024011000390000000004120019000000000454004b000001fe0000213d0000002404300370000000000604043b000001810460009c000001fe0000213d00000023046000390000018007000041000000000854004b0000000008000019000000000807801900000180095001970000018004400197000000000a94004b0000000007008019000000000494013f000001800440009c00000000040800190000000004076019000000000404004b000001fe0000c13d0000000404600039000000000343034f000000000403043b000001810340009c000001fe0000213d00000024036000390000000006340019000000000556004b000001fe0000213d0000000005000411000080010550008c000002c60000c13d05ec02d00000040f000000400200043d00000000001204350000017c010000410000017c0320009c0000000001024019000000400110021000000185011001c7000005ed0001042e0000000001000416000000000101004b000001fe0000c13d0000002001000039000001000010044300000120000004430000017d01000041000005ed0001042e0000018201000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000018601000041000000c40010043f0000018401000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000019501000041000000c40010043f0000019601000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000018301000041000000c40010043f0000018401000041000005ee0001043000030000000000020000001e0530008a000000020d00036700000000065d034f000000000606043b0000000306600210000001970c6001970000000206c001bf000000000746004b000004320000213d000000000b6400490000000207b00210000000000727004b000004400000c13d000000000746004b000002f80000613d0000000005650019000000160630008a000000180710008a0000000008000019000000000985001900000000099d034f000000000909043b00000003099002100000019709900197000000000ac9004b000004080000813d0000000009960019000000020a800210000000000aa70019000000000aad034f00000000099d034f000000000909043b000000000a0a043b0000000009a9013f00000181099001980000041d0000c13d00000002088000390000000009b8004b000002e40000413d0000001f05200190000004580000c13d000001a30520009c0000046a0000813d00000020052001900000047c0000613d00000000080004140000000007120019000000000527004b000000000500001900000001050040390000017c0610019700000001015001900000043a0000c13d0000000001000031000000000571004b0000043a0000413d000100000002001d000300000003001d000200000004001d0000000204600367000001a40580009c0000048e0000813d00000000017100490000017c0110019700000000011403df000000c002800210000001a502200197000001a6022001c700000000012103af000000020200003905ec05e70000040f000000000301001900000060033002700001017c0030019d0000017c0330019700030000000103550000000102200190000004a00000613d0000003f01300039000001a702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000001810520009c0000000209000029000000030a000029000004340000213d0000000104400190000004340000c13d000000400020043f00000000023104360000001f043000390000000504400272000000010b0000290000033d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000003350000413d000000000400004b0000033f0000613d0000000104000031000000000443004b000004320000213d00000003050003670000001f0430018f00000005033002720000034f0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000003470000413d000000000604004b0000035e0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000004bb0000c13d0000000001020433000000400800043d000001a902000041000000000028043500000004028000390000002003000039000000000032043500000024028000390000000000920435000001aa01100197000000db02b00210000001ab02200197000000000412019f0000001f0290018f00000044018000390000000203a00367000001ac044001c7000300000004001d00000005049002720000037e0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000003760000413d000000000502004b0000038d0000613d0000000504400210000000000343034f00000000044100190000000302200210000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000000191001900000000000104350000001f01900039000000200200008a000000000121016f0000017c020000410000017c0380009c00000000030200190000000003084019000000400330021000000044011000390000017c0410009c00000000010280190000006001100210000000000131019f00000000030004140000017c0430009c0000000002034019000000c002200210000000000112019f0000800802000039000200000008001d05ec05dd0000040f000000020a000029000000000301001900000060033002700000017c03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003af0000413d000000000705004b000003c60000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000004cd0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001810410009c000004340000213d0000000102200190000004340000c13d000000400010043f000000200130008c000004320000413d000001ad010000410000000000100439000080040100003900000004001004430000017c0100004100000000020004140000017c0320009c0000000001024019000000c001100210000001ae011001c7000080020200003905ec05e20000040f0000000102200190000004320000613d000000000101043b000000000101004b000004320000613d000000400400043d000001af0100004100000000001404350000000401400039000000030200002900000000002104350000017c0100004100000000020004140000017c0320009c00000000020180190000017c0340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f0000018d011001c7000080040200003905ec05dd0000040f000000000301001900000060033002700001017c0030019d0000017c0430019700030000000103550000000102200190000004f30000613d0000000202000029000001810120009c000004340000213d000000400020043f0000000301000029000000000001042d000000400100043d00000064021000390000019c03000041000000000032043500000044021000390000019d030000410000000000320435000000240210003900000024030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee00010430000000400100043d00000064021000390000019f0300004100000000003204350000004402100039000001a0030000410000000000320435000000240210003900000032030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee000104300000000001000019000005ee000104300000018c0100004100000000001004350000004101000039000000040010043f0000018d01000041000005ee000104300000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee00010430000000400100043d00000084021000390000019803000041000000000032043500000064021000390000019903000041000000000032043500000044021000390000019a030000410000000000320435000000240210003900000048030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019b011001c7000005ee00010430000000400100043d0000004402100039000001a1030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b2030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b1030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b0030000410000000000320435000000240210003900000008030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee000104300000001f0430018f0000000502300272000004ab0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004a40000413d000000000504004b000004b90000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000005ee00010430000000400100043d0000004402100039000001a8030000410000000000320435000000240210003900000019030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400200043d0000001f0430018f0000000503300272000004da0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004d20000413d000000000504004b000004e90000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000017c0100004100000001030000310000017c0430009c00000000030180190000017c0420009c000000000102401900000040011002100000006002300210000000000112019f000005ee00010430000000400200043d0000001f0340018f0000000504400272000005000000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000004f80000413d000000000503004b0000050f0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000017c0100004100000001030000310000017c0430009c00000000030180190000017c0420009c000000000102401900000040011002100000006002300210000000000112019f000005ee00010430000000000101004b0000051c0000613d000000000001042d000000400100043d0000006402100039000001b30300004100000000003204350000004402100039000001b4030000410000000000320435000000240210003900000023030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee0001043000000000030004140000000004120019000000000224004b000000000500001900000001050040390000017c021001970000000101500190000005900000c13d0000000001000031000000000541004b000005900000413d0000000202200367000001a40530009c000005960000813d00000000014100490000017c0110019700000000011203df000000c002300210000001a502200197000001a6022001c700000000012103af000080100200003905ec05e70000040f000000000301001900000060033002700001017c0030019d0000017c0330019700030000000103550000000102200190000005a80000613d0000003f01300039000001a702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000001810520009c000005c30000213d0000000104400190000005c30000c13d000000400020043f00000000023104360000001f0430003900000005044002720000056a0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000005620000413d000000000400004b0000056c0000613d0000000104000031000000000443004b000005c90000213d00000003050003670000001f0430018f00000005033002720000057c0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000005740000413d000000000604004b0000058b0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000005cb0000c13d0000000001020433000000000001042d0000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee00010430000000400100043d0000004402100039000001b0030000410000000000320435000000240210003900000008030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee000104300000001f0430018f0000000502300272000005b30000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000005ac0000413d000000000504004b000005c10000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000005ee000104300000018c0100004100000000001004350000004101000039000000040010043f0000018d01000041000005ee000104300000000001000019000005ee00010430000000400100043d0000004402100039000001b503000041000000000032043500000024021000390000001f030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000005e0002104210000000102000039000000000001042d0000000002000019000000000001042d000005e5002104230000000102000039000000000001042d0000000002000019000000000001042d000005ea002104230000000102000039000000000001042d0000000002000019000000000001042d000005ec00000432000005ed0001042e000005ee00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006006d8b500000000000000000000000000000000000000000000000000000000f5e69a478000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720000000000000000000000000000000000000000640000008000000000000000000000000000000000000000000000000000000020000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000496e636f7272656374206e756d626572206f6620696e697469616c2073746f726167652064696666730000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000072773a20656e756d206b6579206d69736d61746368000000000000000000000069773a20696e697469616c206b6579206d69736d6174636800000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000007472616e73666f726d206f72206e6f20636f6d7072657373696f6e3a20636f6d7072657373656420616e642066696e616c206d69736d61746368000000000000756e737570706f72746564206f7065726174696f6e00000000000000000000007375623a20696e697469616c206d696e757320636f6e766572746564206e6f7420657175616c20746f2066696e616c00000000000000000000000000000000006164643a20696e697469616c20706c757320636f6e766572746564206e6f7420657175616c20746f2066696e616c000000000000000000000000000000000000656e756d65726174696f6e20696e6465782073697a6520697320746f6f206c617267650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fff862797465636f646500000000000000000000000000000000000000000000000074696d65732073686f72746572207468616e20746865206f726967696e616c20456e636f6465642064617461206c656e6774682073686f756c6420626520342000000000000000000000000000000000000000a4000000000000000000000000756e647300000000000000000000000000000000000000000000000000000000456e636f646564206368756e6b20696e646578206973206f7574206f6620626f0000000000000000000000000000000000000084000000000000000000000000206f726967696e616c2062797465636f64650000000000000000000000000000456e636f646564206368756e6b20646f6573206e6f74206d6174636820746865706f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe07368612072657475726e656420696e76616c696420646174610000000000000062f84b240000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff0000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000066667300000000000000000000000000000000000000000000000000000000004578747261206461746120696e205f636f6d70726573736564537461746544696b656363616b3235362072657475726e656420696e76616c6964206461746100b4d4241d8a2da2cf3e1bf35dd302345ffbb506f1f41300f3c5e72d9a0e037dc2", + "bytecode": "0x0002000000000002000c0000000000020001000000010355000000000301001900000060043002700000012c0040019d0000008003000039000000400030043f000200000004001d0000012c034001970000000102200190000001f20000c13d000000040230008c0000024a0000413d000000000201043b000000e0022002700000012e0420009c000001800000c13d000000040230008a000000800220008c0000024a0000413d0000000402100370000000000802043b0000004402100370000000000402043b0000002402100370000000000e02043b000700000004001d000001300240009c0000024a0000213d000000070200002900000023022000390000013104000041000000000532004b000000000500001900000000050480190000013102200197000000000602004b0000000004008019000001310220009c000000000405c019000000000204004b0000024a0000c13d00000007020000290000000402200039000000000221034f000000000602043b000001300260009c0000024a0000213d00000007020000290000002405200039000100000056001d000000010230006c0000024a0000413d0000006402100370000000000202043b000900000002001d000001300220009c0000024a0000213d000000090200002900000023022000390000013104000041000000000732004b000000000700001900000000070480190000013102200197000000000902004b0000000004008019000001310220009c000000000407c019000000000204004b0000024a0000c13d00000009020000290000000402200039000000000221034f000000000202043b000b00000002001d000001300220009c0000024a0000213d00000009020000290000002404200039000a00000004001d0000000b02400029000000000232004b0000024a0000213d0000000002000411000080080220008c000001fa0000c13d0000000902e0008c000002020000813d000c00020000003d00000110298000c9000001110a00008a000800000000001d000000000700001900060000000e001d000000000208004b000000650000613d00000000328900d9000001100220008c000002ef0000c13d000000000297004b000000ce0000813d0000000002a7004b000002ef0000213d0000011004700039000000000264004b0000024a0000213d00000000025700190000003c02200039000000000321034f000000000303043b00000130033001980000000007040019000000600000c13d000000010f00008a0000000803f0006b000002ef0000613d0000000c0b0000290000000a03b00029000000000731034f000000080320008a000000000231034f000000000707043b000000000202043b000000000272004b0000022a0000c13d000000210200008a00000000022b004b000002ef0000213d0000000c0b0000290000002002b000390000000b0720006c000001560000813d0000000a02200029000000000221034f000000000202043b000000fb07200270000000f802200270000000070d20019000000020070060390000002102b00039000c00000027001e000002ef0000413d0000000c0c0000290000000b0cc0006c0000024a0000213d0000000a02200029000000480c300039000000000cc1034f0000002803300039000000000e31034f000000000221034f000000000302043b00000000020e043b000500000002001d000000060e000029000000000b0c043b0000001f0270008c0000000302700210000000ab0000213d000001000c200089000000000ccf01cf000000000e200049000001000f00008a000000000efe004b000000060e000029000000000c0040190000000003c3016f000000000c07004b000000cc0000613d000001000c20008c000002ef0000213d00000000c77200d9000000080770008c000002ef0000c13d0000010007200089000000000373022f000000000202004b00000000030060190000000802000029000800010020003d00000000020d004b000000c10000613d0000000302d0008c000000c10000613d0000000102d0008c000000c50000c13d00000005023000290000000002b2004b0000000007040019000000600000613d0000016c0000013d0000000002b3004b0000000007040019000000600000613d0000015a0000013d0000000202d0008c000001640000c13d00000005023000690000000002b2004b0000000007040019000000600000613d000001760000013d0000000003000019000000b40000013d00000009020000290000000602200039000000000221034f000000000202043b0000ffff0220018f000000080220006b0000020c0000c13d0000000303e002100000010002300089000000010400008a000800000002001d000400000004001d00000000042401cf00000000023000490003010000000092000000030220006c0000000004004019000500000004001d000900000003001d000001000230008c000002160000213d0000000003000019000000e80000013d0000000002d2004b00000000030400190000015a0000c13d000000000208004b000000ed0000613d00000000428900d9000001100220008c000002ef0000c13d000000000293004b0000024c0000813d0000000002a3004b000002ef0000213d0000011004300039000000000264004b0000024a0000213d00000000025300190000003c0d2000390000000002d1034f000000000202043b00000130072001980000000003040019000000e80000613d0000000c0fe0002a000002ef0000413d0000000b02f0006c0000024a0000213d0000000a030000290000000c02300029000000000221034f000000000202043b0000001f03e0008c000001080000213d000000050220017f00000000030e004b000002e70000613d00000009b3e000f9000000080330008c000002ef0000c13d000000090300006b000002e70000613d0000000802200250000000000227004b000002e70000c13d0000000b02f0006c000001560000813d0000000a02f00029000000000221034f000000000202043b000000fb07200270000000f802200270000000070320019000000020070060390000000102f00039000c00000027001d0000000c0cf0006b000002ef0000a13d0000000c0c0000290000000b0cc0006c0000024a0000213d0000000a02200029000000400cd00039000000000cc1034f000000200dd00039000000000dd1034f000000000221034f000000000202043b000000000f0d043b000000000d0c043b0000001f0c70008c000000030c700210000001390000213d000001000ec00089000000040ee001ef000000000bc0004900070000000d001d000000000d0f0019000000030bb0006c000000000f0d0019000000070d000029000000000e0040190000000002e2016f000000060e000029000000000b07004b000001540000613d000001000bc0008c000002ef0000213d00000000b77c00d9000000080770008c000002ef0000c13d0000010007c00089000000000272022f00000000070c004b0000000002006019000000000703004b000000e50000613d000000030730008c000000e50000613d000000010730008c0000014d0000c13d0000000002f200190000000002d2004b0000000003040019000000e80000613d0000016c0000013d000000020330008c000001640000c13d00000000022f00490000000002d2004b0000000003040019000000e80000613d000001760000013d0000000002000019000001420000013d000001580100004100000000001004350000003201000039000002f20000013d0000013201000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000015c01000041000000c40010043f0000015d01000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000015e01000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002e01000039000000a40010043f0000016101000041000000c40010043f0000016201000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002f01000039000000a40010043f0000015f01000041000000c40010043f0000016001000041000002650000013d0000012f0220009c0000024a0000c13d000000040230008a000000400220008c0000024a0000413d0000000402100370000000000502043b000001300250009c0000024a0000213d00000023025000390000013104000041000000000632004b000000000600001900000000060480190000013102200197000000000702004b0000000004008019000001310220009c000000000406c019000000000204004b0000024a0000c13d0000000402500039000000000221034f000000000202043b000b00000002001d000001300220009c0000024a0000213d00000024045000390000000b02400029000000000623004b0000024a0000413d0000002406100370000000000606043b000001300760009c0000024a0000213d00000023076000390000013108000041000000000937004b000000000900001900000000090880190000013107700197000000000a07004b0000000008008019000001310770009c000000000809c019000000000708004b0000024a0000c13d0000000407600039000000000871034f000000000808043b000a00000008001d000001300880009c0000024a0000213d0000002409600039000900000009001d0000000a08900029000000000338004b0000024a0000213d0000000003000411000080010330008c000002f50000c13d0000000203700039000000000331034f000000000303043b0000000303300210000001350330019700000002083001bf0000000a0780006b0000024a0000413d0000000a0780006900000002097002100000000b0990006c000002fd0000c13d0000000a0980006b000001e40000613d000000060960003900000000089800190000000e066000390000000c055000390000000009000019000000000a980019000000000aa1034f000000000a0a043b000000030aa00210000001350aa00197000000000b3a004b000003130000813d000000000aa60019000000020b900210000000000bb50019000000000bb1034f000000000aa1034f000000000a0a043b000000000b0b043b000000000aba013f000001300aa001980000031d0000c13d0000000209900039000000000a79004b000001d00000413d0000000b030000290000001f033001900000030b0000c13d0000000b03000029000001400330009c000003270000413d0000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000015001000041000002590000013d0000000001000416000000000101004b0000024a0000c13d0000002001000039000001000010044300000120000004430000012d01000041000004aa0001042e0000013201000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000015101000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000016301000041000000c40010043f0000016401000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002901000039000000a40010043f0000015201000041000000c40010043f0000015301000041000002650000013d000000000208004b000002320000c13d0000000702000029000000600220003900000000030000190000000608000029000000000493004b0000024c0000813d0000000004a3004b000002ef0000213d0000011004300039000000000764004b0000024a0000213d0000000003320019000000000331034f000000000303043b000001300330019800000000030400190000021c0000613d000002460000013d0000013201000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000015b01000041000002590000013d00000000328900d9000001100220008c0000000608000029000002ef0000c13d000000070200002900000060022000390000000003000019000000000493004b0000024c0000813d0000000004a3004b000002ef0000213d0000011004300039000000000764004b0000024a0000213d0000000003320019000000000331034f000000000303043b00000130033001980000000003040019000002390000613d0000000c0180002a000002ef0000413d0000000b0110006c000002e50000a13d0000000001000019000004ab000104300000000c030000290000000b0230006c0000025c0000c13d0000000002000414000001560320009c000002680000413d0000013201000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000015901000041000000c40010043f0000013401000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000015401000041000000c40010043f0000015501000041000000e40010043f0000013c01000041000004ab000104300000012c03500197000000000131034f000000010400002900000002034000690000012c0330019700000000013103df000000c002200210000001410220019700000142022001c700000000012103af000080100200003904a904a40000040f000000000301001900000060033002700000012c033001970000000102200190000002bd0000613d0000003f023000390000014304200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000001300640009c000004200000213d0000000105500190000004200000c13d000000400040043f00000000043204360000001f053000390000000505500272000002940000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000028c0000413d000000000500004b000002960000613d0000001f0530018f0000000503300272000002a20000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000029a0000413d000000000605004b000002b10000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000012c03000041000000400100043d0000012c0510009c000000000301401900000040033002100000000002020433000000200220008c000002d80000c13d000000000204043300000000002104350000014e013001c7000004aa0001042e0000001f0430018f0000000502300272000002c80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000002c10000413d000000000504004b000002d60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000004ab0001043000000044021000390000015704000041000000000042043500000024021000390000001f0400003900000000004204350000013202000041000000000021043500000004011000390000002002000039000000000021043500000145013001c7000004ab00010430000000000108004b000002ef0000c13d0000013201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000015a01000041000002590000013d000001580100004100000000001004350000001101000039000000040010043f0000014d01000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000013301000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000004801000039000000a40010043f0000013601000041000000c40010043f0000013701000041000000e40010043f0000013801000041000001040010043f0000013901000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000013f01000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000013a01000041000000c40010043f0000013b01000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000003201000039000000a40010043f0000013d01000041000000c40010043f0000013e01000041000002650000013d0000000b030000290000002003300190000003320000c13d0000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000014f01000041000002590000013d00000000030004140000012c0530009c000002520000213d0000012c04400197000000000141034f00000002022000690000012c0220019700000000012103df000000c002300210000001410220019700000142022001c700000000012103af000000020200003904a904a40000040f000000000301001900000060033002700000012c033001970000000102200190000004240000613d0000003f023000390000014304200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000001300640009c000004200000213d0000000105500190000004200000c13d000000400040043f000000000532043600000001040003670000001f063000390000000506600272000003600000613d000000000740036800000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000003580000413d000000000600004b000003620000613d0000001f0630018f00000005033002720000036e0000613d000000000700001900000005087002100000000009850019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b000003660000413d000000000706004b0000037d0000613d0000000503300210000000000131034f00000000033500190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f0000000000130435000000400600043d00000044016000390000002403600039000c00000006001d00000004066000390000000002020433000000200220008c0000043f0000c13d000000000505043300000146020000410000000c070000290000000000270435000000200200003900000000002604350000000a060000290000000000630435000000090240036000000147035001970000000b04000029000000db044002100000014804400197000000000434019f0000001f0360018f000b0149004001cb0000000504600272000003a00000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b000003980000413d000000000503004b000003af0000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000a02000029000000000121001900000000000104350000001f01200039000000200200008a000000000121016f0000012c020000410000000c040000290000012c0340009c00000000030200190000000003044019000000400330021000000044011000390000012c0410009c00000000010280190000006001100210000000000113019f00000000030004140000012c0430009c0000000003028019000000c002300210000000000112019f000080080200003904a9049a0000040f000000000301001900000060033002700000012c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003d90000613d000000000700001900000005087002100000000c09800029000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003d10000413d000000000705004b000003e80000613d0000000506600210000000000761034f0000000c066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000044e0000613d0000001f01400039000000600210018f0000000c01200029000000000221004b00000000020000190000000102004039000001300410009c000004200000213d0000000102200190000004200000c13d000000400010043f000000200130008c0000024a0000413d0000014a010000410000000000100439000080040100003900000004001004430000012c0100004100000000020004140000012c0320009c0000000002018019000000c0012002100000014b011001c7000080020200003904a9049f0000040f0000000102200190000004710000613d000000000101043b000000000101004b0000024a0000613d000000400400043d0000014c01000041000000000014043500000004014000390000000b0200002900000000002104350000012c0100004100000000020004140000012c0320009c00000000020180190000012c0340009c000c00000004001d0000000001044019000a004000100218000000c0012002100000000a011001af0000014d011001c7000080040200003904a9049a0000040f0000000102200190000004720000613d0000000c01000029000001300110009c000004920000a13d000001580100004100000000001004350000004101000039000002f20000013d0000001f0430018f00000005023002720000042f0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004280000413d000000000504004b0000043d0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000004ab0001043000000132020000410000000c0400002900000000002404350000002002000039000000000026043500000019020000390000000000230435000001440200004100000000002104350000012c010000410000012c0240009c0000000004018019000000400140021000000145011001c7000004ab00010430000000400200043d0000001f0430018f00000005053002720000045b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000004530000413d000000000604004b0000046a0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000012c010000410000012c0420009c000000000201801900000040012002100000006002300210000000000121019f000004ab00010430000000000001042f000000400200043d000000000301001900000060033002700000001f0430018f0000012c033001970000000505300272000004820000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000047a0000413d000000000604004b000004910000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000046a0000013d0000000c02000029000000400020043f0000000b0100002900000000001204350000000a010000290000014e011001c7000004aa0001042e000000000001042f0000049d002104210000000102000039000000000001042d0000000002000019000000000001042d000004a2002104230000000102000039000000000001042d0000000002000019000000000001042d000004a7002104230000000102000039000000000001042d0000000002000019000000000001042d000004a900000432000004aa0001042e000004ab00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006006d8b500000000000000000000000000000000000000000000000000000000f5e69a47000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000000000000000000000000000000000000000000000000000000000000007fff8456e636f6465642064617461206c656e6774682073686f756c6420626520342074696d65732073686f72746572207468616e20746865206f726967696e616c2062797465636f646500000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000800000000000000000456e636f646564206368756e6b20696e646578206973206f7574206f6620626f756e6473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000456e636f646564206368756e6b20646f6573206e6f74206d6174636820746865206f726967696e616c2062797465636f64650000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe07368612072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000006400000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff0000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002000000000000000000000000070720000000000000000000000000000000000000000000000000000000000007070000000000000000000000000000000000000000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000496e636f7272656374206e756d626572206f6620696e697469616c2073746f7261676520646966667300000000000000000000000000000000000000000000004578747261206461746120696e205f636f6d7072657373656453746174654469666673000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000006b656363616b3235362072657475726e656420696e76616c69642064617461004e487b71000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000072773a20656e756d206b6579206d69736d61746368000000000000000000000069773a20696e697469616c206b6579206d69736d6174636800000000000000007472616e73666f726d206f72206e6f20636f6d7072657373696f6e3a20636f6d7072657373656420616e642066696e616c206d69736d61746368000000000000756e737570706f72746564206f7065726174696f6e00000000000000000000007375623a20696e697469616c206d696e757320636f6e766572746564206e6f7420657175616c20746f2066696e616c00000000000000000000000000000000006164643a20696e697469616c20706c757320636f6e766572746564206e6f7420657175616c20746f2066696e616c000000000000000000000000000000000000656e756d65726174696f6e20696e6465782073697a6520697320746f6f206c617267650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012e2e5b654849f0d6385d8d3c791e4e4befced402b4e0cc4743de149426b5367", + "deployedBytecode": "0x0002000000000002000c0000000000020001000000010355000000000301001900000060043002700000012c0040019d0000008003000039000000400030043f000200000004001d0000012c034001970000000102200190000001f20000c13d000000040230008c0000024a0000413d000000000201043b000000e0022002700000012e0420009c000001800000c13d000000040230008a000000800220008c0000024a0000413d0000000402100370000000000802043b0000004402100370000000000402043b0000002402100370000000000e02043b000700000004001d000001300240009c0000024a0000213d000000070200002900000023022000390000013104000041000000000532004b000000000500001900000000050480190000013102200197000000000602004b0000000004008019000001310220009c000000000405c019000000000204004b0000024a0000c13d00000007020000290000000402200039000000000221034f000000000602043b000001300260009c0000024a0000213d00000007020000290000002405200039000100000056001d000000010230006c0000024a0000413d0000006402100370000000000202043b000900000002001d000001300220009c0000024a0000213d000000090200002900000023022000390000013104000041000000000732004b000000000700001900000000070480190000013102200197000000000902004b0000000004008019000001310220009c000000000407c019000000000204004b0000024a0000c13d00000009020000290000000402200039000000000221034f000000000202043b000b00000002001d000001300220009c0000024a0000213d00000009020000290000002404200039000a00000004001d0000000b02400029000000000232004b0000024a0000213d0000000002000411000080080220008c000001fa0000c13d0000000902e0008c000002020000813d000c00020000003d00000110298000c9000001110a00008a000800000000001d000000000700001900060000000e001d000000000208004b000000650000613d00000000328900d9000001100220008c000002ef0000c13d000000000297004b000000ce0000813d0000000002a7004b000002ef0000213d0000011004700039000000000264004b0000024a0000213d00000000025700190000003c02200039000000000321034f000000000303043b00000130033001980000000007040019000000600000c13d000000010f00008a0000000803f0006b000002ef0000613d0000000c0b0000290000000a03b00029000000000731034f000000080320008a000000000231034f000000000707043b000000000202043b000000000272004b0000022a0000c13d000000210200008a00000000022b004b000002ef0000213d0000000c0b0000290000002002b000390000000b0720006c000001560000813d0000000a02200029000000000221034f000000000202043b000000fb07200270000000f802200270000000070d20019000000020070060390000002102b00039000c00000027001e000002ef0000413d0000000c0c0000290000000b0cc0006c0000024a0000213d0000000a02200029000000480c300039000000000cc1034f0000002803300039000000000e31034f000000000221034f000000000302043b00000000020e043b000500000002001d000000060e000029000000000b0c043b0000001f0270008c0000000302700210000000ab0000213d000001000c200089000000000ccf01cf000000000e200049000001000f00008a000000000efe004b000000060e000029000000000c0040190000000003c3016f000000000c07004b000000cc0000613d000001000c20008c000002ef0000213d00000000c77200d9000000080770008c000002ef0000c13d0000010007200089000000000373022f000000000202004b00000000030060190000000802000029000800010020003d00000000020d004b000000c10000613d0000000302d0008c000000c10000613d0000000102d0008c000000c50000c13d00000005023000290000000002b2004b0000000007040019000000600000613d0000016c0000013d0000000002b3004b0000000007040019000000600000613d0000015a0000013d0000000202d0008c000001640000c13d00000005023000690000000002b2004b0000000007040019000000600000613d000001760000013d0000000003000019000000b40000013d00000009020000290000000602200039000000000221034f000000000202043b0000ffff0220018f000000080220006b0000020c0000c13d0000000303e002100000010002300089000000010400008a000800000002001d000400000004001d00000000042401cf00000000023000490003010000000092000000030220006c0000000004004019000500000004001d000900000003001d000001000230008c000002160000213d0000000003000019000000e80000013d0000000002d2004b00000000030400190000015a0000c13d000000000208004b000000ed0000613d00000000428900d9000001100220008c000002ef0000c13d000000000293004b0000024c0000813d0000000002a3004b000002ef0000213d0000011004300039000000000264004b0000024a0000213d00000000025300190000003c0d2000390000000002d1034f000000000202043b00000130072001980000000003040019000000e80000613d0000000c0fe0002a000002ef0000413d0000000b02f0006c0000024a0000213d0000000a030000290000000c02300029000000000221034f000000000202043b0000001f03e0008c000001080000213d000000050220017f00000000030e004b000002e70000613d00000009b3e000f9000000080330008c000002ef0000c13d000000090300006b000002e70000613d0000000802200250000000000227004b000002e70000c13d0000000b02f0006c000001560000813d0000000a02f00029000000000221034f000000000202043b000000fb07200270000000f802200270000000070320019000000020070060390000000102f00039000c00000027001d0000000c0cf0006b000002ef0000a13d0000000c0c0000290000000b0cc0006c0000024a0000213d0000000a02200029000000400cd00039000000000cc1034f000000200dd00039000000000dd1034f000000000221034f000000000202043b000000000f0d043b000000000d0c043b0000001f0c70008c000000030c700210000001390000213d000001000ec00089000000040ee001ef000000000bc0004900070000000d001d000000000d0f0019000000030bb0006c000000000f0d0019000000070d000029000000000e0040190000000002e2016f000000060e000029000000000b07004b000001540000613d000001000bc0008c000002ef0000213d00000000b77c00d9000000080770008c000002ef0000c13d0000010007c00089000000000272022f00000000070c004b0000000002006019000000000703004b000000e50000613d000000030730008c000000e50000613d000000010730008c0000014d0000c13d0000000002f200190000000002d2004b0000000003040019000000e80000613d0000016c0000013d000000020330008c000001640000c13d00000000022f00490000000002d2004b0000000003040019000000e80000613d000001760000013d0000000002000019000001420000013d000001580100004100000000001004350000003201000039000002f20000013d0000013201000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000015c01000041000000c40010043f0000015d01000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000015e01000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002e01000039000000a40010043f0000016101000041000000c40010043f0000016201000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002f01000039000000a40010043f0000015f01000041000000c40010043f0000016001000041000002650000013d0000012f0220009c0000024a0000c13d000000040230008a000000400220008c0000024a0000413d0000000402100370000000000502043b000001300250009c0000024a0000213d00000023025000390000013104000041000000000632004b000000000600001900000000060480190000013102200197000000000702004b0000000004008019000001310220009c000000000406c019000000000204004b0000024a0000c13d0000000402500039000000000221034f000000000202043b000b00000002001d000001300220009c0000024a0000213d00000024045000390000000b02400029000000000623004b0000024a0000413d0000002406100370000000000606043b000001300760009c0000024a0000213d00000023076000390000013108000041000000000937004b000000000900001900000000090880190000013107700197000000000a07004b0000000008008019000001310770009c000000000809c019000000000708004b0000024a0000c13d0000000407600039000000000871034f000000000808043b000a00000008001d000001300880009c0000024a0000213d0000002409600039000900000009001d0000000a08900029000000000338004b0000024a0000213d0000000003000411000080010330008c000002f50000c13d0000000203700039000000000331034f000000000303043b0000000303300210000001350330019700000002083001bf0000000a0780006b0000024a0000413d0000000a0780006900000002097002100000000b0990006c000002fd0000c13d0000000a0980006b000001e40000613d000000060960003900000000089800190000000e066000390000000c055000390000000009000019000000000a980019000000000aa1034f000000000a0a043b000000030aa00210000001350aa00197000000000b3a004b000003130000813d000000000aa60019000000020b900210000000000bb50019000000000bb1034f000000000aa1034f000000000a0a043b000000000b0b043b000000000aba013f000001300aa001980000031d0000c13d0000000209900039000000000a79004b000001d00000413d0000000b030000290000001f033001900000030b0000c13d0000000b03000029000001400330009c000003270000413d0000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000015001000041000002590000013d0000000001000416000000000101004b0000024a0000c13d0000002001000039000001000010044300000120000004430000012d01000041000004aa0001042e0000013201000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000015101000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000016301000041000000c40010043f0000016401000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002901000039000000a40010043f0000015201000041000000c40010043f0000015301000041000002650000013d000000000208004b000002320000c13d0000000702000029000000600220003900000000030000190000000608000029000000000493004b0000024c0000813d0000000004a3004b000002ef0000213d0000011004300039000000000764004b0000024a0000213d0000000003320019000000000331034f000000000303043b000001300330019800000000030400190000021c0000613d000002460000013d0000013201000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000015b01000041000002590000013d00000000328900d9000001100220008c0000000608000029000002ef0000c13d000000070200002900000060022000390000000003000019000000000493004b0000024c0000813d0000000004a3004b000002ef0000213d0000011004300039000000000764004b0000024a0000213d0000000003320019000000000331034f000000000303043b00000130033001980000000003040019000002390000613d0000000c0180002a000002ef0000413d0000000b0110006c000002e50000a13d0000000001000019000004ab000104300000000c030000290000000b0230006c0000025c0000c13d0000000002000414000001560320009c000002680000413d0000013201000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000015901000041000000c40010043f0000013401000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000015401000041000000c40010043f0000015501000041000000e40010043f0000013c01000041000004ab000104300000012c03500197000000000131034f000000010400002900000002034000690000012c0330019700000000013103df000000c002200210000001410220019700000142022001c700000000012103af000080100200003904a904a40000040f000000000301001900000060033002700000012c033001970000000102200190000002bd0000613d0000003f023000390000014304200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000001300640009c000004200000213d0000000105500190000004200000c13d000000400040043f00000000043204360000001f053000390000000505500272000002940000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000028c0000413d000000000500004b000002960000613d0000001f0530018f0000000503300272000002a20000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000029a0000413d000000000605004b000002b10000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000012c03000041000000400100043d0000012c0510009c000000000301401900000040033002100000000002020433000000200220008c000002d80000c13d000000000204043300000000002104350000014e013001c7000004aa0001042e0000001f0430018f0000000502300272000002c80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000002c10000413d000000000504004b000002d60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000004ab0001043000000044021000390000015704000041000000000042043500000024021000390000001f0400003900000000004204350000013202000041000000000021043500000004011000390000002002000039000000000021043500000145013001c7000004ab00010430000000000108004b000002ef0000c13d0000013201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000015a01000041000002590000013d000001580100004100000000001004350000001101000039000000040010043f0000014d01000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000013301000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000004801000039000000a40010043f0000013601000041000000c40010043f0000013701000041000000e40010043f0000013801000041000001040010043f0000013901000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000013f01000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000013a01000041000000c40010043f0000013b01000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000003201000039000000a40010043f0000013d01000041000000c40010043f0000013e01000041000002650000013d0000000b030000290000002003300190000003320000c13d0000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000014f01000041000002590000013d00000000030004140000012c0530009c000002520000213d0000012c04400197000000000141034f00000002022000690000012c0220019700000000012103df000000c002300210000001410220019700000142022001c700000000012103af000000020200003904a904a40000040f000000000301001900000060033002700000012c033001970000000102200190000004240000613d0000003f023000390000014304200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000001300640009c000004200000213d0000000105500190000004200000c13d000000400040043f000000000532043600000001040003670000001f063000390000000506600272000003600000613d000000000740036800000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000003580000413d000000000600004b000003620000613d0000001f0630018f00000005033002720000036e0000613d000000000700001900000005087002100000000009850019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b000003660000413d000000000706004b0000037d0000613d0000000503300210000000000131034f00000000033500190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f0000000000130435000000400600043d00000044016000390000002403600039000c00000006001d00000004066000390000000002020433000000200220008c0000043f0000c13d000000000505043300000146020000410000000c070000290000000000270435000000200200003900000000002604350000000a060000290000000000630435000000090240036000000147035001970000000b04000029000000db044002100000014804400197000000000434019f0000001f0360018f000b0149004001cb0000000504600272000003a00000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b000003980000413d000000000503004b000003af0000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000a02000029000000000121001900000000000104350000001f01200039000000200200008a000000000121016f0000012c020000410000000c040000290000012c0340009c00000000030200190000000003044019000000400330021000000044011000390000012c0410009c00000000010280190000006001100210000000000113019f00000000030004140000012c0430009c0000000003028019000000c002300210000000000112019f000080080200003904a9049a0000040f000000000301001900000060033002700000012c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003d90000613d000000000700001900000005087002100000000c09800029000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003d10000413d000000000705004b000003e80000613d0000000506600210000000000761034f0000000c066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000044e0000613d0000001f01400039000000600210018f0000000c01200029000000000221004b00000000020000190000000102004039000001300410009c000004200000213d0000000102200190000004200000c13d000000400010043f000000200130008c0000024a0000413d0000014a010000410000000000100439000080040100003900000004001004430000012c0100004100000000020004140000012c0320009c0000000002018019000000c0012002100000014b011001c7000080020200003904a9049f0000040f0000000102200190000004710000613d000000000101043b000000000101004b0000024a0000613d000000400400043d0000014c01000041000000000014043500000004014000390000000b0200002900000000002104350000012c0100004100000000020004140000012c0320009c00000000020180190000012c0340009c000c00000004001d0000000001044019000a004000100218000000c0012002100000000a011001af0000014d011001c7000080040200003904a9049a0000040f0000000102200190000004720000613d0000000c01000029000001300110009c000004920000a13d000001580100004100000000001004350000004101000039000002f20000013d0000001f0430018f00000005023002720000042f0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004280000413d000000000504004b0000043d0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000004ab0001043000000132020000410000000c0400002900000000002404350000002002000039000000000026043500000019020000390000000000230435000001440200004100000000002104350000012c010000410000012c0240009c0000000004018019000000400140021000000145011001c7000004ab00010430000000400200043d0000001f0430018f00000005053002720000045b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000004530000413d000000000604004b0000046a0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000012c010000410000012c0420009c000000000201801900000040012002100000006002300210000000000121019f000004ab00010430000000000001042f000000400200043d000000000301001900000060033002700000001f0430018f0000012c033001970000000505300272000004820000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000047a0000413d000000000604004b000004910000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000046a0000013d0000000c02000029000000400020043f0000000b0100002900000000001204350000000a010000290000014e011001c7000004aa0001042e000000000001042f0000049d002104210000000102000039000000000001042d0000000002000019000000000001042d000004a2002104230000000102000039000000000001042d0000000002000019000000000001042d000004a7002104230000000102000039000000000001042d0000000002000019000000000001042d000004a900000432000004aa0001042e000004ab00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006006d8b500000000000000000000000000000000000000000000000000000000f5e69a47000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000000000000000000000000000000000000000000000000000000000000007fff8456e636f6465642064617461206c656e6774682073686f756c6420626520342074696d65732073686f72746572207468616e20746865206f726967696e616c2062797465636f646500000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000800000000000000000456e636f646564206368756e6b20696e646578206973206f7574206f6620626f756e6473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000456e636f646564206368756e6b20646f6573206e6f74206d6174636820746865206f726967696e616c2062797465636f64650000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe07368612072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000006400000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff0000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002000000000000000000000000070720000000000000000000000000000000000000000000000000000000000007070000000000000000000000000000000000000000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000496e636f7272656374206e756d626572206f6620696e697469616c2073746f7261676520646966667300000000000000000000000000000000000000000000004578747261206461746120696e205f636f6d7072657373656453746174654469666673000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000006b656363616b3235362072657475726e656420696e76616c69642064617461004e487b71000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000072773a20656e756d206b6579206d69736d61746368000000000000000000000069773a20696e697469616c206b6579206d69736d6174636800000000000000007472616e73666f726d206f72206e6f20636f6d7072657373696f6e3a20636f6d7072657373656420616e642066696e616c206d69736d61746368000000000000756e737570706f72746564206f7065726174696f6e00000000000000000000007375623a20696e697469616c206d696e757320636f6e766572746564206e6f7420657175616c20746f2066696e616c00000000000000000000000000000000006164643a20696e697469616c20706c757320636f6e766572746564206e6f7420657175616c20746f2066696e616c000000000000000000000000000000000000656e756d65726174696f6e20696e6465782073697a6520697320746f6f206c617267650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012e2e5b654849f0d6385d8d3c791e4e4befced402b4e0cc4743de149426b5367", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/ContractDeployer.json b/src/deps/contracts/ContractDeployer.json index fa7be3ad..e35e02ff 100644 --- a/src/deps/contracts/ContractDeployer.json +++ b/src/deps/contracts/ContractDeployer.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "ContractDeployer", - "sourceName": "cache-zk/solpp-generated-contracts/ContractDeployer.sol", + "sourceName": "contracts-preprocessed/ContractDeployer.sol", "abi": [ { "anonymous": false, @@ -425,8 +425,8 @@ "type": "function" } ], - "bytecode": "0x0005000000000002000900000000000200000000030100190000006003300270000005a80430019700040000004103550003000000010355000005a80030019d000200000002001f000100000000001f0000008001000039000000400010043f00000001012001900000009b0000c13d0000000002000031000000040120008c0000048b0000413d0000000301000367000000000301043b000000e003300270000005aa0430009c000000a30000a13d000005ab0430009c000000dd0000a13d000005ac0430009c000001750000213d000005af0430009c000001f20000613d000005b00130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000000010110008c0000048b0000213d0000000002000411000000020100003900000002011001880000003b0000c13d0000ffff0120008c000000c80000213d000800000002001d0000000000200435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400400043d000005ca0240009c000004c00000213d000000000101043b0000004002400039000000400020043f000000000101041a000000ff0210018f000000010320008c000007e80000213d00000000032404360000000801100270000000ff0110018f000000010210008c000007e80000213d000600000004001d000700000003001d00000000001304350000000902000029000000010220008c000007ee0000c13d000000000101004b000007ee0000c13d00000001020000390000000701000029000900000002001d00000000002104350000000801000029000005bd011001970000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b00000006020000290000000002020433000000010320008c0000000705000029000007e80000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000002050433000000010320008c000007e80000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b000000400100043d00000009020000290000000000210435000005a8020000410000000003000414000005a80430009c0000000003028019000005a80410009c00000000010280190000004001100210000000c002300210000000000112019f000005cf011001c70000800d020000390000000203000039000005d0040000410000000805000029169a16850000040f0000000101200190000004ed0000c13d0000048b0000013d0000000001000416000000000101004b0000048b0000c13d000000200100003900000100001004430000012000000443000005a9010000410000169b0001042e000005b40430009c0000013d0000213d000005b80430009c000003350000613d000005b90430009c000003570000613d000005ba0130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000000010110008c0000048b0000213d000000000200041100000002010000390000000201100188000004c60000c13d000005c70120009c000004c60000413d000000400100043d0000006402100039000005ec0300004100000000003204350000004402100039000005ed030000410000000000320435000000240210003900000024030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000005b10430009c000002270000613d000005b20430009c000003e10000613d000005b30330009c0000048b0000c13d000000040220008a000005bb03000041000000200420008c00000000040000190000000004034019000005bb02200197000000000502004b000000000300a019000005bb0220009c00000000020400190000000002036019000000000202004b0000048b0000c13d0000000401100370000000000201043b0000000001000411000080070110008c0000048d0000c13d000005c101000041000000800010043f000900000002001d000000840020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800402000039169a168a0000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001130000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000010b0000413d000000000705004b000001220000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000004970000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200330008c0000048b0000413d000000800300043d000000000303004b0000052d0000c13d000005be03000041000000000031043500000084032001bf00000020040000390000000000430435000000c403200039000005c5040000410000000000430435000000a4022000390000001a0300003900000000003204350000004001100210000005c6011001c70000169c00010430000005b50430009c000004280000613d000005b60130009c000004750000613d000005b70130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d0000000002000031000000040120008a000005bb03000041000000800410008c00000000040000190000000004034019000005bb01100197000000000501004b000000000300a019000005bb0110009c00000000010400190000000001036019000000000101004b0000048b0000c13d00000003010003670000000403100370000000000303043b000900000003001d000005bd0330009c0000048b0000213d0000006401100370000000000101043b000005bc0310009c0000048b0000213d0000000401100039169a09060000040f00000003040003670000004403400370000000000303043b0000002404400370000000000404043b000000000501001900000000060200190000000901000029000000000204001900000000040500190000000005060019169a09210000040f000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000005ad0430009c000002ab0000613d000005ae0330009c0000048b0000c13d000000040320008a000005bb04000041000000400530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000403100370000000000303043b000900000003001d000005bc0330009c0000048b0000213d00000009030000290000000002320049000800000002001d000000040220008a000005bb03000041000000a00420008c00000000040000190000000004034019000005bb02200197000000000502004b000000000300a019000005bb0220009c00000000020400190000000002036019000000000202004b0000048b0000c13d0000002402100370000000000202043b000700000002001d000005bd0220009c0000048b0000213d00000000020004100000000003000411000000000223004b000005720000c13d00000009020000290000000402200039000000000121034f000000000201043b000005c101000041000000800010043f000600000002001d000000840020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800402000039169a168a0000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001c60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001be0000413d000000000705004b000001d50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000400000001035500000001022001900000067f0000613d0000001f01400039000000600110018f00000080021001bf000500000002001d000000400020043f000000200230008c0000048b0000413d000000800200043d000000000202004b000007bf0000c13d000005be020000410000000504000029000000000024043500000084021001bf00000020030000390000000000320435000000c402100039000005c5030000410000000000320435000000a4011000390000001a0200003900000000002104350000004001400210000005c6011001c70000169c00010430000000040320008a000005bb04000041000000200530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000e04043b000005bc04e0009c0000048b0000213d000000240f3000390000000504e002100000000004f40019000000000424004b0000048b0000213d000000090500008a0000000004000411000000000554016f000080070550008c0000051f0000c13d00000000050e004b0000057c0000c13d0000000001000416000000000101004b000004ed0000613d000007550000013d000000040320008a000005bb04000041000000600530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000141034f000000000101043b000800000001001d000005bc0110009c0000048b0000213d00000024033000390000000801000029000700000003001d0000000001310019000000000121004b0000048b0000213d0000000201000039000000020110018800000001011002700000025e0000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000600000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000027f0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002770000413d000000000705004b0000028e0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000006a50000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d000000800200043d0000000601000029169a09fc0000040f0000000002010019000600000002001d000000090100002900000007030000290000000804000029169a0a320000040f0000000601000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000800530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000404043b000800000004001d000005bc0440009c0000048b0000213d00000024043000390000000803000029000700000004001d0000000003430019000000000223004b0000048b0000213d0000006401100370000000000101043b000600000001001d000000010110008c0000048b0000213d000000020100003900000002011001880000000101100270000002e70000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000500000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003080000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003000000413d000000000705004b000003170000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000400000001035500000001022001900000076d0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d000000800200043d0000000501000029169a09fc0000040f0000000002010019000500000002001d0000000901000029000000060300002900000007040000290000000805000029169a0eda0000040f0000000501000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000400310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000003020003670000000401200370000000000101043b000005bd0310009c0000048b0000213d0000002402200370000000000202043b169a09fc0000040f000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000600530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000000403100370000000000303043b000800000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000141034f000000000101043b000700000001001d000005bc0110009c0000048b0000213d00000024033000390000000701000029000600000003001d0000000001310019000000000121004b0000048b0000213d000000020100003900000002011001880000000101100270000003910000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000500000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b20000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003aa0000413d000000000705004b000003c10000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000006cb0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d00000005010000290000000902000029000000080300002900000006040000290000000705000029169a09210000040f0000000002010019000800000002001d000000090100002900000006030000290000000704000029169a0a320000040f0000000801000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000005bd0110009c0000048b0000213d00000009010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400200043d000005ca0320009c000004c00000213d000000000101043b0000004003200039000000400030043f000000000101041a000000ff0310018f000000010430008c000007e80000213d00000000033204360000000801100270000000ff0110018f000000010410008c000007e80000213d00000000001304350000000002020433000000010120008c000007e80000213d0000000101000039000000000202004b000004200000c13d0000000901000029000005e70110019800000000010000190000082c0000c13d000000010110018f000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000800530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000000403100370000000000303043b000800000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000404043b000700000004001d000005bc0440009c0000048b0000213d00000024043000390000000703000029000600000004001d0000000003430019000000000223004b0000048b0000213d0000006401100370000000000101043b000500000001001d000000010110008c0000048b0000213d000000020100003900000002011001880000000101100270000004670000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000006f10000c13d000005be01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f000005ed01000041000000c40010043f000005ec01000041000000e40010043f000005ee010000410000169c000104300000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000005bd0210009c000004bd0000a13d00000000010000190000169c00010430000005be01000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f000005e001000041000000c40010043f000005c0010000410000169c00010430000000400200043d0000001f0430018f0000000503300272000004a40000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000049c0000413d000000000504004b000004b30000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d000005e90320009c000004ef0000413d000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000800000002001d0000000000200435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000903000029000000000232019f000000000021041b000000400100043d0000000000310435000005a8020000410000000003000414000005a80430009c0000000003028019000005a80410009c00000000010280190000004001100210000000c002300210000000000112019f000005cf011001c70000800d020000390000000203000039000005eb040000410000000805000029169a16850000040f00000001012001900000048b0000613d00000000010000190000169b0001042e0000004003200039000000400030043f0000002003200039000000000003043500000000000204350000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400200043d000005ca0320009c000004c00000213d000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f000000020410008c000007e80000813d00000000011204360000000803300270000000ff0330018f000000010430008c000007e80000213d00000000003104350000000003020433000000010230008c000007e80000213d000000400200043d00000000033204360000000001010433000000010410008c000007e80000213d0000000000130435000005a801000041000005a80320009c00000000010240190000004001100210000005ea011001c70000169b0001042e000005be01000041000000800010043f0000002001000039000000840010043f0000004101000039000000a40010043f000005d101000041000000c40010043f000005d201000041000000e40010043f000005d301000041000001040010043f000005d4010000410000169c000104300000000001000416000000000101004b000007400000c13d000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f00000001022001900000048b0000613d000000000101043b000000000101004b0000048b0000613d000000400400043d000000240140003900000009020000290000000000210435000005e4010000410000000000140435000000040140003900008010020000390000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000800000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000008060000613d0000000801000029000005bc0110009c000004c00000213d0000000801000029000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000080070500003900008010070000390000000906000029169a16850000040f0000000101200190000004ed0000c13d0000048b0000013d000005be01000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f000005bf01000041000000c40010043f000005c0010000410000169c0001043000000000053200490000008402300039000000c30550008a0000000007000019000000000600001900000005087002100000000008f80019000000000881034f000000000808043b000005bb09000041000000000a58004b000000000a000019000000000a098019000005bb0b500197000005bb0c800197000000000dbc004b0000000009008019000000000bbc013f000005bb0bb0009c00000000090ac019000000000909004b0000048b0000c13d0000000008820019000000000881034f000000000808043b0000000006680019000000000886004b000000000800001900000001080040390000000108800190000007b90000c13d00000001077000390000000008e7004b000005810000413d0000000001000416000000000161004b000007550000c13d000000c30100008a0000000001310049000200000001001d000005bd01400197000100000001001d000000000900001900050000000e001d00040000000f001d00000005019002100000000002f100190000000301000367000000000221034f000000000202043b00000002030000290000000003300031000005bb04000041000000000532004b00000000050000190000000005048019000005bb03300197000005bb06200197000000000736004b0000000004008019000000000336013f000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000002f20019000800000002001d0000006002200039000700000002001d000000000121034f000000000101043b000300000001001d000005d50100004100000000001004390000000001000410000600000001001d0000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000900000009001d169a168a0000040f000000080b0000290000000909000029000000040f000029000000050e00002900000001022001900000048b0000613d000000000101043b000000000101004b0000048b0000613d000000400a00043d000005d70100004100000000001a04350000000401a00039000000400200003900000000002104350000000301b00367000000000101043b0000004402a0003900000000001204350000002001b000390000000301100367000000000101043b000005bd0210009c0000048b0000213d0000006402a0003900000000001204350000004001b000390000000301100367000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b0000048b0000c13d0000008402a00039000000000012043500000007010000290000000301100367000000000101043b000000a402a00039000000000012043500000000020000310000000001b200490000008003b000390000001f0410008a0000000301000367000000000331034f000000000303043b000005bb05000041000000000643004b00000000060000190000000006058019000005bb04400197000005bb07300197000000000847004b0000000005008019000000000447013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000003b30019000000000131034f000000000101043b000005bc0410009c0000048b0000213d00000020033000390000000002120049000005bb04000041000000000523004b00000000050000190000000005042019000005bb02200197000005bb06300197000000000726004b0000000004008019000000000226013f000005bb0220009c00000000020500190000000002046019000000000202004b0000048b0000c13d000000c402a00039000000a0040000390000000000420435000000e402a0003900000000001204350000010402a0003900000003033003670000000504100272000006380000613d000000000500001900000005065002100000000007620019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000006300000413d0000001f05100190000006470000613d0000000504400210000000000343034f00000000044200190000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000340435000000000221001900000000000204350000002402a000390000000103000029000000000032043500000000020004140000000604000029000000040340008c000006780000613d0000001f01100039000000200300008a000000000131016f000005d803000041000005d80510009c0000000001038019000005a803000041000005a805a0009c00080000000a001d000000000503001900000000050a401900000040055002100000006001100210000000000151019f000005a80520009c0000000002038019000000c002200210000000000121019f000005d9011000410000000303000029000000000203004b0000066b0000613d000005da011001c700008009020000390000000005000019169a16850000040f0000066d0000013d0000000002040019169a16850000040f000400000001035500000000030100190000006003300270000105a80030019d000005a8043001970000000102200190000000050e000029000000040f0000290000000909000029000000080a000029000008e00000613d000005bc01a0009c000004c00000213d0000004000a0043f00000001099000390000000001e9004b000005a90000413d000004ed0000013d000000400200043d0000001f0430018f00000005033002720000068c0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006840000413d000000000504004b0000069b0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000006b20000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006aa0000413d000000000504004b000006c10000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000006d80000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006d00000413d000000000504004b000006e70000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000005c801000041000000800010043f0000000001000411000400000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000007100000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000007080000413d000000000705004b0000071f0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000007930000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d00000004010000290000000902000029000000080300002900000006040000290000000705000029169a09210000040f0000000002010019000800000002001d0000000901000029000000050300002900000006040000290000000705000029169a0eda0000040f0000000801000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000400100043d0000006402100039000005e10300004100000000003204350000004402100039000005e2030000410000000000320435000000240210003900000038030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000000400100043d0000008402100039000005dd0300004100000000003204350000006402100039000005de0300004100000000003204350000004402100039000005df030000410000000000320435000000240210003900000045030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005ce011001c70000169c00010430000000400200043d0000001f0430018f00000005033002720000077a0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000007720000413d000000000504004b000007890000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000007a00000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000007980000413d000000000504004b000007af0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000c002100039000000400020043f00000005020000290000000000020435000000a001100039000300000001001d0000000000010435000000090100002900000024011000390000000301100367000000000101043b000400000001001d000005bd0110009c0000048b0000213d00000004010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b00000005020000290000000002020433000000010320008c000007e80000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000003020000290000000002020433000000010320008c0000089e0000a13d000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000000400100043d0000008402100039000005cb0300004100000000003204350000006402100039000005cc0300004100000000003204350000004402100039000005cd030000410000000000320435000000240210003900000043030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005ce011001c70000169c00010430000000400200043d0000001f0340018f0000000504400272000008130000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000080b0000413d000000000503004b000008220000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400400043d000800000004001d000005e8010000410000000000140435000000040140003900000009020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a168a0000040f000000080a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000008520000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000084a0000413d00000000090a0019000000000705004b000008620000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000008780000613d0000001f01400039000000600210018f0000000001920019000000000221004b00000000020000190000000102004039000005bc0410009c000004c00000213d0000000102200190000004c00000c13d000000400010043f000000200130008c0000048b0000413d0000000001090433000000000101004b000000000100001900000001010060390000041f0000013d000000400200043d0000001f0430018f0000000503300272000008850000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000087d0000413d000000000504004b000008940000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b000000090100002900000084021000390000000301000367000000000221034f000000000202043b0000000803000029000000230330008a000005bb04000041000000000532004b00000000050000190000000005048019000005bb03300197000005bb06200197000000000736004b0000000004008019000000000336013f000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d000000090300002900000000023200190000000403200039000000000131034f000000000101043b000800000001001d000005bc0110009c0000048b0000213d000000080100002900000000011000790000002404200039000005bb02000041000000000314004b00000000030000190000000003022019000005bb01100197000500000004001d000005bb04400197000000000514004b0000000002008019000000000114013f000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000009010000290000004401100039169a0a280000040f000000000601001900000007010000290000000402000029000000060300002900000005040000290000000805000029169a13880000040f00000000010000190000169b0001042e000000400200043d0000001f0340018f0000000504400272000008ed0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000008e50000413d000000000503004b000008fc0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000001f03100039000005bb04000041000000000523004b00000000050000190000000005044019000005bb06200197000005bb03300197000000000763004b000000000400a019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b0000091f0000613d0000000303100367000000000303043b000005bc0430009c0000091f0000213d00000020011000390000000004310019000000000224004b0000091f0000213d0000000002030019000000000001042d00000000010000190000169c00010430000300000000000200000000070004140000000008450019000000000558004b00000000050000190000000105004039000005a8044001970000000105500190000009af0000c13d0000000006000031000000000586004b000009af0000413d000200000002001d000300000001001d000100000003001d0000000304400367000005ef0570009c000009bd0000813d0000000002860049000005a80220019700000000022403df000000c001700210000005f001100197000005f1011001c700000000011203af0000801002000039169a168f0000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000009cf0000613d0000003f01300039000005f202100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000005bc0520009c000009b50000213d0000000104400190000009b50000c13d000000400020043f00000000023104360000001f0430003900000005044002720000095e0000613d00000000050000310000000305500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000009560000413d000000000400004b000009600000613d0000000104000031000000000443004b000009bb0000213d00000004050003670000001f0430018f0000000503300272000009700000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000009680000413d000000000604004b0000097f0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000003040000290000000205000029000009ea0000c13d0000000002020433000000400100043d000000a003100039000000000023043500000080021000390000000000520435000000600210003900000001030000290000000000320435000005bd02400197000000400310003900000000002304350000002002100039000005f4030000410000000000320435000000a0030000390000000000310435000005f50310009c000009b50000213d000000c003100039000000400030043f000005a803000041000005a80420009c000000000203801900000040022002100000000001010433000005a80410009c00000000010380190000006001100210000000000121019f0000000002000414000005a80420009c0000000002038019000000c002200210000000000112019f000005da011001c70000801002000039169a168a0000040f0000000102200190000009bb0000613d000000000101043b000005bd01100197000000000001042d000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c0001043000000000010000190000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000009da0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000009d30000413d000000000504004b000009e80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400100043d0000004402100039000005f303000041000000000032043500000024021000390000001f030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000400300043d00000060043000390000000000240435000005bd011001970000004002300039000000000012043500000060010000390000000001130436000005f7020000410000000000210435000005f80230009c00000a200000813d0000008002300039000000400020043f000005a802000041000005a80410009c000000000102801900000040011002100000000003030433000005a80430009c00000000030280190000006003300210000000000113019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000112019f000005da011001c70000801002000039169a168a0000040f000000010220019000000a260000613d000000000101043b000005bd01100197000000000001042d000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c0001043000000000010000190000169c000104300000000301100367000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b00000a300000c13d000000000001042d00000000010000190000169c000104300008000000000002000700000001001d000000000101004b00000d250000613d000300000004001d000400000003001d000000400400043d000200000002001d000005bd022001970000ffff0120008c00000d370000a13d000005f90100004100000000001404350000000401400039000800000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039000600000002001d000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000a630000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000a5b0000413d000000000705004b00000a720000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000d4b0000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005bc0240009c00000d130000213d000000010110019000000d130000c13d000000400040043f0000001f0130008c00000d110000a13d00000000010a0433000000000101004b000000040140003900000d710000c13d000005fb02000041000000000024043500000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800302000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000aab0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000aa30000413d000000000705004b00000aba0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000d810000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c00000d130000213d000000400040043f000000200130008c00000d110000413d00000000010a0433000000000101004b00000da70000c13d000005c1010000410000000000140435000000040140003900000007020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800402000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000aee0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000ae60000413d000000000705004b00000afd0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000db80000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c00000d130000213d000000400040043f000000200130008c00000d110000413d00000000010a0433000000000101004b00000dde0000613d000005ca0140009c00000d130000213d0000004001400039000000400010043f0000000001040436000100000001001d000000000001043500000008010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039000500000004001d169a168a0000040f0000000503000029000000010220019000000d110000613d000000000101043b0000000002030433000000020320008c00000d190000813d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000001020000290000000002020433000000010320008c00000d190000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b0000000001000416000005d5020000410000000000200439000000000101004b00000ba70000613d0000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000500000002001d169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000080200002900000000002104350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000100000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e680000613d0000000102000029000005bc0120009c00000d130000213d000000400020043f000005d501000041000000000010043900000005020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e8e0000613d0000000502000029000005bc0120009c00000d130000213d000000400020043f00000000010004160000060101100197000000000001041700000bd80000013d00000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000eb40000613d0000000502000029000005bc0120009c00000d130000213d000000400020043f0000000001000414000000040400002900000003030000290000000002430019000000000332004b00000000030000190000000103004039000005a804400197000000010330019000000d1f0000c13d0000000003000031000000000523004b00000d1f0000413d0000000304400367000005ef0510009c00000def0000813d00000000050004110000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af000300000005001d000005bd0d5001970000000202000029169a16940000040f00000000030100190000006003300270000105a80030019d000005a8033001970004000000010355000000010220019000000e010000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c00000d130000213d000000010220019000000d130000c13d000000400010043f000500000005001d00000000073504360000001f01300039000000050110027200000c170000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b00000c0f0000413d000000000100004b00000c190000613d0000000101000031000000000113004b00000d110000213d00000004020003670000001f0130018f000000050330027200000c290000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b00000c210000413d000000000401004b00000c380000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d00000603010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e1c0000613d0000000609000029000005bc0190009c000000050100002900000d130000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b000000040400002900000d110000c13d0000000002040433000005bc0320009c00000d110000213d000000000141001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b00000d110000c13d0000000023020434000005bc0430009c00000d130000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005bc0540009c00000d130000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b00000d110000213d000000000432004b00000cb70000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b00000d110000c13d000000400500043d000005ca0650009c00000d130000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b00000c9c0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f0000000606000029000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000080200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b00000ce30000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b00000cd90000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000600000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e420000613d0000000602000029000005bc0120009c000000000102001900000d130000213d000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000030500002900000007060000290000000807000029169a16850000040f000000010120019000000d110000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400100043d00000044021000390000060703000041000000000032043500000024021000390000001b030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000640140003900000605020000410000000000210435000000440140003900000606020000410000000000210435000000240140003900000028020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000d580000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000d500000413d000000000504004b00000d670000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004402400039000005fa030000410000000000320435000000240240003900000015030000390000000000320435000005be02000041000000000024043500000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000d8e0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000d860000413d000000000504004b00000d9d0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005fc020000410000000000210435000000240140003900000013020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000dc50000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000dbd0000413d000000000504004b00000dd40000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005c502000041000000000021043500000024014000390000001a020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f000000050230027200000e0c0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000e050000413d000000000504004b00000e1a0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f000000050440027200000e290000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e210000413d000000000503004b00000e380000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e4f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e470000413d000000000503004b00000e5e0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e750000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e6d0000413d000000000503004b00000e840000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e9b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e930000413d000000000503004b00000eaa0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000ec10000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000eb90000413d000000000503004b00000ed00000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300008000000000002000300000005001d000700000001001d000000000101004b000011d30000613d000400000003001d000200000004001d000000400400043d000100000002001d000005bd022001970000ffff0120008c000011e50000a13d000005f90100004100000000001404350000000401400039000800000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039000600000002001d000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f0c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f040000413d000000000705004b00000f1b0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000011f90000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005bc0240009c000011c10000213d0000000101100190000011c10000c13d000000400040043f0000001f0130008c000011bf0000a13d00000000010a0433000000000101004b0000121f0000c13d000005fb010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800302000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f540000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f4c0000413d000000000705004b00000f630000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000012300000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c000011c10000213d000000400040043f000000200130008c000011bf0000413d00000000010a0433000000000101004b0000000401400039000012560000c13d000005c102000041000000000024043500000007020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800402000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f970000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f8f0000413d000000000705004b00000fa60000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000012660000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c000011c10000213d000000400040043f000000200130008c000011bf0000413d00000000010a0433000000000101004b0000128c0000613d000005ca0140009c000011c10000213d0000004001400039000000400010043f000000000304043600000000000304350000000402000029000000020120008c000011c70000813d0000000000240435000400000003001d000000000003043500000008010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039000500000004001d169a168a0000040f00000005030000290000000102200190000011bf0000613d000000000101043b0000000002030433000000010320008c0000000405000029000011c70000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000002050433000000010320008c000011c70000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b0000000001000416000005d5020000410000000000200439000000000101004b000010550000613d0000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000500000002001d169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000080200002900000000002104350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000400000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000013160000613d0000000402000029000005bc0120009c000011c10000213d000000400020043f000005d501000041000000000010043900000005020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a804300197000400000001035500000001022001900000133c0000613d0000000502000029000005bc0120009c000011c10000213d000000400020043f000000000100041600000601011001970000000000010417000010860000013d00000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000013620000613d0000000502000029000005bc0120009c000011c10000213d000000400020043f0000000001000414000000020400002900000003030000290000000002430019000000000332004b00000000030000190000000103004039000005a8044001970000000103300190000011cd0000c13d0000000003000031000000000523004b000011cd0000413d0000000304400367000005ef0510009c0000129d0000813d00000000050004110000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af000300000005001d000005bd0d5001970000000102000029169a16940000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000012af0000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c000011c10000213d0000000102200190000011c10000c13d000000400010043f000500000005001d00000000073504360000001f013000390000000501100272000010c50000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b000010bd0000413d000000000100004b000010c70000613d0000000101000031000000000113004b000011bf0000213d00000004020003670000001f0130018f0000000503300272000010d70000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b000010cf0000413d000000000401004b000010e60000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d00000603010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000012ca0000613d0000000609000029000005bc0190009c0000000501000029000011c10000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b0000000404000029000011bf0000c13d0000000002040433000005bc0320009c000011bf0000213d000000000141001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b000011bf0000c13d0000000023020434000005bc0430009c000011c10000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005bc0540009c000011c10000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000011bf0000213d000000000432004b000011650000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b000011bf0000c13d000000400500043d000005ca0650009c000011c10000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b0000114a0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f00000006060000290000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000080200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b000011910000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000011870000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000600000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000012f00000613d0000000602000029000005bc0120009c0000000001020019000011c10000213d000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000030500002900000007060000290000000807000029169a16850000040f0000000101200190000011bf0000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400100043d00000044021000390000060703000041000000000032043500000024021000390000001b030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000640140003900000605020000410000000000210435000000440140003900000606020000410000000000210435000000240140003900000028020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0430018f0000000503300272000012060000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000011fe0000413d000000000504004b000012150000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005fa020000410000000000210435000000240140003900000015020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f00000005033002720000123d0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000012350000413d000000000504004b0000124c0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004402400039000005fc030000410000000000320435000000240240003900000013030000390000000000320435000005be02000041000000000024043500000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f0000000503300272000012730000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000126b0000413d000000000504004b000012820000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005c502000041000000000021043500000024014000390000001a020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000012ba0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000012b30000413d000000000504004b000012c80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f0000000504400272000012d70000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000012cf0000413d000000000503004b000012e60000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000012fd0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000012f50000413d000000000503004b0000130c0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000013230000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000131b0000413d000000000503004b000013320000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000013490000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000013410000413d000000000503004b000013580000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f00000005044002720000136f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000013670000413d000000000503004b0000137e0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300009000000000002000500000005001d000700000003001d000800000002001d000600000001001d0000000002000416000000000106004b0000152f0000613d000300000004001d000400000002001d000000000102004b000013cb0000613d000005d50100004100000000001004390000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000000801000029000005bd01100197000000240240003900000000001204350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000900000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000016240000613d0000000902000029000005bc0120009c000015790000213d000000400020043f000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d0000000701000029000005ff0110019700000600011001c7000000400400043d00000024024000390000000000120435000005fe0100004100000000001404350000000801000029000005bd021001970000000401400039000900000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039000100000002001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015850000613d0000000202000029000005bc0120009c0000000401000029000015790000213d000000400020043f000000000101004b000014070000613d0000000001000416000006010110019700000000000104170000000001000414000000030400002900000005030000290000000002430019000000000332004b00000000030000190000000103004039000005a80440019700000001033001900000157f0000c13d0000000003000031000000000523004b0000157f0000413d0000000304400367000005ef0510009c000015ab0000813d0000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af0000000602000029000005bd0d200197000000080200002900080000000d001d169a16940000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000015bd0000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c000015790000213d0000000102200190000015790000c13d000000400010043f000500000005001d00000000073504360000001f013000390000000501100272000014460000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b0000143e0000413d000000000100004b000014480000613d0000000101000031000000000113004b000015770000213d00000004020003670000001f0130018f0000000503300272000014580000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b000014500000413d000000000401004b000014670000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000001020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d00000603010000410000000000140435000000040140003900000009020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015d80000613d0000000609000029000005bc0190009c0000000501000029000015790000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b0000000404000029000015770000c13d0000000002040433000005bc0320009c000015770000213d000000000114001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b000015770000c13d0000000023020434000005bc0430009c000015790000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004490019000005bc0540009c000015790000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000015770000213d000000000432004b000014e60000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b000015770000c13d000000400500043d000005ca0650009c000015790000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b000014cb0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f00000006060000290000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b000015120000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000015080000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000500000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015fe0000613d0000000502000029000005bc0120009c000015660000a13d000015790000013d000000000102004b0000164a0000c13d000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d000000240140003900000007020000290000000000210435000005e40100004100000000001404350000000801000029000005bd021001970000000401400039000900000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a804300197000400000001035500000001022001900000165f0000613d0000000502000029000005bc0120009c000015790000213d0000000601000029000005bd01100197000800000001001d000000400020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000080500002900000007060000290000000907000029169a16850000040f0000000101200190000015770000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400200043d0000001f0340018f0000000504400272000015920000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000158a0000413d000000000503004b000015a10000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000015c80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000015c10000413d000000000504004b000015d60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f0000000504400272000015e50000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000015dd0000413d000000000503004b000015f40000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f00000005044002720000160b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016030000413d000000000503004b0000161a0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000016310000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016290000413d000000000503004b000016400000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400100043d0000006402100039000005e10300004100000000003204350000004402100039000005e2030000410000000000320435000000240210003900000038030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0340018f00000005044002720000166c0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016640000413d000000000503004b0000167b0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c0001043000001688002104210000000102000039000000000001042d0000000002000019000000000001042d0000168d002104230000000102000039000000000001042d0000000002000019000000000001042d00001692002104230000000102000039000000000001042d0000000002000019000000000001042d000000000f0d001900001698002104290000000102000039000000000001042d0000000002000019000000000001042d0000169a000004320000169b0001042e0000169c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000009c4d535a00000000000000000000000000000000000000000000000000000000e9f18c1600000000000000000000000000000000000000000000000000000000ecf95b8900000000000000000000000000000000000000000000000000000000ecf95b8a00000000000000000000000000000000000000000000000000000000f3385fb600000000000000000000000000000000000000000000000000000000e9f18c1700000000000000000000000000000000000000000000000000000000ec8067c7000000000000000000000000000000000000000000000000000000009c4d535b00000000000000000000000000000000000000000000000000000000bb0fd61000000000000000000000000000000000000000000000000000000000da37f07f000000000000000000000000000000000000000000000000000000005d3826ff000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000007b510fe80000000000000000000000000000000000000000000000000000000084da1fb400000000000000000000000000000000000000000000000000000000187598a5000000000000000000000000000000000000000000000000000000003cda335100000000000000000000000000000000000000000000000000000000571809818000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792073656c66000000000000000000000000000000000000000000000000000000000000640000008000000000000000004c6314f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff54686520636f64652068617368206973206e6f74206b6e6f776e00000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000010000306395c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf696e6700000000000000000000000000000000000000000000000000000000006f6d2073657175656e7469616c20746f20617262697472617279206f726465724974206973206f6e6c7920706f737369626c6520746f206368616e676520667200000000000000000000000000000000000000a40000000000000000000000000200000000000000000000000000000000000020000000000000000000000000c7544194dab38b1652f35439b9b4806d8b71e113f2cf5c1351cb2ecf7c83959a43616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f594552206f7220434f4d504c45585f55504752414445525f434f4e54524143540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a40000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000f3385fb60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffefb000000000000000000000000000000000000010400000000000000000000000002000000000000000000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006d656e74730000000000000000000000000000000000000000000000000000002074686520636f6d62696e6564206076616c75656073206f66206465706c6f796076616c7565602070726f7669646564206973206e6f7420657175616c20746f496e617070726f7072696174652063616c6c65720000000000000000000000006e6f742063616c6c2074686520636f6e7374727563746f7200000000000000005468652076616c7565206d757374206265207a65726f20696620776520646f2000000000000000000000000000000000000000840000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5000000000000000000000000ffffffffffffffffffffffffffffffffffff00004de2e46800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000400000000000000000000000003fb6f4f15ddd4a75588ca934894ad2cdcab25a5012e2515e1783433d0128611a666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c200000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe06b656363616b3235362072657475726e656420696e76616c69642064617461002020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494000000000000000000000000000000000000000000000000ffffffffffffff3f4f766572666c6f7700000000000000000000000000000000000000000000000063bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23000000000000000000000000000000000000000000000000ffffffffffffff80e03fe17700000000000000000000000000000000000000000000000000000000436f64652068617368206973206e6f6e2d7a65726f00000000000000000000005aa9b6b5000000000000000000000000000000000000000000000000000000004163636f756e74206973206f6363757069656400000000000000000000000000579952fc000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0001000100000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000656c20737061636500000000000000000000000000000000000000000000000043616e206e6f74206465706c6f7920636f6e74726163747320696e206b65726e42797465636f6465486173682063616e6e6f74206265207a65726f000000000039187a54c09fddd78293acb1d6fafb891fffc8438366fb93b8fe735877e8b717", - "deployedBytecode": "0x0005000000000002000900000000000200000000030100190000006003300270000005a80430019700040000004103550003000000010355000005a80030019d000200000002001f000100000000001f0000008001000039000000400010043f00000001012001900000009b0000c13d0000000002000031000000040120008c0000048b0000413d0000000301000367000000000301043b000000e003300270000005aa0430009c000000a30000a13d000005ab0430009c000000dd0000a13d000005ac0430009c000001750000213d000005af0430009c000001f20000613d000005b00130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000000010110008c0000048b0000213d0000000002000411000000020100003900000002011001880000003b0000c13d0000ffff0120008c000000c80000213d000800000002001d0000000000200435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400400043d000005ca0240009c000004c00000213d000000000101043b0000004002400039000000400020043f000000000101041a000000ff0210018f000000010320008c000007e80000213d00000000032404360000000801100270000000ff0110018f000000010210008c000007e80000213d000600000004001d000700000003001d00000000001304350000000902000029000000010220008c000007ee0000c13d000000000101004b000007ee0000c13d00000001020000390000000701000029000900000002001d00000000002104350000000801000029000005bd011001970000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b00000006020000290000000002020433000000010320008c0000000705000029000007e80000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000002050433000000010320008c000007e80000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b000000400100043d00000009020000290000000000210435000005a8020000410000000003000414000005a80430009c0000000003028019000005a80410009c00000000010280190000004001100210000000c002300210000000000112019f000005cf011001c70000800d020000390000000203000039000005d0040000410000000805000029169a16850000040f0000000101200190000004ed0000c13d0000048b0000013d0000000001000416000000000101004b0000048b0000c13d000000200100003900000100001004430000012000000443000005a9010000410000169b0001042e000005b40430009c0000013d0000213d000005b80430009c000003350000613d000005b90430009c000003570000613d000005ba0130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000000010110008c0000048b0000213d000000000200041100000002010000390000000201100188000004c60000c13d000005c70120009c000004c60000413d000000400100043d0000006402100039000005ec0300004100000000003204350000004402100039000005ed030000410000000000320435000000240210003900000024030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000005b10430009c000002270000613d000005b20430009c000003e10000613d000005b30330009c0000048b0000c13d000000040220008a000005bb03000041000000200420008c00000000040000190000000004034019000005bb02200197000000000502004b000000000300a019000005bb0220009c00000000020400190000000002036019000000000202004b0000048b0000c13d0000000401100370000000000201043b0000000001000411000080070110008c0000048d0000c13d000005c101000041000000800010043f000900000002001d000000840020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800402000039169a168a0000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001130000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000010b0000413d000000000705004b000001220000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000004970000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200330008c0000048b0000413d000000800300043d000000000303004b0000052d0000c13d000005be03000041000000000031043500000084032001bf00000020040000390000000000430435000000c403200039000005c5040000410000000000430435000000a4022000390000001a0300003900000000003204350000004001100210000005c6011001c70000169c00010430000005b50430009c000004280000613d000005b60130009c000004750000613d000005b70130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d0000000002000031000000040120008a000005bb03000041000000800410008c00000000040000190000000004034019000005bb01100197000000000501004b000000000300a019000005bb0110009c00000000010400190000000001036019000000000101004b0000048b0000c13d00000003010003670000000403100370000000000303043b000900000003001d000005bd0330009c0000048b0000213d0000006401100370000000000101043b000005bc0310009c0000048b0000213d0000000401100039169a09060000040f00000003040003670000004403400370000000000303043b0000002404400370000000000404043b000000000501001900000000060200190000000901000029000000000204001900000000040500190000000005060019169a09210000040f000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000005ad0430009c000002ab0000613d000005ae0330009c0000048b0000c13d000000040320008a000005bb04000041000000400530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000403100370000000000303043b000900000003001d000005bc0330009c0000048b0000213d00000009030000290000000002320049000800000002001d000000040220008a000005bb03000041000000a00420008c00000000040000190000000004034019000005bb02200197000000000502004b000000000300a019000005bb0220009c00000000020400190000000002036019000000000202004b0000048b0000c13d0000002402100370000000000202043b000700000002001d000005bd0220009c0000048b0000213d00000000020004100000000003000411000000000223004b000005720000c13d00000009020000290000000402200039000000000121034f000000000201043b000005c101000041000000800010043f000600000002001d000000840020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800402000039169a168a0000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001c60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001be0000413d000000000705004b000001d50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000400000001035500000001022001900000067f0000613d0000001f01400039000000600110018f00000080021001bf000500000002001d000000400020043f000000200230008c0000048b0000413d000000800200043d000000000202004b000007bf0000c13d000005be020000410000000504000029000000000024043500000084021001bf00000020030000390000000000320435000000c402100039000005c5030000410000000000320435000000a4011000390000001a0200003900000000002104350000004001400210000005c6011001c70000169c00010430000000040320008a000005bb04000041000000200530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000e04043b000005bc04e0009c0000048b0000213d000000240f3000390000000504e002100000000004f40019000000000424004b0000048b0000213d000000090500008a0000000004000411000000000554016f000080070550008c0000051f0000c13d00000000050e004b0000057c0000c13d0000000001000416000000000101004b000004ed0000613d000007550000013d000000040320008a000005bb04000041000000600530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000141034f000000000101043b000800000001001d000005bc0110009c0000048b0000213d00000024033000390000000801000029000700000003001d0000000001310019000000000121004b0000048b0000213d0000000201000039000000020110018800000001011002700000025e0000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000600000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000027f0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002770000413d000000000705004b0000028e0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000006a50000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d000000800200043d0000000601000029169a09fc0000040f0000000002010019000600000002001d000000090100002900000007030000290000000804000029169a0a320000040f0000000601000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000800530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000404043b000800000004001d000005bc0440009c0000048b0000213d00000024043000390000000803000029000700000004001d0000000003430019000000000223004b0000048b0000213d0000006401100370000000000101043b000600000001001d000000010110008c0000048b0000213d000000020100003900000002011001880000000101100270000002e70000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000500000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003080000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003000000413d000000000705004b000003170000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000400000001035500000001022001900000076d0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d000000800200043d0000000501000029169a09fc0000040f0000000002010019000500000002001d0000000901000029000000060300002900000007040000290000000805000029169a0eda0000040f0000000501000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000400310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000003020003670000000401200370000000000101043b000005bd0310009c0000048b0000213d0000002402200370000000000202043b169a09fc0000040f000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000600530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000000403100370000000000303043b000800000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000141034f000000000101043b000700000001001d000005bc0110009c0000048b0000213d00000024033000390000000701000029000600000003001d0000000001310019000000000121004b0000048b0000213d000000020100003900000002011001880000000101100270000003910000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000500000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b20000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003aa0000413d000000000705004b000003c10000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000006cb0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d00000005010000290000000902000029000000080300002900000006040000290000000705000029169a09210000040f0000000002010019000800000002001d000000090100002900000006030000290000000704000029169a0a320000040f0000000801000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000005bd0110009c0000048b0000213d00000009010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400200043d000005ca0320009c000004c00000213d000000000101043b0000004003200039000000400030043f000000000101041a000000ff0310018f000000010430008c000007e80000213d00000000033204360000000801100270000000ff0110018f000000010410008c000007e80000213d00000000001304350000000002020433000000010120008c000007e80000213d0000000101000039000000000202004b000004200000c13d0000000901000029000005e70110019800000000010000190000082c0000c13d000000010110018f000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000800530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000000403100370000000000303043b000800000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000404043b000700000004001d000005bc0440009c0000048b0000213d00000024043000390000000703000029000600000004001d0000000003430019000000000223004b0000048b0000213d0000006401100370000000000101043b000500000001001d000000010110008c0000048b0000213d000000020100003900000002011001880000000101100270000004670000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000006f10000c13d000005be01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f000005ed01000041000000c40010043f000005ec01000041000000e40010043f000005ee010000410000169c000104300000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000005bd0210009c000004bd0000a13d00000000010000190000169c00010430000005be01000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f000005e001000041000000c40010043f000005c0010000410000169c00010430000000400200043d0000001f0430018f0000000503300272000004a40000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000049c0000413d000000000504004b000004b30000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d000005e90320009c000004ef0000413d000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000800000002001d0000000000200435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000903000029000000000232019f000000000021041b000000400100043d0000000000310435000005a8020000410000000003000414000005a80430009c0000000003028019000005a80410009c00000000010280190000004001100210000000c002300210000000000112019f000005cf011001c70000800d020000390000000203000039000005eb040000410000000805000029169a16850000040f00000001012001900000048b0000613d00000000010000190000169b0001042e0000004003200039000000400030043f0000002003200039000000000003043500000000000204350000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400200043d000005ca0320009c000004c00000213d000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f000000020410008c000007e80000813d00000000011204360000000803300270000000ff0330018f000000010430008c000007e80000213d00000000003104350000000003020433000000010230008c000007e80000213d000000400200043d00000000033204360000000001010433000000010410008c000007e80000213d0000000000130435000005a801000041000005a80320009c00000000010240190000004001100210000005ea011001c70000169b0001042e000005be01000041000000800010043f0000002001000039000000840010043f0000004101000039000000a40010043f000005d101000041000000c40010043f000005d201000041000000e40010043f000005d301000041000001040010043f000005d4010000410000169c000104300000000001000416000000000101004b000007400000c13d000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f00000001022001900000048b0000613d000000000101043b000000000101004b0000048b0000613d000000400400043d000000240140003900000009020000290000000000210435000005e4010000410000000000140435000000040140003900008010020000390000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000800000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000008060000613d0000000801000029000005bc0110009c000004c00000213d0000000801000029000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000080070500003900008010070000390000000906000029169a16850000040f0000000101200190000004ed0000c13d0000048b0000013d000005be01000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f000005bf01000041000000c40010043f000005c0010000410000169c0001043000000000053200490000008402300039000000c30550008a0000000007000019000000000600001900000005087002100000000008f80019000000000881034f000000000808043b000005bb09000041000000000a58004b000000000a000019000000000a098019000005bb0b500197000005bb0c800197000000000dbc004b0000000009008019000000000bbc013f000005bb0bb0009c00000000090ac019000000000909004b0000048b0000c13d0000000008820019000000000881034f000000000808043b0000000006680019000000000886004b000000000800001900000001080040390000000108800190000007b90000c13d00000001077000390000000008e7004b000005810000413d0000000001000416000000000161004b000007550000c13d000000c30100008a0000000001310049000200000001001d000005bd01400197000100000001001d000000000900001900050000000e001d00040000000f001d00000005019002100000000002f100190000000301000367000000000221034f000000000202043b00000002030000290000000003300031000005bb04000041000000000532004b00000000050000190000000005048019000005bb03300197000005bb06200197000000000736004b0000000004008019000000000336013f000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000002f20019000800000002001d0000006002200039000700000002001d000000000121034f000000000101043b000300000001001d000005d50100004100000000001004390000000001000410000600000001001d0000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000900000009001d169a168a0000040f000000080b0000290000000909000029000000040f000029000000050e00002900000001022001900000048b0000613d000000000101043b000000000101004b0000048b0000613d000000400a00043d000005d70100004100000000001a04350000000401a00039000000400200003900000000002104350000000301b00367000000000101043b0000004402a0003900000000001204350000002001b000390000000301100367000000000101043b000005bd0210009c0000048b0000213d0000006402a0003900000000001204350000004001b000390000000301100367000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b0000048b0000c13d0000008402a00039000000000012043500000007010000290000000301100367000000000101043b000000a402a00039000000000012043500000000020000310000000001b200490000008003b000390000001f0410008a0000000301000367000000000331034f000000000303043b000005bb05000041000000000643004b00000000060000190000000006058019000005bb04400197000005bb07300197000000000847004b0000000005008019000000000447013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000003b30019000000000131034f000000000101043b000005bc0410009c0000048b0000213d00000020033000390000000002120049000005bb04000041000000000523004b00000000050000190000000005042019000005bb02200197000005bb06300197000000000726004b0000000004008019000000000226013f000005bb0220009c00000000020500190000000002046019000000000202004b0000048b0000c13d000000c402a00039000000a0040000390000000000420435000000e402a0003900000000001204350000010402a0003900000003033003670000000504100272000006380000613d000000000500001900000005065002100000000007620019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000006300000413d0000001f05100190000006470000613d0000000504400210000000000343034f00000000044200190000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000340435000000000221001900000000000204350000002402a000390000000103000029000000000032043500000000020004140000000604000029000000040340008c000006780000613d0000001f01100039000000200300008a000000000131016f000005d803000041000005d80510009c0000000001038019000005a803000041000005a805a0009c00080000000a001d000000000503001900000000050a401900000040055002100000006001100210000000000151019f000005a80520009c0000000002038019000000c002200210000000000121019f000005d9011000410000000303000029000000000203004b0000066b0000613d000005da011001c700008009020000390000000005000019169a16850000040f0000066d0000013d0000000002040019169a16850000040f000400000001035500000000030100190000006003300270000105a80030019d000005a8043001970000000102200190000000050e000029000000040f0000290000000909000029000000080a000029000008e00000613d000005bc01a0009c000004c00000213d0000004000a0043f00000001099000390000000001e9004b000005a90000413d000004ed0000013d000000400200043d0000001f0430018f00000005033002720000068c0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006840000413d000000000504004b0000069b0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000006b20000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006aa0000413d000000000504004b000006c10000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000006d80000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006d00000413d000000000504004b000006e70000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000005c801000041000000800010043f0000000001000411000400000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000007100000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000007080000413d000000000705004b0000071f0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000007930000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d00000004010000290000000902000029000000080300002900000006040000290000000705000029169a09210000040f0000000002010019000800000002001d0000000901000029000000050300002900000006040000290000000705000029169a0eda0000040f0000000801000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000400100043d0000006402100039000005e10300004100000000003204350000004402100039000005e2030000410000000000320435000000240210003900000038030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000000400100043d0000008402100039000005dd0300004100000000003204350000006402100039000005de0300004100000000003204350000004402100039000005df030000410000000000320435000000240210003900000045030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005ce011001c70000169c00010430000000400200043d0000001f0430018f00000005033002720000077a0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000007720000413d000000000504004b000007890000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000007a00000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000007980000413d000000000504004b000007af0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000c002100039000000400020043f00000005020000290000000000020435000000a001100039000300000001001d0000000000010435000000090100002900000024011000390000000301100367000000000101043b000400000001001d000005bd0110009c0000048b0000213d00000004010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b00000005020000290000000002020433000000010320008c000007e80000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000003020000290000000002020433000000010320008c0000089e0000a13d000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000000400100043d0000008402100039000005cb0300004100000000003204350000006402100039000005cc0300004100000000003204350000004402100039000005cd030000410000000000320435000000240210003900000043030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005ce011001c70000169c00010430000000400200043d0000001f0340018f0000000504400272000008130000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000080b0000413d000000000503004b000008220000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400400043d000800000004001d000005e8010000410000000000140435000000040140003900000009020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a168a0000040f000000080a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000008520000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000084a0000413d00000000090a0019000000000705004b000008620000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000008780000613d0000001f01400039000000600210018f0000000001920019000000000221004b00000000020000190000000102004039000005bc0410009c000004c00000213d0000000102200190000004c00000c13d000000400010043f000000200130008c0000048b0000413d0000000001090433000000000101004b000000000100001900000001010060390000041f0000013d000000400200043d0000001f0430018f0000000503300272000008850000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000087d0000413d000000000504004b000008940000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b000000090100002900000084021000390000000301000367000000000221034f000000000202043b0000000803000029000000230330008a000005bb04000041000000000532004b00000000050000190000000005048019000005bb03300197000005bb06200197000000000736004b0000000004008019000000000336013f000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d000000090300002900000000023200190000000403200039000000000131034f000000000101043b000800000001001d000005bc0110009c0000048b0000213d000000080100002900000000011000790000002404200039000005bb02000041000000000314004b00000000030000190000000003022019000005bb01100197000500000004001d000005bb04400197000000000514004b0000000002008019000000000114013f000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000009010000290000004401100039169a0a280000040f000000000601001900000007010000290000000402000029000000060300002900000005040000290000000805000029169a13880000040f00000000010000190000169b0001042e000000400200043d0000001f0340018f0000000504400272000008ed0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000008e50000413d000000000503004b000008fc0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000001f03100039000005bb04000041000000000523004b00000000050000190000000005044019000005bb06200197000005bb03300197000000000763004b000000000400a019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b0000091f0000613d0000000303100367000000000303043b000005bc0430009c0000091f0000213d00000020011000390000000004310019000000000224004b0000091f0000213d0000000002030019000000000001042d00000000010000190000169c00010430000300000000000200000000070004140000000008450019000000000558004b00000000050000190000000105004039000005a8044001970000000105500190000009af0000c13d0000000006000031000000000586004b000009af0000413d000200000002001d000300000001001d000100000003001d0000000304400367000005ef0570009c000009bd0000813d0000000002860049000005a80220019700000000022403df000000c001700210000005f001100197000005f1011001c700000000011203af0000801002000039169a168f0000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000009cf0000613d0000003f01300039000005f202100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000005bc0520009c000009b50000213d0000000104400190000009b50000c13d000000400020043f00000000023104360000001f0430003900000005044002720000095e0000613d00000000050000310000000305500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000009560000413d000000000400004b000009600000613d0000000104000031000000000443004b000009bb0000213d00000004050003670000001f0430018f0000000503300272000009700000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000009680000413d000000000604004b0000097f0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000003040000290000000205000029000009ea0000c13d0000000002020433000000400100043d000000a003100039000000000023043500000080021000390000000000520435000000600210003900000001030000290000000000320435000005bd02400197000000400310003900000000002304350000002002100039000005f4030000410000000000320435000000a0030000390000000000310435000005f50310009c000009b50000213d000000c003100039000000400030043f000005a803000041000005a80420009c000000000203801900000040022002100000000001010433000005a80410009c00000000010380190000006001100210000000000121019f0000000002000414000005a80420009c0000000002038019000000c002200210000000000112019f000005da011001c70000801002000039169a168a0000040f0000000102200190000009bb0000613d000000000101043b000005bd01100197000000000001042d000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c0001043000000000010000190000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000009da0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000009d30000413d000000000504004b000009e80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400100043d0000004402100039000005f303000041000000000032043500000024021000390000001f030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000400300043d00000060043000390000000000240435000005bd011001970000004002300039000000000012043500000060010000390000000001130436000005f7020000410000000000210435000005f80230009c00000a200000813d0000008002300039000000400020043f000005a802000041000005a80410009c000000000102801900000040011002100000000003030433000005a80430009c00000000030280190000006003300210000000000113019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000112019f000005da011001c70000801002000039169a168a0000040f000000010220019000000a260000613d000000000101043b000005bd01100197000000000001042d000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c0001043000000000010000190000169c000104300000000301100367000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b00000a300000c13d000000000001042d00000000010000190000169c000104300008000000000002000700000001001d000000000101004b00000d250000613d000300000004001d000400000003001d000000400400043d000200000002001d000005bd022001970000ffff0120008c00000d370000a13d000005f90100004100000000001404350000000401400039000800000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039000600000002001d000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000a630000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000a5b0000413d000000000705004b00000a720000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000d4b0000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005bc0240009c00000d130000213d000000010110019000000d130000c13d000000400040043f0000001f0130008c00000d110000a13d00000000010a0433000000000101004b000000040140003900000d710000c13d000005fb02000041000000000024043500000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800302000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000aab0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000aa30000413d000000000705004b00000aba0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000d810000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c00000d130000213d000000400040043f000000200130008c00000d110000413d00000000010a0433000000000101004b00000da70000c13d000005c1010000410000000000140435000000040140003900000007020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800402000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000aee0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000ae60000413d000000000705004b00000afd0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000db80000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c00000d130000213d000000400040043f000000200130008c00000d110000413d00000000010a0433000000000101004b00000dde0000613d000005ca0140009c00000d130000213d0000004001400039000000400010043f0000000001040436000100000001001d000000000001043500000008010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039000500000004001d169a168a0000040f0000000503000029000000010220019000000d110000613d000000000101043b0000000002030433000000020320008c00000d190000813d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000001020000290000000002020433000000010320008c00000d190000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b0000000001000416000005d5020000410000000000200439000000000101004b00000ba70000613d0000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000500000002001d169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000080200002900000000002104350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000100000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e680000613d0000000102000029000005bc0120009c00000d130000213d000000400020043f000005d501000041000000000010043900000005020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e8e0000613d0000000502000029000005bc0120009c00000d130000213d000000400020043f00000000010004160000060101100197000000000001041700000bd80000013d00000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000eb40000613d0000000502000029000005bc0120009c00000d130000213d000000400020043f0000000001000414000000040400002900000003030000290000000002430019000000000332004b00000000030000190000000103004039000005a804400197000000010330019000000d1f0000c13d0000000003000031000000000523004b00000d1f0000413d0000000304400367000005ef0510009c00000def0000813d00000000050004110000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af000300000005001d000005bd0d5001970000000202000029169a16940000040f00000000030100190000006003300270000105a80030019d000005a8033001970004000000010355000000010220019000000e010000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c00000d130000213d000000010220019000000d130000c13d000000400010043f000500000005001d00000000073504360000001f01300039000000050110027200000c170000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b00000c0f0000413d000000000100004b00000c190000613d0000000101000031000000000113004b00000d110000213d00000004020003670000001f0130018f000000050330027200000c290000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b00000c210000413d000000000401004b00000c380000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d00000603010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e1c0000613d0000000609000029000005bc0190009c000000050100002900000d130000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b000000040400002900000d110000c13d0000000002040433000005bc0320009c00000d110000213d000000000141001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b00000d110000c13d0000000023020434000005bc0430009c00000d130000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005bc0540009c00000d130000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b00000d110000213d000000000432004b00000cb70000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b00000d110000c13d000000400500043d000005ca0650009c00000d130000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b00000c9c0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f0000000606000029000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000080200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b00000ce30000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b00000cd90000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000600000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e420000613d0000000602000029000005bc0120009c000000000102001900000d130000213d000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000030500002900000007060000290000000807000029169a16850000040f000000010120019000000d110000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400100043d00000044021000390000060703000041000000000032043500000024021000390000001b030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000640140003900000605020000410000000000210435000000440140003900000606020000410000000000210435000000240140003900000028020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000d580000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000d500000413d000000000504004b00000d670000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004402400039000005fa030000410000000000320435000000240240003900000015030000390000000000320435000005be02000041000000000024043500000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000d8e0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000d860000413d000000000504004b00000d9d0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005fc020000410000000000210435000000240140003900000013020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000dc50000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000dbd0000413d000000000504004b00000dd40000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005c502000041000000000021043500000024014000390000001a020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f000000050230027200000e0c0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000e050000413d000000000504004b00000e1a0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f000000050440027200000e290000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e210000413d000000000503004b00000e380000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e4f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e470000413d000000000503004b00000e5e0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e750000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e6d0000413d000000000503004b00000e840000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e9b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e930000413d000000000503004b00000eaa0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000ec10000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000eb90000413d000000000503004b00000ed00000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300008000000000002000300000005001d000700000001001d000000000101004b000011d30000613d000400000003001d000200000004001d000000400400043d000100000002001d000005bd022001970000ffff0120008c000011e50000a13d000005f90100004100000000001404350000000401400039000800000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039000600000002001d000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f0c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f040000413d000000000705004b00000f1b0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000011f90000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005bc0240009c000011c10000213d0000000101100190000011c10000c13d000000400040043f0000001f0130008c000011bf0000a13d00000000010a0433000000000101004b0000121f0000c13d000005fb010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800302000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f540000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f4c0000413d000000000705004b00000f630000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000012300000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c000011c10000213d000000400040043f000000200130008c000011bf0000413d00000000010a0433000000000101004b0000000401400039000012560000c13d000005c102000041000000000024043500000007020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800402000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f970000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f8f0000413d000000000705004b00000fa60000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000012660000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c000011c10000213d000000400040043f000000200130008c000011bf0000413d00000000010a0433000000000101004b0000128c0000613d000005ca0140009c000011c10000213d0000004001400039000000400010043f000000000304043600000000000304350000000402000029000000020120008c000011c70000813d0000000000240435000400000003001d000000000003043500000008010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039000500000004001d169a168a0000040f00000005030000290000000102200190000011bf0000613d000000000101043b0000000002030433000000010320008c0000000405000029000011c70000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000002050433000000010320008c000011c70000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b0000000001000416000005d5020000410000000000200439000000000101004b000010550000613d0000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000500000002001d169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000080200002900000000002104350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000400000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000013160000613d0000000402000029000005bc0120009c000011c10000213d000000400020043f000005d501000041000000000010043900000005020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a804300197000400000001035500000001022001900000133c0000613d0000000502000029000005bc0120009c000011c10000213d000000400020043f000000000100041600000601011001970000000000010417000010860000013d00000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000013620000613d0000000502000029000005bc0120009c000011c10000213d000000400020043f0000000001000414000000020400002900000003030000290000000002430019000000000332004b00000000030000190000000103004039000005a8044001970000000103300190000011cd0000c13d0000000003000031000000000523004b000011cd0000413d0000000304400367000005ef0510009c0000129d0000813d00000000050004110000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af000300000005001d000005bd0d5001970000000102000029169a16940000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000012af0000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c000011c10000213d0000000102200190000011c10000c13d000000400010043f000500000005001d00000000073504360000001f013000390000000501100272000010c50000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b000010bd0000413d000000000100004b000010c70000613d0000000101000031000000000113004b000011bf0000213d00000004020003670000001f0130018f0000000503300272000010d70000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b000010cf0000413d000000000401004b000010e60000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d00000603010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000012ca0000613d0000000609000029000005bc0190009c0000000501000029000011c10000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b0000000404000029000011bf0000c13d0000000002040433000005bc0320009c000011bf0000213d000000000141001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b000011bf0000c13d0000000023020434000005bc0430009c000011c10000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005bc0540009c000011c10000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000011bf0000213d000000000432004b000011650000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b000011bf0000c13d000000400500043d000005ca0650009c000011c10000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b0000114a0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f00000006060000290000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000080200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b000011910000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000011870000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000600000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000012f00000613d0000000602000029000005bc0120009c0000000001020019000011c10000213d000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000030500002900000007060000290000000807000029169a16850000040f0000000101200190000011bf0000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400100043d00000044021000390000060703000041000000000032043500000024021000390000001b030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000640140003900000605020000410000000000210435000000440140003900000606020000410000000000210435000000240140003900000028020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0430018f0000000503300272000012060000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000011fe0000413d000000000504004b000012150000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005fa020000410000000000210435000000240140003900000015020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f00000005033002720000123d0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000012350000413d000000000504004b0000124c0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004402400039000005fc030000410000000000320435000000240240003900000013030000390000000000320435000005be02000041000000000024043500000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f0000000503300272000012730000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000126b0000413d000000000504004b000012820000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005c502000041000000000021043500000024014000390000001a020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000012ba0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000012b30000413d000000000504004b000012c80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f0000000504400272000012d70000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000012cf0000413d000000000503004b000012e60000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000012fd0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000012f50000413d000000000503004b0000130c0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000013230000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000131b0000413d000000000503004b000013320000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000013490000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000013410000413d000000000503004b000013580000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f00000005044002720000136f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000013670000413d000000000503004b0000137e0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300009000000000002000500000005001d000700000003001d000800000002001d000600000001001d0000000002000416000000000106004b0000152f0000613d000300000004001d000400000002001d000000000102004b000013cb0000613d000005d50100004100000000001004390000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000000801000029000005bd01100197000000240240003900000000001204350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000900000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000016240000613d0000000902000029000005bc0120009c000015790000213d000000400020043f000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d0000000701000029000005ff0110019700000600011001c7000000400400043d00000024024000390000000000120435000005fe0100004100000000001404350000000801000029000005bd021001970000000401400039000900000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039000100000002001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015850000613d0000000202000029000005bc0120009c0000000401000029000015790000213d000000400020043f000000000101004b000014070000613d0000000001000416000006010110019700000000000104170000000001000414000000030400002900000005030000290000000002430019000000000332004b00000000030000190000000103004039000005a80440019700000001033001900000157f0000c13d0000000003000031000000000523004b0000157f0000413d0000000304400367000005ef0510009c000015ab0000813d0000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af0000000602000029000005bd0d200197000000080200002900080000000d001d169a16940000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000015bd0000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c000015790000213d0000000102200190000015790000c13d000000400010043f000500000005001d00000000073504360000001f013000390000000501100272000014460000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b0000143e0000413d000000000100004b000014480000613d0000000101000031000000000113004b000015770000213d00000004020003670000001f0130018f0000000503300272000014580000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b000014500000413d000000000401004b000014670000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000001020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d00000603010000410000000000140435000000040140003900000009020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015d80000613d0000000609000029000005bc0190009c0000000501000029000015790000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b0000000404000029000015770000c13d0000000002040433000005bc0320009c000015770000213d000000000114001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b000015770000c13d0000000023020434000005bc0430009c000015790000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004490019000005bc0540009c000015790000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000015770000213d000000000432004b000014e60000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b000015770000c13d000000400500043d000005ca0650009c000015790000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b000014cb0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f00000006060000290000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b000015120000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000015080000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000500000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015fe0000613d0000000502000029000005bc0120009c000015660000a13d000015790000013d000000000102004b0000164a0000c13d000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d000000240140003900000007020000290000000000210435000005e40100004100000000001404350000000801000029000005bd021001970000000401400039000900000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a804300197000400000001035500000001022001900000165f0000613d0000000502000029000005bc0120009c000015790000213d0000000601000029000005bd01100197000800000001001d000000400020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000080500002900000007060000290000000907000029169a16850000040f0000000101200190000015770000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400200043d0000001f0340018f0000000504400272000015920000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000158a0000413d000000000503004b000015a10000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000015c80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000015c10000413d000000000504004b000015d60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f0000000504400272000015e50000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000015dd0000413d000000000503004b000015f40000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f00000005044002720000160b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016030000413d000000000503004b0000161a0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000016310000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016290000413d000000000503004b000016400000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400100043d0000006402100039000005e10300004100000000003204350000004402100039000005e2030000410000000000320435000000240210003900000038030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0340018f00000005044002720000166c0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016640000413d000000000503004b0000167b0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c0001043000001688002104210000000102000039000000000001042d0000000002000019000000000001042d0000168d002104230000000102000039000000000001042d0000000002000019000000000001042d00001692002104230000000102000039000000000001042d0000000002000019000000000001042d000000000f0d001900001698002104290000000102000039000000000001042d0000000002000019000000000001042d0000169a000004320000169b0001042e0000169c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000009c4d535a00000000000000000000000000000000000000000000000000000000e9f18c1600000000000000000000000000000000000000000000000000000000ecf95b8900000000000000000000000000000000000000000000000000000000ecf95b8a00000000000000000000000000000000000000000000000000000000f3385fb600000000000000000000000000000000000000000000000000000000e9f18c1700000000000000000000000000000000000000000000000000000000ec8067c7000000000000000000000000000000000000000000000000000000009c4d535b00000000000000000000000000000000000000000000000000000000bb0fd61000000000000000000000000000000000000000000000000000000000da37f07f000000000000000000000000000000000000000000000000000000005d3826ff000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000007b510fe80000000000000000000000000000000000000000000000000000000084da1fb400000000000000000000000000000000000000000000000000000000187598a5000000000000000000000000000000000000000000000000000000003cda335100000000000000000000000000000000000000000000000000000000571809818000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792073656c66000000000000000000000000000000000000000000000000000000000000640000008000000000000000004c6314f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff54686520636f64652068617368206973206e6f74206b6e6f776e00000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000010000306395c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf696e6700000000000000000000000000000000000000000000000000000000006f6d2073657175656e7469616c20746f20617262697472617279206f726465724974206973206f6e6c7920706f737369626c6520746f206368616e676520667200000000000000000000000000000000000000a40000000000000000000000000200000000000000000000000000000000000020000000000000000000000000c7544194dab38b1652f35439b9b4806d8b71e113f2cf5c1351cb2ecf7c83959a43616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f594552206f7220434f4d504c45585f55504752414445525f434f4e54524143540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a40000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000f3385fb60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffefb000000000000000000000000000000000000010400000000000000000000000002000000000000000000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006d656e74730000000000000000000000000000000000000000000000000000002074686520636f6d62696e6564206076616c75656073206f66206465706c6f796076616c7565602070726f7669646564206973206e6f7420657175616c20746f496e617070726f7072696174652063616c6c65720000000000000000000000006e6f742063616c6c2074686520636f6e7374727563746f7200000000000000005468652076616c7565206d757374206265207a65726f20696620776520646f2000000000000000000000000000000000000000840000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5000000000000000000000000ffffffffffffffffffffffffffffffffffff00004de2e46800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000400000000000000000000000003fb6f4f15ddd4a75588ca934894ad2cdcab25a5012e2515e1783433d0128611a666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c200000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe06b656363616b3235362072657475726e656420696e76616c69642064617461002020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494000000000000000000000000000000000000000000000000ffffffffffffff3f4f766572666c6f7700000000000000000000000000000000000000000000000063bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23000000000000000000000000000000000000000000000000ffffffffffffff80e03fe17700000000000000000000000000000000000000000000000000000000436f64652068617368206973206e6f6e2d7a65726f00000000000000000000005aa9b6b5000000000000000000000000000000000000000000000000000000004163636f756e74206973206f6363757069656400000000000000000000000000579952fc000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0001000100000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000656c20737061636500000000000000000000000000000000000000000000000043616e206e6f74206465706c6f7920636f6e74726163747320696e206b65726e42797465636f6465486173682063616e6e6f74206265207a65726f000000000039187a54c09fddd78293acb1d6fafb891fffc8438366fb93b8fe735877e8b717", + "bytecode": "0x0002000000000002000b0000000000020000000003020019000100000001035500000000020100190000006002200270000004f40020019d0000008004000039000000400040043f000004f4022001970000000104300190000000860000c13d000000040420008c000007660000413d000000000401043b000000e004400270000004f60540009c0000008e0000a13d000004f70540009c000000cf0000a13d000004f80540009c0000000005000410000b00000005001d000001470000213d000004fb0540009c000001b40000613d000004fc0440009c000007660000c13d0000000004000416000000000404004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000000010110008c000007660000213d000000000200041100000002013001900000002c0000c13d0000ffff0120008c000003aa0000213d000a00000002001d0000000000200435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400400043d000005200240009c000003d30000213d000000000101043b0000004002400039000000400020043f000000000101041a000000ff0210018f000000010320008c000004190000213d00000000032404360000000801100270000000ff0110018f000000010210008c000004190000213d000900000004001d00000000001304350000000b02000029000000010220008c0000065e0000c13d000000000101004b0000065e0000c13d0000000101000039000b00000003001d000800000001001d00000000001304350000000a0100002900000509011001970000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d00000009020000290000000002020433000000010320008c0000000b05000029000004190000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000003050433000000010430008c000004190000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000400100043d00000008020000290000000000210435000004f4020000410000000003000414000004f40430009c0000000003028019000004f40410009c00000000010280190000004001100210000000c002300210000000000112019f00000531011001c70000800d0200003900000002030000390000053204000041000000c90000013d0000000001000416000000000101004b000007660000c13d000000200100003900000100001004430000012000000443000004f501000041000013ca0001042e000005000540009c000001230000213d000005040540009c000002f00000613d000005050540009c0000037d0000613d000005060440009c000007660000c13d0000000004000416000000000404004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000000010110008c000007660000213d00000000020004110000000201300190000000a60000c13d0000ffff0120008c000003aa0000213d000a00000002001d0000000000200435000000200000043f000004f4030000410000000001000414000004f40210009c0000000001038019000000c0011002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000b03000029000000000232019f000000000021041b000000400100043d00000000003104350000000002000414000004f40320009c000004f4040000410000000002048019000004f40310009c00000000010480190000004001100210000000c002200210000000000112019f00000531011001c70000800d02000039000000020300003900000543040000410000000a0500002913c913b40000040f0000000101200190000007660000613d0000000001000019000013ca0001042e000004fd0540009c000002510000613d000004fe0340009c000002bc0000613d000004ff0340009c000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000201043b0000000001000411000080070110008c000003d70000c13d0000050d01000041000000800010043f000b00000002001d000000840020043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080040200003913c913b90000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000000fb0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000000f30000413d000000000705004b0000010a0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000003e10000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200330008c000007660000413d000000800300043d000000000303004b000004770000c13d0000050a03000041000000000031043500000084032001bf00000020040000390000000000430435000000c40320003900000529040000410000000000430435000000a4022000390000001a030000390000000000320435000000400110021000000514011001c7000013cb00010430000005010540009c000003070000613d000005020340009c000003b60000613d000005030340009c000007660000c13d0000000003000416000000000303004b000007660000c13d000000040320008a000000800330008c000007660000413d0000000403100370000000000303043b000b00000003001d000005090330009c000007660000213d0000006401100370000000000101043b000005070310009c000007660000213d000000040110003913c90a2c0000040f00000001040003670000004403400370000000000303043b0000002404400370000000000404043b000000000501001900000000060200190000000b0100002900000000020400190000000004050019000000000506001913c90a460000040f000002fe0000013d000004f90540009c000001e00000613d000004fa0340009c000007660000c13d000000040320008a000000400330008c000007660000413d0000000403100370000000000303043b000a00000003001d000005070330009c000007660000213d0000000a0420006a0000050802000041000000a40340008c00000000030000190000000003024019000900000004001d0000050804400197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000007660000c13d0000002402100370000000000202043b000800000002001d000005090220009c000007660000213d00000000020004110000000b0220006c0000042b0000c13d0000000a02000029000700040020003d0000000701100360000000000201043b0000050d01000041000000800010043f000600000002001d000000840020043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080040200003913c913b90000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000018a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001820000413d000000000705004b000001990000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005ae0000613d0000001f01400039000000600110018f00000080021001bf000500000002001d000000400020043f000000200230008c000007660000413d000000800200043d000000000202004b000006760000c13d0000050a020000410000000504000029000000000024043500000084021001bf00000020030000390000000000320435000000c40210003900000529030000410000000000320435000000a4011000390000001a020000390000000000210435000000400140021000000514011001c7000013cb00010430000000040320008a000000200330008c000007660000413d0000000403100370000000000303043b000500000003001d000005070330009c000007660000213d000000050300002900000023033000390000050804000041000000000523004b000000000500001900000000050480190000050803300197000000000603004b0000000004008019000005080330009c000000000405c019000000000304004b000007660000c13d00000005030000290000000403300039000000000331034f000000000d03043b0000050703d0009c000007660000213d0000000503000029000000240e3000390000000503d002100000000003e30019000000000323004b000007660000213d000000090400008a0000000003000411000000000443016f000080070440008c0000041f0000c13d00000000040d004b000004b40000c13d0000000001000416000000000101004b000000cd0000613d000006160000013d000000040420008a000000800440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000551034f000000000505043b000a00000005001d000005070550009c000007660000213d0000002405400039000900000005001d0000000a04500029000000000224004b000007660000213d0000006401100370000000000101043b000800000001001d000000010110008c000007660000213d000000020130019000000001011002700000020d0000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000700000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000022e0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002260000413d000000000705004b0000023d0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000006240000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d000000800200043d000000070100002913c90b0d0000040f0000000002010019000700000002001d0000000b01000029000000080300002900000009040000290000000a0500002913c90f760000040f0000000701000029000002fe0000013d000000040420008a000000600440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000151034f000000000101043b000a00000001001d000005070110009c000007660000213d0000002404400039000900000004001d0000000a01400029000000000121004b000007660000213d00000002013001900000000101100270000002790000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000800000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000029a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002920000413d000000000705004b000002a90000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005cb0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d000000800200043d000000080100002913c90b0d0000040f0000000002010019000800000002001d0000000b0100002900000009030000290000000a0400002913c90b390000040f0000000801000029000002fe0000013d0000000003000416000000000303004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000005090110009c000007660000213d0000000b010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400200043d000005200320009c000003d30000213d000000000101043b0000004003200039000000400030043f000000000101041a000000ff0310018f000000010430008c000004190000213d00000000033204360000000801100270000000ff0110018f000000010410008c000004190000213d00000000001304350000000002020433000000010120008c000004190000213d0000000101000039000000000202004b000002ff0000c13d0000000b010000290000053f011001980000000001000019000007210000c13d000000010110018f000002ff0000013d0000000003000416000000000303004b000007660000c13d000000040220008a000000400220008c000007660000413d0000000402100370000000000302043b000005090230009c000007660000213d0000002401100370000000000201043b000000000103001913c90b0d0000040f0000050901100197000000400200043d0000000000120435000004f401000041000004f40320009c000000000201801900000040012002100000052c011001c7000013ca0001042e000000040420008a000000800440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000000404100370000000000404043b000a00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000551034f000000000505043b000900000005001d000005070550009c000007660000213d0000002405400039000800000005001d0000000904500029000000000224004b000007660000213d0000006401100370000000000101043b000700000001001d000000010110008c000007660000213d00000002013001900000000101100270000003370000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000600000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003580000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003500000413d000000000705004b000003670000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000006410000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d00000006010000290000000b020000290000000a030000290000000804000029000000090500002913c90a460000040f0000000002010019000a00000002001d0000000b0100002900000007030000290000000804000029000000090500002913c90f760000040f000004750000013d000000040420008a000000600440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000000404100370000000000404043b000a00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000151034f000000000101043b000900000001001d000005070110009c000007660000213d0000002404400039000800000004001d0000000901400029000000000121004b000007660000213d00000002013001900000000101100270000003a80000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000004330000c13d0000050a01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000054401000041000000c40010043f0000054501000041000000e40010043f0000054601000041000013cb000104300000000003000416000000000303004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000005090210009c000007660000213d000000c002000039000000400020043f000000800000043f000000a00000043f0000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400200043d000005410320009c000004040000413d0000053a01000041000000000010043500000041010000390000041c0000013d0000050a01000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000053e01000041000000c40010043f0000050c01000041000013cb00010430000000400200043d0000001f0430018f0000000505300272000003ee0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003e60000413d000000000604004b000003fd0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb00010430000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f000000020410008c000004190000813d00000000011204360000000803300270000000ff0330018f000000010430008c000004190000213d00000000003104350000000003020433000000010230008c000004190000213d000000400200043d00000000033204360000000001010433000000010410008c0000071a0000a13d0000053a0100004100000000001004350000002101000039000000040010043f0000051f01000041000013cb000104300000050a01000041000000800010043f0000002001000039000000840010043f0000004101000039000000a40010043f0000053301000041000000c40010043f0000053401000041000000e40010043f0000053501000041000006210000013d0000050a01000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000050b01000041000003de0000013d0000052b01000041000000800010043f0000000001000411000700000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000004520000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000044a0000413d000000000705004b000004610000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005e80000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d00000007010000290000000b020000290000000a030000290000000804000029000000090500002913c90a460000040f0000000002010019000a00000002001d0000000b010000290000000803000029000000090400002913c90b390000040f0000000a01000029000002fe0000013d0000000003000416000000000303004b000006050000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d00000024014000390000000b02000029000000000021043500000526010000410000000000140435000000040140003900008010020000390000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000a00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f0000000102200190000007680000613d0000000a01000029000005070110009c000003d30000213d0000000a01000029000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d0200003900000004030000390000800705000039000080100700003900000528040000410000000b06000029000000ca0000013d000000050500002900000000045200490000008402500039000000c30440008a00000508060000410000000007000019000000000500001900000005087002100000000008e80019000000000881034f000000000808043b000000000948004b00000000090000190000000009068019000005080a400197000005080b800197000000000cab004b000000000c000019000000000c064019000000000aab013f000005080aa0009c000000000c09c01900000000090c004b000007660000c13d0000000008820019000000000881034f000000000808043b0000000005580019000000000885004b0000000008000019000000010800403900000001088001900000080b0000c13d00000001077000390000000008d7004b000004bb0000413d0000000001000416000000000151004b000006160000c13d000405090030019b0000050808000041000000000900001900080000000d001d00070000000e001d00000005019002100000000002e100190000000101000367000000000221034f000000000202043b00000005030000290000000003300079000000c30330008a000000000432004b0000000004000019000000000408801900000508033001970000050805200197000000000635004b00000000060000190000000006084019000000000335013f000005080330009c000000000604c019000000000306004b000007660000c13d000a00000009001d0000000002e20019000900000002001d0000006002200039000000000121034f000000000101043b000600000001001d000005110100004100000000001004390000000b0100002900000004001004430000000001000414000004f40210009c000004f401008041000000c00110021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000000080d000029000000070e00002900000508080000410000000a09000029000000090b000029000007660000613d000000400a00043d000005370100004100000000001a04350000000401a000390000004002000039000000000021043500000001010003670000000002b1034f000000000202043b0000004403a0003900000000002304350000002002b00039000000000321034f000000000303043b000005090430009c000007660000213d0000006404a0003900000000003404350000002002200039000000000321034f000000000303043b000000000403004b0000000004000019000000010400c039000000000443004b000007660000c13d0000008404a0003900000000003404350000002003200039000000000331034f000000000303043b000000a404a0003900000000003404350000004002200039000000000221034f000000000202043b00000000030000310000000004b300490000001f0440008a000000000542004b0000000005000019000000000508801900000508044001970000050806200197000000000746004b00000000070000190000000007084019000000000446013f000005080440009c000000000705c019000000000407004b000007660000c13d0000000004b20019000000000241034f000000000202043b000005070520009c000007660000213d00000020044000390000000003230049000000000534004b0000000005000019000000000508201900000508033001970000050806400197000000000736004b00000000070000190000000007084019000000000336013f000005080330009c000000000705c019000000000307004b000007660000c13d000000c403a00039000000a0050000390000000000530435000000e403a000390000000000230435000000000341034f0000010401a0003900000005042002720000056b0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000005630000413d0000001f052001900000057a0000613d0000000504400210000000000343034f00000000044100190000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000340435000000000112001900000000000104350000002401a000390000000403000029000000000031043500000000010004140000000b03000029000000040330008c000005a70000613d0000001f02200039000000200300008a000000000232016f000005380320009c0000053802008041000004f403a0009c000004f40400004100090000000a001d000000000304001900000000030a401900000040033002100000006002200210000000000232019f000004f40310009c0000000001048019000000c001100210000000000112019f00000539011000410000000603000029000000000203004b0000059e0000613d00000527011001c700008009020000390000000b04000029000000000500001913c913b40000040f000005a00000013d0000000b0200002913c913b40000040f0000000102200190000000080d000029000000070e00002900000508080000410000000a09000029000000090a000029000007aa0000613d0000050701a0009c000003d30000213d0000004000a0043f00000001099000390000000001d9004b000004e00000413d000000cd0000013d000000400200043d0000001f0430018f0000000505300272000005bb0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005b30000413d000000000604004b000005ca0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000005d80000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005d00000413d000000000604004b000005e70000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000005f50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005ed0000413d000000000604004b000003fd0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000050a03000041000000000031043500000084032001bf00000020040000390000000000430435000000e40320003900000523040000410000000000430435000000c40320003900000524040000410000000000430435000000a40220003900000038030000390000000000320435000000400110021000000525011001c7000013cb000104300000050a01000041000000800010043f0000002001000039000000840010043f0000004501000039000000a40010043f0000053b01000041000000c40010043f0000053c01000041000000e40010043f0000053d01000041000001040010043f0000053601000041000013cb00010430000000400200043d0000001f0430018f0000000505300272000006310000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006290000413d000000000604004b000006400000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f00000005053002720000064e0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006460000413d000000000604004b0000065d0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400100043d00000084021000390000052d03000041000000000032043500000064021000390000052e03000041000000000032043500000044021000390000052f0300004100000000003204350000002402100039000000430300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000000400110021000000530011001c7000013cb00010430000000c002100039000000400020043f00000005020000290000000000020435000000a001100039000400000001001d000000000001043500000007010000290000002001100039000300000001001d0000000101100367000000000101043b000700000001001d000005090110009c000007660000213d00000007010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d00000005020000290000000002020433000000010320008c000004190000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000004030000290000000003030433000000010430008c000004190000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000030100002900000060021000390000000101000367000000000321034f000000000303043b0000000904000029000000230440008a0000050805000041000000000643004b0000000006000019000000000605801900000508044001970000050807300197000000000847004b0000000005008019000000000447013f000005080440009c000000000506c019000000000405004b000007660000c13d0000000a033000290000000404300039000000000441034f000000000404043b000a00000004001d000005070440009c000007660000213d0000000a04000029000000000440007900000024063000390000050803000041000000000546004b000000000500001900000000050320190000050804400197000900000006001d0000050806600197000000000746004b0000000003008019000000000446013f000005080440009c000000000305c019000000000303004b000007660000c13d000000400220008a000000000121034f000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b000007660000c13d0000000002000416000500000002001d000000000101004b000007ca0000c13d000000050100006b0000080f0000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d00000024014000390000000602000029000000000021043500000526010000410000000000140435000000040140003900000007020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f0000000102200190000008750000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d0200003900000004030000390000052804000041000000080500002900000006060000290000000707000029000000ca0000013d0000000000130435000004f401000041000004f40320009c0000000002018019000000400120021000000542011001c7000013ca0001042e000000400400043d000a00000004001d0000054001000041000000000014043500000004014000390000000b020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b90000040f0000000a0a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000007470000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000073f0000413d00000000090a0019000000000705004b000007570000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000007880000613d0000001f01400039000000600210018f0000000001920019000000000221004b00000000020000190000000102004039000005070410009c000003d30000213d0000000102200190000003d30000c13d000000400010043f000000200130008c000007a50000813d0000000001000019000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000007780000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007700000413d000000000604004b000007870000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000007950000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000078d0000413d000000000604004b000007a40000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000000001090433000000000101004b00000000010000190000000101006039000002ee0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000007ba0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007b20000413d000000000604004b000007c90000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000050100006b000008220000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d0000051501000041000000000014043500000004024000390000000701000029000400000002001d00000000001204350000000601000029000005160110019700000517011001c70000002402400039000300000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190002004000100218000000c00120021000000002011001af00000518011001c70000800202000039000100000002001d13c913b40000040f0000000102200190000008550000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000000050100006b000008030000613d000000000100041600000519011001970000000000010417000000000100041400000009030000290000000a0230002a000004f4043001970000080b0000413d0000000003000031000000000523004b000008b50000813d0000053a01000041000000000010043500000011010000390000041c0000013d000000400100043d0000006402100039000005230300004100000000003204350000004402100039000005240300004100000000003204350000002402100039000000380300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000006130000013d000005110100004100000000001004390000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000070200002900000000002104350000000b01000029000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f0000000102200190000008950000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000007cc0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008650000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000085d0000413d000000000604004b000008740000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008850000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000087d0000413d000000000604004b000008940000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008a50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000089d0000413d000000000604004b000008b40000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d00000001044003670000051a0510009c000008c70000413d0000050a010000410000000b020000290000000000120435000000200100003900000004030000290000000000130435000000080100003900000003030000290000000000130435000000440120003900000522020000410000000000210435000000020100002900000514011001c7000013cb000104300000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af0000000702000029000000080d00002913c913c30000040f00000000030100190000006003300270000004f4033001970000000102200190000009d10000613d0000003f023000390000051d02200197000000400400043d0000000002240019000b00000004001d000000000442004b00000000040000190000000104004039000005070520009c000003d30000213d0000000104400190000003d30000c13d000000400020043f0000000b0200002900000000083204360000001f023000390000000502200272000008f30000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b000008eb0000413d000900000008001d000000000200004b000008f60000613d0000001f0230018f00000005033002720000000907000029000009030000613d000000000400001900000005054002100000000006570019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000008fb0000413d000000000402004b000009120000613d0000000503300210000000000131034f00000009033000290000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f00000000001304350000051101000041000000000010043900000001020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d0000051e010000410000000000140435000000040140003900000007020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000a00000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f0000000102200190000009ec0000613d0000000a01000029000005070110009c000003d30000213d0000000a01000029000000400010043f0000000b0100002900000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000007660000c13d00000009020000290000000002020433000005070320009c000007660000213d000000090110002900000009022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b000007660000c13d0000000023020434000005070430009c000003d30000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000a04400029000005070540009c000003d30000213d000000400040043f0000000a04000029000000000034043500000006033002100000000003230019000000000413004b000007660000213d000000000432004b0000098c0000813d00000508040000410000000a050000290000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b000007660000c13d000000400600043d000005200760009c000003d30000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b000009720000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400300043d000000240130003900000040020000390000000000210435000005210100004100000000001304350000000401300039000000070200002900000000002104350000000a01000029000000000101043300000044023000390000000000120435000b00000003001d0000006402300039000000000301004b000009bb0000613d00000000030000190000000a040000290000002004400039000a00000004001d0000000004040433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000009af0000413d0000000b040000290000000001420049000004f402000041000004f40340009c000000000302001900000000030440190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f000080050200003913c913b40000040f000000010220019000000a0c0000613d000007080000013d000000000001042f0000001f0430018f0000000502300272000009dc0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000009d50000413d000000000504004b000009ea0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000009fc0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000009f40000413d000000000604004b00000a0b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000a1c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000a140000413d000000000604004b00000a2b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000001f031000390000050804000041000000000523004b0000000005000019000000000504401900000508062001970000050803300197000000000763004b000000000400a019000000000363013f000005080330009c000000000405c019000000000304004b00000a440000613d0000000103100367000000000303043b000005070430009c00000a440000213d00000020011000390000000004310019000000000224004b00000a440000213d0000000002030019000000000001042d0000000001000019000013cb00010430000300000000000200000000070004140000000008450019000000000558004b00000000050000190000000105004039000004f404400197000000010550019000000ace0000c13d0000000006000031000000000586004b00000ace0000413d000200000002001d000300000001001d000100000003001d00000001044003670000051a0570009c00000ad80000813d0000000002860049000004f40220019700000000022403df000000c0017002100000051b0110019700000547011001c700000000011203af000080100200003913c913be0000040f00000000030100190000006003300270000004f403300197000000010220019000000adf0000613d0000003f023000390000051d04200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000005070640009c00000ad20000213d000000010550019000000ad20000c13d000000400040043f00000000043204360000001f05300039000000050550027200000a810000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000a790000413d000000000500004b00000a830000613d0000001f0530018f000000050330027200000a8f0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b00000a870000413d000000000605004b00000a9e0000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000130435000000400100043d0000000002020433000000200220008c0000000305000029000000020600002900000afa0000c13d0000000002040433000000a003100039000000000023043500000080021000390000000000620435000000600210003900000001030000290000000000320435000005090250019700000040031000390000000000230435000000200210003900000549030000410000000000320435000000a00300003900000000003104350000054a0310009c00000ad20000213d000000c003100039000000400030043f000004f403000041000004f40420009c000000000203801900000040022002100000000001010433000004f40410009c00000000010380190000006001100210000000000121019f0000000002000414000004f40420009c0000000002038019000000c002200210000000000112019f00000527011001c7000080100200003913c913b90000040f000000010220019000000b0b0000613d000000000101043b0000050901100197000000000001042d0000053a010000410000000000100435000000110100003900000ad50000013d0000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000400100043d0000004402100039000005220300004100000000003204350000002402100039000000080300003900000aff0000013d0000001f0430018f000000050230027200000aea0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ae30000413d000000000504004b00000af80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb0001043000000044021000390000054803000041000000000032043500000024021000390000001f0300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000000400110021000000514011001c7000013cb000104300000000001000019000013cb00010430000000400300043d00000060043000390000000000240435000005090110019700000040023000390000000000120435000000600100003900000000011304360000054b0200004100000000002104350000054c0230009c00000b310000813d0000008002300039000000400020043f000004f402000041000004f40410009c000000000102801900000040011002100000000003030433000004f40430009c00000000030280190000006003300210000000000113019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000112019f00000527011001c7000080100200003913c913b90000040f000000010220019000000b370000613d000000000101043b0000050901100197000000000001042d0000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb000104300000000001000019000013cb000104300009000000000002000500000003001d000000400500043d0000000403500039000800000001001d000000000101004b00000e050000613d000400000004001d000300000002001d00000509012001970000ffff0210008c00000e150000a13d0000054d020000410000000000250435000900000001001d0000000000130435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40350009c00000000010540190000004001100210000000c002200210000000000112019f0000051f011001c70000800202000039000600000002001d000700000005001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000b6a0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b620000413d000000000705004b00000b790000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e280000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005070240009c00000df60000213d000000010110019000000df60000c13d000000400040043f0000001f0130008c00000df40000a13d000000040140003900000000020a0433000000000202004b00000e450000c13d0000054f02000041000000000024043500000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800302000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bb00000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000ba80000413d000000000705004b00000bbf0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e4f0000613d0000001f01400039000000600110018f0000000004a10019000005070140009c00000df60000213d000000400040043f000000200130008c00000df40000413d000000040140003900000000020a0433000000000202004b00000e6c0000c13d0000050d02000041000000000024043500000008020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800402000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bf10000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000be90000413d000000000705004b00000c000000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e760000613d0000001f01400039000000600110018f0000000004a10019000005070140009c00000df60000213d000000400040043f000000200130008c00000df40000413d00000000010a0433000000000101004b00000e930000613d000005200140009c00000df60000213d0000004001400039000000400010043f0000000001040436000200000001001d000000000001043500000009010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c70000801002000039000700000004001d13c913b90000040f0000000703000029000000010220019000000df40000613d0000000002030433000000020320008c00000dfd0000813d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000002030000290000000003030433000000010430008c00000dfd0000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000000100041600000511020000410000000000200439000000000101004b00000c9f0000613d0000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c70000800202000039000700000002001d13c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000090200002900000000002104350000000001000410000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f000000010220019000000f100000613d0000000202000029000005070120009c00000df60000213d000000400020043f0000051101000041000000000010043900000007020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000200000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f000000010220019000000f300000613d0000000706000029000005070160009c00000df60000213d000000400060043f00000000010004160000051901100197000000000001041700000ccd0000013d00000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000200000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f000000010220019000000f500000613d0000000706000029000005070160009c00000df60000213d000000400060043f000000000100041400000005040000290000000402400029000000040320006c00000000030000190000000103004039000004f404400197000000010330019000000e010000c13d0000000003000031000000000523004b00000e010000413d00000001044003670000051a0510009c00000ea40000813d00000000050004110000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af000400000005001d000005090d500197000000030200002913c913c30000040f00000000030100190000006003300270000004f403300197000000010220019000000eb50000613d0000003f023000390000051d02200197000000400600043d0000000002260019000000000462004b00000000040000190000000104004039000005070520009c00000df60000213d000000010440019000000df60000c13d000000400020043f000500000006001d00000000083604360000001f02300039000000050220027200000d090000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b00000d010000413d000000000200004b00000d0b0000613d0000001f0230018f000000050330027200000d170000613d000000000400001900000005054002100000000006580019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b00000d0f0000413d000000000402004b00000d260000613d0000000503300210000000000131034f00000000033800190000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f0000000000130435000700000008001d0000051101000041000000000010043900000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051e010000410000000000140435000000040140003900000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f000000010220019000000ed00000613d0000000609000029000005070190009c000000050100002900000df60000213d000000400090043f00000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b00000df40000c13d00000007020000290000000002020433000005070320009c00000df40000213d000000070110002900000007022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b00000df40000c13d0000000023020434000005070430009c00000df60000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005070540009c00000df60000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b00000df40000213d000000000432004b00000d9f0000813d000005080400004100000000050900190000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b00000df40000c13d000000400600043d000005200760009c00000df60000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b00000d850000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b000000060600002900000df40000613d000000400700043d000000240170003900000040020000390000000000210435000005210100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b00000dcb0000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b00000dc10000413d0000000001720049000004f402000041000004f40370009c000000000302001900000000030740190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f0000800502000039000700000007001d13c913b40000040f000000010220019000000ef00000613d0000000702000029000005070120009c000000000102001900000df60000213d000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d020000390000000403000039000005280400004100000004050000290000000806000029000000090700002913c913b40000040f000000010120019000000df40000613d000000000001042d0000000001000019000013cb000104300000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000000001042f0000053a010000410000000000100435000000210100003900000df90000013d0000053a010000410000000000100435000000110100003900000df90000013d0000050a0200004100000000002504350000002002000039000000000023043500000044015000390000055302000041000000000021043500000024015000390000001b020000390000000000210435000004f401000041000004f40250009c0000000005018019000000400150021000000514011001c7000013cb000104300000050a02000041000000000025043500000020020000390000000000230435000000640150003900000551020000410000000000210435000000440150003900000552020000410000000000210435000000240150003900000028020000390000000000210435000004f401000041000004f40250009c0000000005018019000000400150021000000525011001c7000013cb00010430000000400200043d0000001f0430018f000000050530027200000e350000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e2d0000413d000000000604004b00000f6f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000054e0200004100000000002104350000002401400039000000150200003900000e9d0000013d000000400200043d0000001f0430018f000000050530027200000e5c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e540000413d000000000604004b00000e6b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d0000050a020000410000000000240435000000200200003900000000002104350000004401400039000005500200004100000000002104350000002401400039000000130200003900000e9d0000013d000000400200043d0000001f0430018f000000050530027200000e830000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e7b0000413d000000000604004b00000e920000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d00000044014000390000052902000041000000000021043500000024014000390000001a0200003900000000002104350000050a010000410000000000140435000000040140003900000020020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000514011001c7000013cb000104300000050a010000410000000000160435000000200100003900000002020000290000000000120435000000080100003900000001020000290000000000120435000000440160003900000522020000410000000000210435000004f401000041000004f40260009c0000000006018019000000400160021000000514011001c7000013cb000104300000001f0430018f000000050230027200000ec00000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000eb90000413d000000000504004b00000ece0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000ee00000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000ed80000413d000000000604004b00000eef0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f000000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000ef80000413d000000000604004b00000f0f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f200000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f180000413d000000000604004b00000f2f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f400000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f380000413d000000000604004b00000f4f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f600000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f580000413d000000000604004b00000f6f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb000104300009000000000002000300000005001d000400000004001d000500000003001d000000400400043d0000000403400039000800000001001d000000000101004b000012480000613d000200000002001d00000509012001970000ffff0210008c000012520000a13d0000054d020000410000000000240435000900000001001d0000000000130435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800202000039000600000002001d000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000fa80000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000fa00000413d000000000705004b00000fb70000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000012650000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005070240009c000012390000213d0000000101100190000012390000c13d000000400040043f0000001f0130008c000012370000a13d000000040140003900000000020a0433000000000202004b000012820000c13d0000054f02000041000000000024043500000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800302000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000fee0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000fe60000413d000000000705004b00000ffd0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000128c0000613d0000001f01400039000000600110018f0000000004a10019000005070140009c000012390000213d000000400040043f000000200130008c000012370000413d000000040140003900000000020a0433000000000202004b000012a90000c13d0000050d02000041000000000024043500000008020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800402000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000102f0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000010270000413d000000000705004b0000103e0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000012b30000613d0000001f01400039000000600110018f0000000004a10019000005070140009c000012390000213d000000400040043f000000200130008c000012370000413d00000000010a0433000000000101004b000012d00000613d000005200140009c000012390000213d0000004001400039000000400010043f000000000304043600000000000304350000000502000029000000020120008c000012400000813d0000000000240435000500000003001d000000000003043500000009010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c70000801002000039000700000004001d13c913b90000040f00000007030000290000000102200190000012370000613d0000000002030433000000010320008c0000000505000029000012400000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000003050433000000010430008c000012400000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000000100041600000511020000410000000000200439000000000101004b000010e20000613d0000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c70000800202000039000700000002001d13c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000090200002900000000002104350000000001000410000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f00000001022001900000134d0000613d0000000502000029000005070120009c000012390000213d000000400020043f0000051101000041000000000010043900000007020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000500000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f00000001022001900000136d0000613d0000000706000029000005070160009c000012390000213d000000400060043f000000000100041600000519011001970000000000010417000011100000013d00000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000500000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f00000001022001900000138d0000613d0000000706000029000005070160009c000012390000213d000000400060043f000000000100041400000004040000290000000302400029000000030320006c00000000030000190000000103004039000004f4044001970000000103300190000012440000c13d0000000003000031000000000523004b000012440000413d00000001044003670000051a0510009c000012e10000813d00000000050004110000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af000400000005001d000005090d500197000000020200002913c913c30000040f00000000030100190000006003300270000004f4033001970000000102200190000012f20000613d0000003f023000390000051d02200197000000400600043d0000000002260019000000000462004b00000000040000190000000104004039000005070520009c000012390000213d0000000104400190000012390000c13d000000400020043f000500000006001d00000000083604360000001f0230003900000005022002720000114c0000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b000011440000413d000000000200004b0000114e0000613d0000001f0230018f00000005033002720000115a0000613d000000000400001900000005054002100000000006580019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000011520000413d000000000402004b000011690000613d0000000503300210000000000131034f00000000033800190000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f0000000000130435000700000008001d0000051101000041000000000010043900000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051e010000410000000000140435000000040140003900000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f00000001022001900000130d0000613d0000000609000029000005070190009c0000000501000029000012390000213d000000400090043f00000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000012370000c13d00000007020000290000000002020433000005070320009c000012370000213d000000070110002900000007022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b000012370000c13d0000000023020434000005070430009c000012390000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005070540009c000012390000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000012370000213d000000000432004b000011e20000813d000005080400004100000000050900190000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b000012370000c13d000000400600043d000005200760009c000012390000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b000011c80000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b0000000606000029000012370000613d000000400700043d000000240170003900000040020000390000000000210435000005210100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b0000120e0000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000012040000413d0000000001720049000004f402000041000004f40370009c000000000302001900000000030740190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f0000800502000039000700000007001d13c913b40000040f00000001022001900000132d0000613d0000000702000029000005070120009c0000000001020019000012390000213d000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d020000390000000403000039000005280400004100000004050000290000000806000029000000090700002913c913b40000040f0000000101200190000012370000613d000000000001042d0000000001000019000013cb000104300000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000000001042f0000053a01000041000000000010043500000021010000390000123c0000013d0000053a01000041000000000010043500000011010000390000123c0000013d0000050a0200004100000000002404350000002002000039000000000023043500000044014000390000055302000041000000000021043500000024014000390000001b02000039000012da0000013d0000050a02000041000000000024043500000020020000390000000000230435000000640140003900000551020000410000000000210435000000440140003900000552020000410000000000210435000000240140003900000028020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000525011001c7000013cb00010430000000400200043d0000001f0430018f0000000505300272000012720000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000126a0000413d000000000604004b000013ac0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000054e02000041000000000021043500000024014000390000001502000039000012da0000013d000000400200043d0000001f0430018f0000000505300272000012990000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000012910000413d000000000604004b000012a80000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000055002000041000000000021043500000024014000390000001302000039000012da0000013d000000400200043d0000001f0430018f0000000505300272000012c00000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000012b80000413d000000000604004b000012cf0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d00000044014000390000052902000041000000000021043500000024014000390000001a0200003900000000002104350000050a010000410000000000140435000000040140003900000020020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000514011001c7000013cb000104300000050a010000410000000000160435000000200100003900000005020000290000000000120435000000080100003900000001020000290000000000120435000000440160003900000522020000410000000000210435000004f401000041000004f40260009c0000000006018019000000400160021000000514011001c7000013cb000104300000001f0430018f0000000502300272000012fd0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000012f60000413d000000000504004b0000130b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000131d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013150000413d000000000604004b0000132c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000133d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013350000413d000000000604004b0000134c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000135d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013550000413d000000000604004b0000136c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000137d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013750000413d000000000604004b0000138c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000139d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013950000413d000000000604004b000013ac0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb00010430000000000001042f000013b7002104210000000102000039000000000001042d0000000002000019000000000001042d000013bc002104230000000102000039000000000001042d0000000002000019000000000001042d000013c1002104230000000102000039000000000001042d0000000002000019000000000001042d000000000f0d0019000013c7002104290000000102000039000000000001042d0000000002000019000000000001042d000013c900000432000013ca0001042e000013cb00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000009c4d535a00000000000000000000000000000000000000000000000000000000e9f18c1600000000000000000000000000000000000000000000000000000000ecf95b8900000000000000000000000000000000000000000000000000000000ecf95b8a00000000000000000000000000000000000000000000000000000000f3385fb600000000000000000000000000000000000000000000000000000000e9f18c1700000000000000000000000000000000000000000000000000000000ec8067c7000000000000000000000000000000000000000000000000000000009c4d535b00000000000000000000000000000000000000000000000000000000bb0fd61000000000000000000000000000000000000000000000000000000000da37f07f000000000000000000000000000000000000000000000000000000005d3826ff000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000007b510fe80000000000000000000000000000000000000000000000000000000084da1fb400000000000000000000000000000000000000000000000000000000187598a5000000000000000000000000000000000000000000000000000000003cda33510000000000000000000000000000000000000000000000000000000057180981000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792073656c66000000000000000000000000000000000000000000000000000000000000640000008000000000000000004c6314f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000579952fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0c2e4ff97000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbfad7e232e000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000006e6f742063616c6c2074686520636f6e7374727563746f7200000000000000005468652076616c7565206d757374206265207a65726f20696620776520646f2000000000000000000000000000000000000000840000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e554686520636f64652068617368206973206e6f74206b6e6f776e0000000000000000000000000000000000000000000000000000000000000000000000010000306395c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000696e6700000000000000000000000000000000000000000000000000000000006f6d2073657175656e7469616c20746f20617262697472617279206f726465724974206973206f6e6c7920706f737369626c6520746f206368616e676520667200000000000000000000000000000000000000a40000000000000000000000000200000000000000000000000000000000000020000000000000000000000000c7544194dab38b1652f35439b9b4806d8b71e113f2cf5c1351cb2ecf7c83959a43616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f594552206f7220434f4d504c45585f55504752414445525f434f4e54524143540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000800000000000000000f3385fb60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffefb00000000000000000000000000000000000001040000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000006076616c7565602070726f7669646564206973206e6f7420657175616c20746f2074686520636f6d62696e6564206076616c75656073206f66206465706c6f796d656e7473000000000000000000000000000000000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff00004de2e46800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000400000000000000000000000003fb6f4f15ddd4a75588ca934894ad2cdcab25a5012e2515e1783433d0128611a54686973206d6574686f6420726571756972652073797374656d2063616c6c20666c616700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000001000000000000000000000000000000000000000000000000000000006b656363616b3235362072657475726e656420696e76616c69642064617461002020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494000000000000000000000000000000000000000000000000ffffffffffffff3f63bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23000000000000000000000000000000000000000000000000ffffffffffffff80e03fe17700000000000000000000000000000000000000000000000000000000436f64652068617368206973206e6f6e2d7a65726f00000000000000000000005aa9b6b5000000000000000000000000000000000000000000000000000000004163636f756e74206973206f6363757069656400000000000000000000000000656c20737061636500000000000000000000000000000000000000000000000043616e206e6f74206465706c6f7920636f6e74726163747320696e206b65726e42797465636f6465486173682063616e6e6f74206265207a65726f0000000000158bafccd92e72ef3131795a8537d8b203e1379bcb77bd4de4eadb50996ea74d", + "deployedBytecode": "0x0002000000000002000b0000000000020000000003020019000100000001035500000000020100190000006002200270000004f40020019d0000008004000039000000400040043f000004f4022001970000000104300190000000860000c13d000000040420008c000007660000413d000000000401043b000000e004400270000004f60540009c0000008e0000a13d000004f70540009c000000cf0000a13d000004f80540009c0000000005000410000b00000005001d000001470000213d000004fb0540009c000001b40000613d000004fc0440009c000007660000c13d0000000004000416000000000404004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000000010110008c000007660000213d000000000200041100000002013001900000002c0000c13d0000ffff0120008c000003aa0000213d000a00000002001d0000000000200435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400400043d000005200240009c000003d30000213d000000000101043b0000004002400039000000400020043f000000000101041a000000ff0210018f000000010320008c000004190000213d00000000032404360000000801100270000000ff0110018f000000010210008c000004190000213d000900000004001d00000000001304350000000b02000029000000010220008c0000065e0000c13d000000000101004b0000065e0000c13d0000000101000039000b00000003001d000800000001001d00000000001304350000000a0100002900000509011001970000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d00000009020000290000000002020433000000010320008c0000000b05000029000004190000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000003050433000000010430008c000004190000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000400100043d00000008020000290000000000210435000004f4020000410000000003000414000004f40430009c0000000003028019000004f40410009c00000000010280190000004001100210000000c002300210000000000112019f00000531011001c70000800d0200003900000002030000390000053204000041000000c90000013d0000000001000416000000000101004b000007660000c13d000000200100003900000100001004430000012000000443000004f501000041000013ca0001042e000005000540009c000001230000213d000005040540009c000002f00000613d000005050540009c0000037d0000613d000005060440009c000007660000c13d0000000004000416000000000404004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000000010110008c000007660000213d00000000020004110000000201300190000000a60000c13d0000ffff0120008c000003aa0000213d000a00000002001d0000000000200435000000200000043f000004f4030000410000000001000414000004f40210009c0000000001038019000000c0011002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000b03000029000000000232019f000000000021041b000000400100043d00000000003104350000000002000414000004f40320009c000004f4040000410000000002048019000004f40310009c00000000010480190000004001100210000000c002200210000000000112019f00000531011001c70000800d02000039000000020300003900000543040000410000000a0500002913c913b40000040f0000000101200190000007660000613d0000000001000019000013ca0001042e000004fd0540009c000002510000613d000004fe0340009c000002bc0000613d000004ff0340009c000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000201043b0000000001000411000080070110008c000003d70000c13d0000050d01000041000000800010043f000b00000002001d000000840020043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080040200003913c913b90000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000000fb0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000000f30000413d000000000705004b0000010a0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000003e10000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200330008c000007660000413d000000800300043d000000000303004b000004770000c13d0000050a03000041000000000031043500000084032001bf00000020040000390000000000430435000000c40320003900000529040000410000000000430435000000a4022000390000001a030000390000000000320435000000400110021000000514011001c7000013cb00010430000005010540009c000003070000613d000005020340009c000003b60000613d000005030340009c000007660000c13d0000000003000416000000000303004b000007660000c13d000000040320008a000000800330008c000007660000413d0000000403100370000000000303043b000b00000003001d000005090330009c000007660000213d0000006401100370000000000101043b000005070310009c000007660000213d000000040110003913c90a2c0000040f00000001040003670000004403400370000000000303043b0000002404400370000000000404043b000000000501001900000000060200190000000b0100002900000000020400190000000004050019000000000506001913c90a460000040f000002fe0000013d000004f90540009c000001e00000613d000004fa0340009c000007660000c13d000000040320008a000000400330008c000007660000413d0000000403100370000000000303043b000a00000003001d000005070330009c000007660000213d0000000a0420006a0000050802000041000000a40340008c00000000030000190000000003024019000900000004001d0000050804400197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000007660000c13d0000002402100370000000000202043b000800000002001d000005090220009c000007660000213d00000000020004110000000b0220006c0000042b0000c13d0000000a02000029000700040020003d0000000701100360000000000201043b0000050d01000041000000800010043f000600000002001d000000840020043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080040200003913c913b90000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000018a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001820000413d000000000705004b000001990000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005ae0000613d0000001f01400039000000600110018f00000080021001bf000500000002001d000000400020043f000000200230008c000007660000413d000000800200043d000000000202004b000006760000c13d0000050a020000410000000504000029000000000024043500000084021001bf00000020030000390000000000320435000000c40210003900000529030000410000000000320435000000a4011000390000001a020000390000000000210435000000400140021000000514011001c7000013cb00010430000000040320008a000000200330008c000007660000413d0000000403100370000000000303043b000500000003001d000005070330009c000007660000213d000000050300002900000023033000390000050804000041000000000523004b000000000500001900000000050480190000050803300197000000000603004b0000000004008019000005080330009c000000000405c019000000000304004b000007660000c13d00000005030000290000000403300039000000000331034f000000000d03043b0000050703d0009c000007660000213d0000000503000029000000240e3000390000000503d002100000000003e30019000000000323004b000007660000213d000000090400008a0000000003000411000000000443016f000080070440008c0000041f0000c13d00000000040d004b000004b40000c13d0000000001000416000000000101004b000000cd0000613d000006160000013d000000040420008a000000800440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000551034f000000000505043b000a00000005001d000005070550009c000007660000213d0000002405400039000900000005001d0000000a04500029000000000224004b000007660000213d0000006401100370000000000101043b000800000001001d000000010110008c000007660000213d000000020130019000000001011002700000020d0000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000700000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000022e0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002260000413d000000000705004b0000023d0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000006240000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d000000800200043d000000070100002913c90b0d0000040f0000000002010019000700000002001d0000000b01000029000000080300002900000009040000290000000a0500002913c90f760000040f0000000701000029000002fe0000013d000000040420008a000000600440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000151034f000000000101043b000a00000001001d000005070110009c000007660000213d0000002404400039000900000004001d0000000a01400029000000000121004b000007660000213d00000002013001900000000101100270000002790000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000800000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000029a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002920000413d000000000705004b000002a90000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005cb0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d000000800200043d000000080100002913c90b0d0000040f0000000002010019000800000002001d0000000b0100002900000009030000290000000a0400002913c90b390000040f0000000801000029000002fe0000013d0000000003000416000000000303004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000005090110009c000007660000213d0000000b010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400200043d000005200320009c000003d30000213d000000000101043b0000004003200039000000400030043f000000000101041a000000ff0310018f000000010430008c000004190000213d00000000033204360000000801100270000000ff0110018f000000010410008c000004190000213d00000000001304350000000002020433000000010120008c000004190000213d0000000101000039000000000202004b000002ff0000c13d0000000b010000290000053f011001980000000001000019000007210000c13d000000010110018f000002ff0000013d0000000003000416000000000303004b000007660000c13d000000040220008a000000400220008c000007660000413d0000000402100370000000000302043b000005090230009c000007660000213d0000002401100370000000000201043b000000000103001913c90b0d0000040f0000050901100197000000400200043d0000000000120435000004f401000041000004f40320009c000000000201801900000040012002100000052c011001c7000013ca0001042e000000040420008a000000800440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000000404100370000000000404043b000a00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000551034f000000000505043b000900000005001d000005070550009c000007660000213d0000002405400039000800000005001d0000000904500029000000000224004b000007660000213d0000006401100370000000000101043b000700000001001d000000010110008c000007660000213d00000002013001900000000101100270000003370000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000600000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003580000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003500000413d000000000705004b000003670000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000006410000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d00000006010000290000000b020000290000000a030000290000000804000029000000090500002913c90a460000040f0000000002010019000a00000002001d0000000b0100002900000007030000290000000804000029000000090500002913c90f760000040f000004750000013d000000040420008a000000600440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000000404100370000000000404043b000a00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000151034f000000000101043b000900000001001d000005070110009c000007660000213d0000002404400039000800000004001d0000000901400029000000000121004b000007660000213d00000002013001900000000101100270000003a80000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000004330000c13d0000050a01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000054401000041000000c40010043f0000054501000041000000e40010043f0000054601000041000013cb000104300000000003000416000000000303004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000005090210009c000007660000213d000000c002000039000000400020043f000000800000043f000000a00000043f0000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400200043d000005410320009c000004040000413d0000053a01000041000000000010043500000041010000390000041c0000013d0000050a01000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000053e01000041000000c40010043f0000050c01000041000013cb00010430000000400200043d0000001f0430018f0000000505300272000003ee0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003e60000413d000000000604004b000003fd0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb00010430000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f000000020410008c000004190000813d00000000011204360000000803300270000000ff0330018f000000010430008c000004190000213d00000000003104350000000003020433000000010230008c000004190000213d000000400200043d00000000033204360000000001010433000000010410008c0000071a0000a13d0000053a0100004100000000001004350000002101000039000000040010043f0000051f01000041000013cb000104300000050a01000041000000800010043f0000002001000039000000840010043f0000004101000039000000a40010043f0000053301000041000000c40010043f0000053401000041000000e40010043f0000053501000041000006210000013d0000050a01000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000050b01000041000003de0000013d0000052b01000041000000800010043f0000000001000411000700000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000004520000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000044a0000413d000000000705004b000004610000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005e80000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d00000007010000290000000b020000290000000a030000290000000804000029000000090500002913c90a460000040f0000000002010019000a00000002001d0000000b010000290000000803000029000000090400002913c90b390000040f0000000a01000029000002fe0000013d0000000003000416000000000303004b000006050000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d00000024014000390000000b02000029000000000021043500000526010000410000000000140435000000040140003900008010020000390000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000a00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f0000000102200190000007680000613d0000000a01000029000005070110009c000003d30000213d0000000a01000029000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d0200003900000004030000390000800705000039000080100700003900000528040000410000000b06000029000000ca0000013d000000050500002900000000045200490000008402500039000000c30440008a00000508060000410000000007000019000000000500001900000005087002100000000008e80019000000000881034f000000000808043b000000000948004b00000000090000190000000009068019000005080a400197000005080b800197000000000cab004b000000000c000019000000000c064019000000000aab013f000005080aa0009c000000000c09c01900000000090c004b000007660000c13d0000000008820019000000000881034f000000000808043b0000000005580019000000000885004b0000000008000019000000010800403900000001088001900000080b0000c13d00000001077000390000000008d7004b000004bb0000413d0000000001000416000000000151004b000006160000c13d000405090030019b0000050808000041000000000900001900080000000d001d00070000000e001d00000005019002100000000002e100190000000101000367000000000221034f000000000202043b00000005030000290000000003300079000000c30330008a000000000432004b0000000004000019000000000408801900000508033001970000050805200197000000000635004b00000000060000190000000006084019000000000335013f000005080330009c000000000604c019000000000306004b000007660000c13d000a00000009001d0000000002e20019000900000002001d0000006002200039000000000121034f000000000101043b000600000001001d000005110100004100000000001004390000000b0100002900000004001004430000000001000414000004f40210009c000004f401008041000000c00110021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000000080d000029000000070e00002900000508080000410000000a09000029000000090b000029000007660000613d000000400a00043d000005370100004100000000001a04350000000401a000390000004002000039000000000021043500000001010003670000000002b1034f000000000202043b0000004403a0003900000000002304350000002002b00039000000000321034f000000000303043b000005090430009c000007660000213d0000006404a0003900000000003404350000002002200039000000000321034f000000000303043b000000000403004b0000000004000019000000010400c039000000000443004b000007660000c13d0000008404a0003900000000003404350000002003200039000000000331034f000000000303043b000000a404a0003900000000003404350000004002200039000000000221034f000000000202043b00000000030000310000000004b300490000001f0440008a000000000542004b0000000005000019000000000508801900000508044001970000050806200197000000000746004b00000000070000190000000007084019000000000446013f000005080440009c000000000705c019000000000407004b000007660000c13d0000000004b20019000000000241034f000000000202043b000005070520009c000007660000213d00000020044000390000000003230049000000000534004b0000000005000019000000000508201900000508033001970000050806400197000000000736004b00000000070000190000000007084019000000000336013f000005080330009c000000000705c019000000000307004b000007660000c13d000000c403a00039000000a0050000390000000000530435000000e403a000390000000000230435000000000341034f0000010401a0003900000005042002720000056b0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000005630000413d0000001f052001900000057a0000613d0000000504400210000000000343034f00000000044100190000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000340435000000000112001900000000000104350000002401a000390000000403000029000000000031043500000000010004140000000b03000029000000040330008c000005a70000613d0000001f02200039000000200300008a000000000232016f000005380320009c0000053802008041000004f403a0009c000004f40400004100090000000a001d000000000304001900000000030a401900000040033002100000006002200210000000000232019f000004f40310009c0000000001048019000000c001100210000000000112019f00000539011000410000000603000029000000000203004b0000059e0000613d00000527011001c700008009020000390000000b04000029000000000500001913c913b40000040f000005a00000013d0000000b0200002913c913b40000040f0000000102200190000000080d000029000000070e00002900000508080000410000000a09000029000000090a000029000007aa0000613d0000050701a0009c000003d30000213d0000004000a0043f00000001099000390000000001d9004b000004e00000413d000000cd0000013d000000400200043d0000001f0430018f0000000505300272000005bb0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005b30000413d000000000604004b000005ca0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000005d80000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005d00000413d000000000604004b000005e70000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000005f50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005ed0000413d000000000604004b000003fd0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000050a03000041000000000031043500000084032001bf00000020040000390000000000430435000000e40320003900000523040000410000000000430435000000c40320003900000524040000410000000000430435000000a40220003900000038030000390000000000320435000000400110021000000525011001c7000013cb000104300000050a01000041000000800010043f0000002001000039000000840010043f0000004501000039000000a40010043f0000053b01000041000000c40010043f0000053c01000041000000e40010043f0000053d01000041000001040010043f0000053601000041000013cb00010430000000400200043d0000001f0430018f0000000505300272000006310000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006290000413d000000000604004b000006400000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f00000005053002720000064e0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006460000413d000000000604004b0000065d0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400100043d00000084021000390000052d03000041000000000032043500000064021000390000052e03000041000000000032043500000044021000390000052f0300004100000000003204350000002402100039000000430300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000000400110021000000530011001c7000013cb00010430000000c002100039000000400020043f00000005020000290000000000020435000000a001100039000400000001001d000000000001043500000007010000290000002001100039000300000001001d0000000101100367000000000101043b000700000001001d000005090110009c000007660000213d00000007010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d00000005020000290000000002020433000000010320008c000004190000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000004030000290000000003030433000000010430008c000004190000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000030100002900000060021000390000000101000367000000000321034f000000000303043b0000000904000029000000230440008a0000050805000041000000000643004b0000000006000019000000000605801900000508044001970000050807300197000000000847004b0000000005008019000000000447013f000005080440009c000000000506c019000000000405004b000007660000c13d0000000a033000290000000404300039000000000441034f000000000404043b000a00000004001d000005070440009c000007660000213d0000000a04000029000000000440007900000024063000390000050803000041000000000546004b000000000500001900000000050320190000050804400197000900000006001d0000050806600197000000000746004b0000000003008019000000000446013f000005080440009c000000000305c019000000000303004b000007660000c13d000000400220008a000000000121034f000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b000007660000c13d0000000002000416000500000002001d000000000101004b000007ca0000c13d000000050100006b0000080f0000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d00000024014000390000000602000029000000000021043500000526010000410000000000140435000000040140003900000007020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f0000000102200190000008750000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d0200003900000004030000390000052804000041000000080500002900000006060000290000000707000029000000ca0000013d0000000000130435000004f401000041000004f40320009c0000000002018019000000400120021000000542011001c7000013ca0001042e000000400400043d000a00000004001d0000054001000041000000000014043500000004014000390000000b020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b90000040f0000000a0a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000007470000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000073f0000413d00000000090a0019000000000705004b000007570000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000007880000613d0000001f01400039000000600210018f0000000001920019000000000221004b00000000020000190000000102004039000005070410009c000003d30000213d0000000102200190000003d30000c13d000000400010043f000000200130008c000007a50000813d0000000001000019000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000007780000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007700000413d000000000604004b000007870000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000007950000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000078d0000413d000000000604004b000007a40000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000000001090433000000000101004b00000000010000190000000101006039000002ee0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000007ba0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007b20000413d000000000604004b000007c90000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000050100006b000008220000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d0000051501000041000000000014043500000004024000390000000701000029000400000002001d00000000001204350000000601000029000005160110019700000517011001c70000002402400039000300000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190002004000100218000000c00120021000000002011001af00000518011001c70000800202000039000100000002001d13c913b40000040f0000000102200190000008550000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000000050100006b000008030000613d000000000100041600000519011001970000000000010417000000000100041400000009030000290000000a0230002a000004f4043001970000080b0000413d0000000003000031000000000523004b000008b50000813d0000053a01000041000000000010043500000011010000390000041c0000013d000000400100043d0000006402100039000005230300004100000000003204350000004402100039000005240300004100000000003204350000002402100039000000380300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000006130000013d000005110100004100000000001004390000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000070200002900000000002104350000000b01000029000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f0000000102200190000008950000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000007cc0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008650000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000085d0000413d000000000604004b000008740000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008850000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000087d0000413d000000000604004b000008940000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008a50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000089d0000413d000000000604004b000008b40000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d00000001044003670000051a0510009c000008c70000413d0000050a010000410000000b020000290000000000120435000000200100003900000004030000290000000000130435000000080100003900000003030000290000000000130435000000440120003900000522020000410000000000210435000000020100002900000514011001c7000013cb000104300000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af0000000702000029000000080d00002913c913c30000040f00000000030100190000006003300270000004f4033001970000000102200190000009d10000613d0000003f023000390000051d02200197000000400400043d0000000002240019000b00000004001d000000000442004b00000000040000190000000104004039000005070520009c000003d30000213d0000000104400190000003d30000c13d000000400020043f0000000b0200002900000000083204360000001f023000390000000502200272000008f30000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b000008eb0000413d000900000008001d000000000200004b000008f60000613d0000001f0230018f00000005033002720000000907000029000009030000613d000000000400001900000005054002100000000006570019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000008fb0000413d000000000402004b000009120000613d0000000503300210000000000131034f00000009033000290000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f00000000001304350000051101000041000000000010043900000001020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d0000051e010000410000000000140435000000040140003900000007020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000a00000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f0000000102200190000009ec0000613d0000000a01000029000005070110009c000003d30000213d0000000a01000029000000400010043f0000000b0100002900000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000007660000c13d00000009020000290000000002020433000005070320009c000007660000213d000000090110002900000009022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b000007660000c13d0000000023020434000005070430009c000003d30000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000a04400029000005070540009c000003d30000213d000000400040043f0000000a04000029000000000034043500000006033002100000000003230019000000000413004b000007660000213d000000000432004b0000098c0000813d00000508040000410000000a050000290000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b000007660000c13d000000400600043d000005200760009c000003d30000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b000009720000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400300043d000000240130003900000040020000390000000000210435000005210100004100000000001304350000000401300039000000070200002900000000002104350000000a01000029000000000101043300000044023000390000000000120435000b00000003001d0000006402300039000000000301004b000009bb0000613d00000000030000190000000a040000290000002004400039000a00000004001d0000000004040433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000009af0000413d0000000b040000290000000001420049000004f402000041000004f40340009c000000000302001900000000030440190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f000080050200003913c913b40000040f000000010220019000000a0c0000613d000007080000013d000000000001042f0000001f0430018f0000000502300272000009dc0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000009d50000413d000000000504004b000009ea0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000009fc0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000009f40000413d000000000604004b00000a0b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000a1c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000a140000413d000000000604004b00000a2b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000001f031000390000050804000041000000000523004b0000000005000019000000000504401900000508062001970000050803300197000000000763004b000000000400a019000000000363013f000005080330009c000000000405c019000000000304004b00000a440000613d0000000103100367000000000303043b000005070430009c00000a440000213d00000020011000390000000004310019000000000224004b00000a440000213d0000000002030019000000000001042d0000000001000019000013cb00010430000300000000000200000000070004140000000008450019000000000558004b00000000050000190000000105004039000004f404400197000000010550019000000ace0000c13d0000000006000031000000000586004b00000ace0000413d000200000002001d000300000001001d000100000003001d00000001044003670000051a0570009c00000ad80000813d0000000002860049000004f40220019700000000022403df000000c0017002100000051b0110019700000547011001c700000000011203af000080100200003913c913be0000040f00000000030100190000006003300270000004f403300197000000010220019000000adf0000613d0000003f023000390000051d04200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000005070640009c00000ad20000213d000000010550019000000ad20000c13d000000400040043f00000000043204360000001f05300039000000050550027200000a810000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000a790000413d000000000500004b00000a830000613d0000001f0530018f000000050330027200000a8f0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b00000a870000413d000000000605004b00000a9e0000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000130435000000400100043d0000000002020433000000200220008c0000000305000029000000020600002900000afa0000c13d0000000002040433000000a003100039000000000023043500000080021000390000000000620435000000600210003900000001030000290000000000320435000005090250019700000040031000390000000000230435000000200210003900000549030000410000000000320435000000a00300003900000000003104350000054a0310009c00000ad20000213d000000c003100039000000400030043f000004f403000041000004f40420009c000000000203801900000040022002100000000001010433000004f40410009c00000000010380190000006001100210000000000121019f0000000002000414000004f40420009c0000000002038019000000c002200210000000000112019f00000527011001c7000080100200003913c913b90000040f000000010220019000000b0b0000613d000000000101043b0000050901100197000000000001042d0000053a010000410000000000100435000000110100003900000ad50000013d0000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000400100043d0000004402100039000005220300004100000000003204350000002402100039000000080300003900000aff0000013d0000001f0430018f000000050230027200000aea0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ae30000413d000000000504004b00000af80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb0001043000000044021000390000054803000041000000000032043500000024021000390000001f0300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000000400110021000000514011001c7000013cb000104300000000001000019000013cb00010430000000400300043d00000060043000390000000000240435000005090110019700000040023000390000000000120435000000600100003900000000011304360000054b0200004100000000002104350000054c0230009c00000b310000813d0000008002300039000000400020043f000004f402000041000004f40410009c000000000102801900000040011002100000000003030433000004f40430009c00000000030280190000006003300210000000000113019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000112019f00000527011001c7000080100200003913c913b90000040f000000010220019000000b370000613d000000000101043b0000050901100197000000000001042d0000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb000104300000000001000019000013cb000104300009000000000002000500000003001d000000400500043d0000000403500039000800000001001d000000000101004b00000e050000613d000400000004001d000300000002001d00000509012001970000ffff0210008c00000e150000a13d0000054d020000410000000000250435000900000001001d0000000000130435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40350009c00000000010540190000004001100210000000c002200210000000000112019f0000051f011001c70000800202000039000600000002001d000700000005001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000b6a0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b620000413d000000000705004b00000b790000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e280000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005070240009c00000df60000213d000000010110019000000df60000c13d000000400040043f0000001f0130008c00000df40000a13d000000040140003900000000020a0433000000000202004b00000e450000c13d0000054f02000041000000000024043500000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800302000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bb00000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000ba80000413d000000000705004b00000bbf0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e4f0000613d0000001f01400039000000600110018f0000000004a10019000005070140009c00000df60000213d000000400040043f000000200130008c00000df40000413d000000040140003900000000020a0433000000000202004b00000e6c0000c13d0000050d02000041000000000024043500000008020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800402000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bf10000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000be90000413d000000000705004b00000c000000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e760000613d0000001f01400039000000600110018f0000000004a10019000005070140009c00000df60000213d000000400040043f000000200130008c00000df40000413d00000000010a0433000000000101004b00000e930000613d000005200140009c00000df60000213d0000004001400039000000400010043f0000000001040436000200000001001d000000000001043500000009010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c70000801002000039000700000004001d13c913b90000040f0000000703000029000000010220019000000df40000613d0000000002030433000000020320008c00000dfd0000813d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000002030000290000000003030433000000010430008c00000dfd0000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000000100041600000511020000410000000000200439000000000101004b00000c9f0000613d0000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c70000800202000039000700000002001d13c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000090200002900000000002104350000000001000410000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f000000010220019000000f100000613d0000000202000029000005070120009c00000df60000213d000000400020043f0000051101000041000000000010043900000007020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000200000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f000000010220019000000f300000613d0000000706000029000005070160009c00000df60000213d000000400060043f00000000010004160000051901100197000000000001041700000ccd0000013d00000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000200000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f000000010220019000000f500000613d0000000706000029000005070160009c00000df60000213d000000400060043f000000000100041400000005040000290000000402400029000000040320006c00000000030000190000000103004039000004f404400197000000010330019000000e010000c13d0000000003000031000000000523004b00000e010000413d00000001044003670000051a0510009c00000ea40000813d00000000050004110000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af000400000005001d000005090d500197000000030200002913c913c30000040f00000000030100190000006003300270000004f403300197000000010220019000000eb50000613d0000003f023000390000051d02200197000000400600043d0000000002260019000000000462004b00000000040000190000000104004039000005070520009c00000df60000213d000000010440019000000df60000c13d000000400020043f000500000006001d00000000083604360000001f02300039000000050220027200000d090000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b00000d010000413d000000000200004b00000d0b0000613d0000001f0230018f000000050330027200000d170000613d000000000400001900000005054002100000000006580019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b00000d0f0000413d000000000402004b00000d260000613d0000000503300210000000000131034f00000000033800190000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f0000000000130435000700000008001d0000051101000041000000000010043900000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051e010000410000000000140435000000040140003900000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f000000010220019000000ed00000613d0000000609000029000005070190009c000000050100002900000df60000213d000000400090043f00000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b00000df40000c13d00000007020000290000000002020433000005070320009c00000df40000213d000000070110002900000007022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b00000df40000c13d0000000023020434000005070430009c00000df60000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005070540009c00000df60000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b00000df40000213d000000000432004b00000d9f0000813d000005080400004100000000050900190000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b00000df40000c13d000000400600043d000005200760009c00000df60000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b00000d850000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b000000060600002900000df40000613d000000400700043d000000240170003900000040020000390000000000210435000005210100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b00000dcb0000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b00000dc10000413d0000000001720049000004f402000041000004f40370009c000000000302001900000000030740190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f0000800502000039000700000007001d13c913b40000040f000000010220019000000ef00000613d0000000702000029000005070120009c000000000102001900000df60000213d000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d020000390000000403000039000005280400004100000004050000290000000806000029000000090700002913c913b40000040f000000010120019000000df40000613d000000000001042d0000000001000019000013cb000104300000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000000001042f0000053a010000410000000000100435000000210100003900000df90000013d0000053a010000410000000000100435000000110100003900000df90000013d0000050a0200004100000000002504350000002002000039000000000023043500000044015000390000055302000041000000000021043500000024015000390000001b020000390000000000210435000004f401000041000004f40250009c0000000005018019000000400150021000000514011001c7000013cb000104300000050a02000041000000000025043500000020020000390000000000230435000000640150003900000551020000410000000000210435000000440150003900000552020000410000000000210435000000240150003900000028020000390000000000210435000004f401000041000004f40250009c0000000005018019000000400150021000000525011001c7000013cb00010430000000400200043d0000001f0430018f000000050530027200000e350000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e2d0000413d000000000604004b00000f6f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000054e0200004100000000002104350000002401400039000000150200003900000e9d0000013d000000400200043d0000001f0430018f000000050530027200000e5c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e540000413d000000000604004b00000e6b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d0000050a020000410000000000240435000000200200003900000000002104350000004401400039000005500200004100000000002104350000002401400039000000130200003900000e9d0000013d000000400200043d0000001f0430018f000000050530027200000e830000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e7b0000413d000000000604004b00000e920000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d00000044014000390000052902000041000000000021043500000024014000390000001a0200003900000000002104350000050a010000410000000000140435000000040140003900000020020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000514011001c7000013cb000104300000050a010000410000000000160435000000200100003900000002020000290000000000120435000000080100003900000001020000290000000000120435000000440160003900000522020000410000000000210435000004f401000041000004f40260009c0000000006018019000000400160021000000514011001c7000013cb000104300000001f0430018f000000050230027200000ec00000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000eb90000413d000000000504004b00000ece0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000ee00000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000ed80000413d000000000604004b00000eef0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f000000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000ef80000413d000000000604004b00000f0f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f200000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f180000413d000000000604004b00000f2f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f400000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f380000413d000000000604004b00000f4f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f600000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f580000413d000000000604004b00000f6f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb000104300009000000000002000300000005001d000400000004001d000500000003001d000000400400043d0000000403400039000800000001001d000000000101004b000012480000613d000200000002001d00000509012001970000ffff0210008c000012520000a13d0000054d020000410000000000240435000900000001001d0000000000130435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800202000039000600000002001d000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000fa80000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000fa00000413d000000000705004b00000fb70000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000012650000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005070240009c000012390000213d0000000101100190000012390000c13d000000400040043f0000001f0130008c000012370000a13d000000040140003900000000020a0433000000000202004b000012820000c13d0000054f02000041000000000024043500000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800302000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000fee0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000fe60000413d000000000705004b00000ffd0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000128c0000613d0000001f01400039000000600110018f0000000004a10019000005070140009c000012390000213d000000400040043f000000200130008c000012370000413d000000040140003900000000020a0433000000000202004b000012a90000c13d0000050d02000041000000000024043500000008020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800402000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000102f0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000010270000413d000000000705004b0000103e0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000012b30000613d0000001f01400039000000600110018f0000000004a10019000005070140009c000012390000213d000000400040043f000000200130008c000012370000413d00000000010a0433000000000101004b000012d00000613d000005200140009c000012390000213d0000004001400039000000400010043f000000000304043600000000000304350000000502000029000000020120008c000012400000813d0000000000240435000500000003001d000000000003043500000009010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c70000801002000039000700000004001d13c913b90000040f00000007030000290000000102200190000012370000613d0000000002030433000000010320008c0000000505000029000012400000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000003050433000000010430008c000012400000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000000100041600000511020000410000000000200439000000000101004b000010e20000613d0000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c70000800202000039000700000002001d13c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000090200002900000000002104350000000001000410000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f00000001022001900000134d0000613d0000000502000029000005070120009c000012390000213d000000400020043f0000051101000041000000000010043900000007020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000500000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f00000001022001900000136d0000613d0000000706000029000005070160009c000012390000213d000000400060043f000000000100041600000519011001970000000000010417000011100000013d00000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000500000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f00000001022001900000138d0000613d0000000706000029000005070160009c000012390000213d000000400060043f000000000100041400000004040000290000000302400029000000030320006c00000000030000190000000103004039000004f4044001970000000103300190000012440000c13d0000000003000031000000000523004b000012440000413d00000001044003670000051a0510009c000012e10000813d00000000050004110000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af000400000005001d000005090d500197000000020200002913c913c30000040f00000000030100190000006003300270000004f4033001970000000102200190000012f20000613d0000003f023000390000051d02200197000000400600043d0000000002260019000000000462004b00000000040000190000000104004039000005070520009c000012390000213d0000000104400190000012390000c13d000000400020043f000500000006001d00000000083604360000001f0230003900000005022002720000114c0000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b000011440000413d000000000200004b0000114e0000613d0000001f0230018f00000005033002720000115a0000613d000000000400001900000005054002100000000006580019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000011520000413d000000000402004b000011690000613d0000000503300210000000000131034f00000000033800190000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f0000000000130435000700000008001d0000051101000041000000000010043900000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051e010000410000000000140435000000040140003900000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f00000001022001900000130d0000613d0000000609000029000005070190009c0000000501000029000012390000213d000000400090043f00000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000012370000c13d00000007020000290000000002020433000005070320009c000012370000213d000000070110002900000007022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b000012370000c13d0000000023020434000005070430009c000012390000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005070540009c000012390000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000012370000213d000000000432004b000011e20000813d000005080400004100000000050900190000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b000012370000c13d000000400600043d000005200760009c000012390000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b000011c80000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b0000000606000029000012370000613d000000400700043d000000240170003900000040020000390000000000210435000005210100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b0000120e0000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000012040000413d0000000001720049000004f402000041000004f40370009c000000000302001900000000030740190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f0000800502000039000700000007001d13c913b40000040f00000001022001900000132d0000613d0000000702000029000005070120009c0000000001020019000012390000213d000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d020000390000000403000039000005280400004100000004050000290000000806000029000000090700002913c913b40000040f0000000101200190000012370000613d000000000001042d0000000001000019000013cb000104300000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000000001042f0000053a01000041000000000010043500000021010000390000123c0000013d0000053a01000041000000000010043500000011010000390000123c0000013d0000050a0200004100000000002404350000002002000039000000000023043500000044014000390000055302000041000000000021043500000024014000390000001b02000039000012da0000013d0000050a02000041000000000024043500000020020000390000000000230435000000640140003900000551020000410000000000210435000000440140003900000552020000410000000000210435000000240140003900000028020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000525011001c7000013cb00010430000000400200043d0000001f0430018f0000000505300272000012720000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000126a0000413d000000000604004b000013ac0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000054e02000041000000000021043500000024014000390000001502000039000012da0000013d000000400200043d0000001f0430018f0000000505300272000012990000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000012910000413d000000000604004b000012a80000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000055002000041000000000021043500000024014000390000001302000039000012da0000013d000000400200043d0000001f0430018f0000000505300272000012c00000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000012b80000413d000000000604004b000012cf0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d00000044014000390000052902000041000000000021043500000024014000390000001a0200003900000000002104350000050a010000410000000000140435000000040140003900000020020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000514011001c7000013cb000104300000050a010000410000000000160435000000200100003900000005020000290000000000120435000000080100003900000001020000290000000000120435000000440160003900000522020000410000000000210435000004f401000041000004f40260009c0000000006018019000000400160021000000514011001c7000013cb000104300000001f0430018f0000000502300272000012fd0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000012f60000413d000000000504004b0000130b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000131d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013150000413d000000000604004b0000132c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000133d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013350000413d000000000604004b0000134c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000135d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013550000413d000000000604004b0000136c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000137d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013750000413d000000000604004b0000138c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000139d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013950000413d000000000604004b000013ac0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb00010430000000000001042f000013b7002104210000000102000039000000000001042d0000000002000019000000000001042d000013bc002104230000000102000039000000000001042d0000000002000019000000000001042d000013c1002104230000000102000039000000000001042d0000000002000019000000000001042d000000000f0d0019000013c7002104290000000102000039000000000001042d0000000002000019000000000001042d000013c900000432000013ca0001042e000013cb00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000009c4d535a00000000000000000000000000000000000000000000000000000000e9f18c1600000000000000000000000000000000000000000000000000000000ecf95b8900000000000000000000000000000000000000000000000000000000ecf95b8a00000000000000000000000000000000000000000000000000000000f3385fb600000000000000000000000000000000000000000000000000000000e9f18c1700000000000000000000000000000000000000000000000000000000ec8067c7000000000000000000000000000000000000000000000000000000009c4d535b00000000000000000000000000000000000000000000000000000000bb0fd61000000000000000000000000000000000000000000000000000000000da37f07f000000000000000000000000000000000000000000000000000000005d3826ff000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000007b510fe80000000000000000000000000000000000000000000000000000000084da1fb400000000000000000000000000000000000000000000000000000000187598a5000000000000000000000000000000000000000000000000000000003cda33510000000000000000000000000000000000000000000000000000000057180981000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792073656c66000000000000000000000000000000000000000000000000000000000000640000008000000000000000004c6314f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000579952fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0c2e4ff97000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbfad7e232e000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000006e6f742063616c6c2074686520636f6e7374727563746f7200000000000000005468652076616c7565206d757374206265207a65726f20696620776520646f2000000000000000000000000000000000000000840000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e554686520636f64652068617368206973206e6f74206b6e6f776e0000000000000000000000000000000000000000000000000000000000000000000000010000306395c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000696e6700000000000000000000000000000000000000000000000000000000006f6d2073657175656e7469616c20746f20617262697472617279206f726465724974206973206f6e6c7920706f737369626c6520746f206368616e676520667200000000000000000000000000000000000000a40000000000000000000000000200000000000000000000000000000000000020000000000000000000000000c7544194dab38b1652f35439b9b4806d8b71e113f2cf5c1351cb2ecf7c83959a43616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f594552206f7220434f4d504c45585f55504752414445525f434f4e54524143540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000800000000000000000f3385fb60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffefb00000000000000000000000000000000000001040000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000006076616c7565602070726f7669646564206973206e6f7420657175616c20746f2074686520636f6d62696e6564206076616c75656073206f66206465706c6f796d656e7473000000000000000000000000000000000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff00004de2e46800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000400000000000000000000000003fb6f4f15ddd4a75588ca934894ad2cdcab25a5012e2515e1783433d0128611a54686973206d6574686f6420726571756972652073797374656d2063616c6c20666c616700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000001000000000000000000000000000000000000000000000000000000006b656363616b3235362072657475726e656420696e76616c69642064617461002020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494000000000000000000000000000000000000000000000000ffffffffffffff3f63bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23000000000000000000000000000000000000000000000000ffffffffffffff80e03fe17700000000000000000000000000000000000000000000000000000000436f64652068617368206973206e6f6e2d7a65726f00000000000000000000005aa9b6b5000000000000000000000000000000000000000000000000000000004163636f756e74206973206f6363757069656400000000000000000000000000656c20737061636500000000000000000000000000000000000000000000000043616e206e6f74206465706c6f7920636f6e74726163747320696e206b65726e42797465636f6465486173682063616e6e6f74206265207a65726f0000000000158bafccd92e72ef3131795a8537d8b203e1379bcb77bd4de4eadb50996ea74d", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/DefaultAccount.json b/src/deps/contracts/DefaultAccount.json index 42e74032..8ee74830 100644 --- a/src/deps/contracts/DefaultAccount.json +++ b/src/deps/contracts/DefaultAccount.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "DefaultAccount", - "sourceName": "cache-zk/solpp-generated-contracts/DefaultAccount.sol", + "sourceName": "contracts-preprocessed/DefaultAccount.sol", "abi": [ { "stateMutability": "payable", @@ -539,8 +539,8 @@ "type": "receive" } ], - "bytecode": "0x0004000000000002000b00000000000200000000030100190000006003300270000005fe0430019700030000004103550002000000010355000005fe0030019d000100000000001f0000008005000039000000400050043f0000000101200190000000390000c13d0000000002000031000000040120008c000000410000413d0000000201000367000000000301043b000000e003300270000006000430009c000000450000a13d000006010430009c000000a90000613d000006020430009c000000ea0000613d000006030330009c000000a60000c13d000000040220008a0000060603000041000000200420008c000000000400001900000000040340190000060605200197000000000605004b000000000300a019000006060550009c000000000304c019000000000303004b0000010d0000c13d0000000401100370000000000101043b000006070310009c0000010d0000213d00000000011200490000060602000041000002600310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b000000430000613d0000010d0000013d0000000001000416000000000101004b0000010d0000c13d000000200100003900000100001004430000012000000443000005ff01000041000017f50001042e000000000102004b000000a60000c13d0000000001000019000017f50001042e000006040430009c000000eb0000613d000006050330009c000000a60000c13d000000040320008a0000060604000041000000600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000303043b000006070430009c0000010d0000213d000000040530003900000000045200490000060606000041000002600740008c000000000700001900000000070640190000060604400197000000000804004b000000000600a019000006060440009c00000000040700190000000004066019000000000404004b0000010d0000c13d0000000004000411000080010440008c000000430000c13d000000000400041200000608064001970000000004000410000000000646004b000000430000c13d0000022406300039000000000661034f0000000007320049000000230770008a000000000606043b0000060608000041000000000976004b000000000900001900000000090880190000060607700197000006060a600197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005560019000000000651034f000000000606043b000006070760009c0000010d0000213d000000000762004900000020025000390000060608000041000000000972004b000000000900001900000000090820190000060607700197000006060a200197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d000000030760008c000002230000213d0000061401000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000062c01000041000000c40010043f0000062d01000041000000e40010043f0000062b01000041000017f60001043017f417cf0000040f0000000001000019000017f50001042e000000040320008a0000060604000041000000600630008c000000000600001900000000060440190000060603300197000000000703004b000000000400a019000006060330009c00000000030600190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000703043b000006070370009c0000010d0000213d000000040670003900000000036200490000060604000041000002600830008c000000000800001900000000080440190000060603300197000000000903004b000000000400a019000006060330009c00000000030800190000000003046019000000000303004b0000010d0000c13d0000000003000411000080010330008c000000430000c13d000000000300041200000608033001970000000004000410000000000343004b000000430000c13d0000012403700039000000000331034f0000004404700039000000000441034f000000000404043b0000060804400197000000000303043b000006090830009c000001310000413d00000044015000390000061302000041000000000021043500000024015000390000000802000039000000000021043500000614010000410000000000150435000000040150003900000020020000390000000000210435000005fe01000041000005fe0250009c0000000001054019000000400110021000000615011001c7000017f60001043017f417470000040f000000040320008a0000060604000041000000600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000303043b000b00000003001d000006070330009c0000010d0000213d0000000b030000290000000403300039000a00000003001d00000000023200490000060603000041000002600420008c000000000400001900000000040340190000060602200197000000000502004b000000000300a019000006060220009c00000000020400190000000002036019000000000202004b0000010f0000613d0000000001000019000017f6000104300000002401100370000000000101043b000900000001001d0000000001000411000080010110008c000000430000c13d000000000100041200000608011001970000000002000410000800000002001d000000000121004b000000430000c13d0000000002000414000000400100043d00000020031000390000062e0400004100000000004304350000000b030000290000010403300039000700000003001d0000000203300367000000000303043b00000024041000390000000000340435000000240300003900000000003104350000062f0310009c0000015e0000413d000006550100004100000000001004350000004101000039000000040010043f0000065601000041000017f600010430000001c405700039000000000551034f0000000007720049000000230770008a000000000505043b0000060608000041000000000975004b000000000900001900000000090880190000060607700197000006060a500197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005650019000000000151034f000000000601043b000006070160009c0000010d0000213d000000000162004900000020025000390000060605000041000000000712004b0000000007000019000000000705201900000606011001970000060608200197000000000918004b0000000005008019000000000118013f000006060110009c00000000010700190000000001056019000000000101004b0000010d0000c13d00000000010004140000060a0510009c000002360000413d000000400500043d000000d90000013d0000006003100039000000400030043f00000000040104330000060a0540009c000001740000413d00000614020000410000000000230435000000a40210003900000613040000410000000000420435000000840210003900000008040000390000000000420435000000640110003900000020020000390000000000210435000005fe01000041000005fe0230009c0000000001034019000000400110021000000615011001c7000017f600010430000000c0022002100000061002200197000000400110021000000630011000410000063101100197000000000112019f00000060024002100000063202200197000000000121019f00000633011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001917f417e00000040f00030000000103550000006001100270000105fe0010019d000005fe041001970000003f014000390000063405100197000000400100043d0000000003150019000000000553004b00000000050000190000000105004039000006070630009c0000012b0000213d00000001055001900000012b0000c13d000000400030043f00000000034104360000001f054000390000000505500272000001a30000613d00000000060000310000000206600367000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000019b0000413d000000000500004b000001a50000613d0000000105000031000000000554004b0000010d0000213d00000003060003670000001f0540018f0000000504400272000001b50000613d000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000001ad0000413d000000000705004b000001c40000613d0000000504400210000000000646034f00000000044300190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000102200190000002640000613d0000000901000029000000000101004b000012940000c13d00000002010003670000000a02000029000000000221034f000000000202043b000000000302004b000002be0000c13d0000000702000029000000000121034f000000000101043b000000800210008c000003240000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f000000020320003900000009040000290000000003340436000000210420003900000005044002720000020e0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000002060000413d000000000400004b000002100000613d00000009040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063b0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000902000029000000210220003900000000001204350000047b0000013d000000000221034f000000000202043b0000060b02200197000006160720009c0000026e0000c13d000000430260008c000002a00000213d0000061401000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000062901000041000000c40010043f0000062a01000041000000e40010043f0000062b01000041000017f6000104300000000207000367000080060540008c00000000050000190000024b0000c13d000000040560008c00000000050000190000024b0000413d000000000827034f0000000105000039000000000808043b0000060b088001970000060c0980009c0000024a0000613d0000060d0980009c0000024a0000613d0000060e0980009c0000024a0000613d0000060f0580009c00000000050000190000000105006039000000010550018f0000000008260019000005fe02200197000000000227034f000000000703004b0000027a0000c13d000000000368004b000012b00000413d0000000003000031000000000683004b000012b00000413d00000611060000410000061207000041000000000505004b00000000050600190000000005076019000000c0011002100000061001100197000000000115019f0000000003830049000005fe0330019700000000023203df00000000011203af000000000204001917f417ea0000040f000002890000013d0000000001010433000005fe02000041000005fe0410009c0000000001028019000005fe0430009c000000000203401900000040022002100000006001100210000000000121019f000017f600010430000006170120009c000000430000613d0000061401000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000061801000041000000c40010043f0000061901000041000017f600010430000000000668004b000012b00000413d0000000006000031000000000786004b000012b00000413d0000000006860049000005fe0660019700000000026203df000000c001100210000006100110019700000611011001c700000000011203af0000800902000039000000000600001917f417ea0000040f000300000001035500000000030100190000006003300270000105fe0030019d000005fe033001970000000102200190000003090000613d17f417c20000040f0000000002010019000000400100043d000b00000001001d17f417310000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f50001042e0000002402500039000000000221034f000000000202043b000b00000002001d000006080220009c0000010d0000213d000000e402300039000000000221034f0000004403500039000000000131034f000000000101043b000a00000001001d000000000102043b0000061a02000041000000800020043f0000060802400197000800000002001d000000840020043f0000060801100197000900000001001d000000a40010043f00000000010004140000000b02000029000000040220008c0000039d0000c13d0000000103000031000000200130008c00000020040000390000000004034019000003c90000013d000000710320008c000003410000c13d000000230200008a0000000b030000290000000004320049000001c402300039000000000221034f000000000302043b0000000002000031000900000004001d00000000044200190000060605000041000000000643004b0000000006000019000000000605801900000606044001970000060607300197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000003430019000000000131034f000000000101043b000006070410009c0000010d0000213d000000000212004900000020033000390000060604000041000000000523004b0000000005000019000000000504201900000606022001970000060606300197000000000726004b0000000004008019000000000226013f000006060220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005fe04300197000012b00000413d0000000003000031000000000513004b000012b00000413d00000002044003670000060a0520009c000007d60000413d000000400100043d00000044021000390000061303000041000000000032043500000024021000390000000803000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f6000104300000001f0430018f0000000502300272000003140000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000030d0000413d000000000504004b000003220000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000000400200043d000900000002001d000006380220009c0000012b0000213d00000009030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000003300000413d00000009030000290000000003030433000000000303004b000004720000c13d000006550100004100000000001004350000003201000039000000040010043f0000065601000041000017f600010430000000020120008c000003f00000c13d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005ad0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000038a0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003820000413d000000000500004b0000038c0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000005ca0000013d000005fe02000041000005fe0310009c0000000001028019000000c0011002100000061b011001c70000000b0200002917f417e50000040f00000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003ae0000413d000000000705004b000003c50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000044c0000613d0000001f01400039000000600410018f00000080014001bf000000400010043f000000200230008c0000010d0000413d000000800200043d0000000a03000029000000000232004b000000430000813d000000a0024000390000061c030000410000000000320435000000a40340003900000009050000290000000000530435000000c40340003900000000000304350000004403000039000400000003001d00000000003104350000014003400039000000400030043f00000120034000390000061d05000041000000000053043500000100044001bf0000002003000039000600000003001d000500000004001d0000000000340435000000000301043300000000010004140000000b04000029000000040440008c0000054c0000c13d000000010200003900000001010000310000055d0000013d000000010120008c000004cc0000c13d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000201043b000000800120008c0000063f0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004390000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000004310000413d000000000500004b0000043b0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000065c0000013d000000400200043d0000001f0430018f0000000503300272000004590000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004510000413d000000000504004b000004680000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000f8031002100000060604000041000000000101004b0000000001030019000000000104601900000000030204330000063903300197000000000113019f00000000001204350000000b01000029000000a4011000390000000201100367000000000201043b000000800120008c000004de0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004b90000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000004b10000413d000000000500004b000004bb0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000004fb0000013d000000400100043d00000044021000390000063503000041000000000032043500000024021000390000001703000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000004e80000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f00000000002304350000000b0200002900000064022000390000000202200367000000000302043b000000800230008c000006ac0000413d00000080023002700000063a0430009c000000000203a0190000063a0430009c0000000004000019000000100400203900000008054001bf000006070620009c00000000040520190000004005200270000006070620009c000000000205201900000004054001bf000005fe0620009c00000000040520190000002005200270000005fe0620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000005390000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005310000413d000000000600004b0000053b0000613d0000000006020433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000006c90000013d000005fe04000041000005fe0530009c000000000304801900000060033002100000004002200210000000000223019f000005fe0310009c0000000001048019000000c001100210000000000112019f0000000b0200002917f417e00000040f000000010220018f00030000000103550000006001100270000105fe0010019d000005fe011001970000006003000039000700000003001d000000000301004b0000057d0000c13d00000007010000290000000031010434000300000003001d000000000202004b0000061a0000c13d000000000201004b0000075d0000c13d000000400300043d000b00000003001d000006140100004100000000001304350000000401300039000000060200002900000000002104350000002402300039000000050100002917f4171e0000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f600010430000006070310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000007030000290000000001130436000000030300036700000001050000310000001f0450018f00000005055002720000059d0000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000005950000413d000000000604004b000005610000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000005610000013d000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005b70000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f000000000023043500000007020000290000000202200367000000000302043b000000800230008c000007680000413d00000080023002700000063a0430009c000000000203a0190000063a0430009c0000000004000019000000100400203900000008054001bf000006070620009c00000000040520190000004005200270000006070620009c000000000205201900000004054001bf000005fe0620009c00000000040520190000002005200270000005fe0620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000006070000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005ff0000413d000000000600004b000006090000613d0000000006020433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000007850000013d000000000201004b00000a320000c13d0000061e0100004100000000001004390000000b010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c7000080020200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000000101004b00000a2e0000c13d000000400100043d00000044021000390000062803000041000000000032043500000024021000390000001d03000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000006490000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f000000000023043500000007020000290000000202200367000000000202043b000000800320008c000009c00000413d00000080032002700000063a0420009c000000000302a0190000063a0420009c0000000004000019000000100400203900000008054001bf000006070630009c00000000040520190000004005300270000006070630009c000000000305201900000004054001bf000005fe0630009c00000000040520190000002005300270000005fe0630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000006990000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000006910000413d000000000600004b0000069b0000613d0000000006030433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000009dd0000013d000000400200043d000006380420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006b60000413d0000000005020433000000000505004b0000033b0000613d000000f8053002100000060606000041000000000303004b0000000003050019000000000306601900000000050404330000063905500197000000000335019f0000000000340435000000400300043d000700000003001d00000020043000390000000003010433000000000503004b000006d70000613d000000000500001900000000064500190000002005500039000000000715001900000000070704330000000000760435000000000635004b000006d00000413d000000000143001900000000000104350000000004020433000000000504004b000006e40000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b000006dd0000413d000000000114001900000000000104350000000001340019000000070300002900000000001304350000003f01100039000000200200008a000300000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000600000002001d000006070220009c0000012b0000213d00000001011001900000012b0000c13d0000000601000029000000400010043f000006380110009c0000012b0000213d0000000b0400002900000044014000390000000201100367000000000101043b00000006050000290000004002500039000000400020043f00000020025000390000063c0300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c00000bcd0000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000304000029000000000343016f000000400400043d0000000003340019000500000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000002032000390000000504000029000000000334043600000021042000390000000504400272000007480000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000007400000413d000000000400004b0000074a0000613d00000005040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063b0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000005020000290000002102200039000000000012043500000bed0000013d000005fe020000410000000304000029000005fe0340009c00000000030200190000000003044019000005fe0410009c000000000102801900000060011002100000004002300210000000000121019f000017f600010430000000400200043d000006380420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007720000413d0000000005020433000000000505004b0000033b0000613d000000f8053002100000060606000041000000000303004b0000000003050019000000000306601900000000050404330000063905500197000000000335019f00000000003404350000000b03000029000000c4033000390000000203300367000000000303043b000000800430008c00000a6f0000413d00000080043002700000063a0530009c000000000403a0190000063a0530009c0000000005000019000000100500203900000008065001bf000006070740009c00000000050620190000004006400270000006070740009c000000000406201900000004065001bf000005fe0740009c00000000050620190000002006400270000005fe0740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000006070860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007c30000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000007bb0000413d000000000700004b000007c50000613d0000000007040433000000000707004b0000033b0000613d00000000070604330000063907700197000000f808500210000000000778019f0000063b0770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105400039000000000035043500000a8c0000013d0000000001130049000005fe0110019700000000011403df000000c002200210000006100220019700000612022001c700000000012103af000080100200003917f417ef0000040f00000000030100190000006003300270000105fe0030019d000005fe033001970003000000010355000000010220019000000add0000613d0000003f013000390000063401100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000008010000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000007f90000413d000000000400004b000008030000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008130000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000080b0000413d000000000604004b000008220000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ce40000c13d0000000004000031000000090200002900000000052400190000000b0200002900000204032000390000000202000367000000000332034f000000000303043b0000060606000041000000000753004b0000000007000019000000000706801900000606055001970000060608300197000000000958004b0000000006008019000000000558013f000006060550009c00000000050700190000000005066019000000000505004b0000010d0000c13d0000000001010433000600000001001d0000000a010000290000000001130019000000000312034f000000000503043b000006070350009c0000010d0000213d0000000503500210000000000434004900000020061000390000060601000041000000000746004b0000000007000019000000000701201900000606044001970000060608600197000000000948004b0000000001008019000000000448013f000006060440009c000000000107c019000000000101004b0000010d0000c13d000000400100043d00000020041000390000064105500198000008610000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000008590000413d000000000200004b000008630000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b00000000030000190000000103004039000006070520009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f000005fe02000041000005fe0340009c0000000003020019000000000304401900000040033002100000000001010433000005fe0410009c00000000010280190000006001100210000000000131019f0000000003000414000005fe0430009c0000000002034019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d0000000002000031000000090300002900000000053200190000000b0300002900000224043000390000000203000367000000000443034f000000000404043b0000060606000041000000000754004b0000000007000019000000000706801900000606055001970000060608400197000000000958004b0000000006008019000000000558013f000006060550009c00000000050700190000000005066019000000000101043b000900000001001d000000000105004b0000010d0000c13d0000000a010000290000000004140019000000000143034f000000000101043b000006070310009c0000010d0000213d000000000212004900000020034000390000060604000041000000000523004b0000000005000019000000000504201900000606022001970000060606300197000000000726004b0000000004008019000000000226013f000006060220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005fe04300197000012b00000413d0000000003000031000000000513004b000012b00000413d0000000204400367000005fe0520009c000002f70000213d0000000001130049000005fe0110019700000000011403df000000c002200210000006100220019700000612022001c700000000012103af000080100200003917f417ef0000040f00000000030100190000006003300270000105fe0030019d000005fe03300197000300000001035500000001022001900000157d0000613d0000003f013000390000063401100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000008e70000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000008df0000413d000000000400004b000008e90000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008f90000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000008f10000413d000000000604004b000009080000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ce40000c13d0000000b0a0000290000006402a000390000000203000367000000000523034f0000004402a00039000000000423034f0000002402a00039000000000623034f0000008402a00039000000a407a00039000000c408a00039000000e409a00039000001240aa00039000000000aa3034f000000070b000029000000000bb3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000a02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000b0b043b000000000a0a043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c100039000000090d0000290000000000dc0435000001800c100039000000060d0000290000000000dc0435000001600c1000390000000000ac0435000001400a1000390000000000ba0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000643030000410000000000320435000001c0030000390000000000310435000006440310009c0000012b0000213d000001e003100039000000400030043f000005fe03000041000005fe0420009c000000000203801900000040022002100000000001010433000005fe0410009c00000000010380190000006001100210000000000121019f0000000002000414000005fe0420009c0000000002038019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000700000001001d000000400100043d000900000001001d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d00000009040000290000002002400039000000000101043b000006450300004100000000003204350000008003400039000000000013043500000060014000390000064603000041000000000031043500000040014000390000064703000041000000000031043500000080010000390000000000140435000006480140009c0000012b0000213d0000000904000029000000a001400039000000400010043f000005fe01000041000005fe0320009c000000000201801900000040022002100000000003040433000005fe0430009c00000000030180190000006003300210000000000223019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000301043b000000400100043d0000004202100039000000070400002900000000004204350000002002100039000006490400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000006240310009c0000012b0000213d0000008003100039000000400030043f000005fe03000041000005fe0420009c000000000203801900000040022002100000000001010433000005fe0410009c00000000010380190000006001100210000000000121019f0000000002000414000005fe0420009c0000000002038019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d000000400300043d000006380430009c0000012b0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000009ca0000413d0000000005030433000000000505004b0000033b0000613d000000f8052002100000060606000041000000000202004b0000000002050019000000000206601900000000050404330000063905500197000000000225019f00000000002404350000000b02000029000000a4022000390000000202200367000000000202043b000000800420008c00000b5f0000413d00000080042002700000063a0520009c000000000402a0190000063a0520009c0000000005000019000000100500203900000008065001bf000006070740009c00000000050620190000004006400270000006070740009c000000000406201900000004065001bf000005fe0740009c00000000050620190000002006400270000005fe0740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000006070860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200000a1b0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000a130000413d000000000700004b00000a1d0000613d0000000007040433000000000707004b0000033b0000613d00000000070604330000063907700197000000f808500210000000000778019f0000063b0770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500000b7c0000013d00000007010000290000000001010433000000000201004b00000a5c0000613d0000060602000041000000200310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000003010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a5c0000c13d000000400100043d00000064021000390000062603000041000000000032043500000044021000390000062703000041000000000032043500000024021000390000002a03000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000000400300043d0000002401300039000000090200002900000000002104350000061a010000410000000000130435000700000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040220008c00000af80000c13d0000000103000031000000200130008c0000002004000039000000000403401900000b2b0000013d000000400400043d000006380540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000a790000413d0000000006040433000000000606004b0000033b0000613d000000f8063002100000060607000041000000000303004b0000000003060019000000000307601900000000060504330000063906600197000000000336019f00000000003504350000000b03000029000000a4033000390000000203300367000000000303043b000000800530008c00000c620000413d00000080053002700000063a0630009c000000000503a0190000063a0630009c0000000006000019000000100600203900000008076001bf000006070850009c00000000060720190000004007500270000006070850009c000000000507201900000004076001bf000005fe0850009c00000000060720190000002007500270000005fe0850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000006070970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000aca0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000ac20000413d000000000800004b00000acc0000613d0000000008050433000000000808004b0000033b0000613d00000000080704330000063908800197000000f809600210000000000889019f0000063b0880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c00000000030020190000002106500039000000000036043500000c7f0000013d0000001f0430018f000000050230027200000ae80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ae10000413d000000000504004b00000af60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000005fe02000041000005fe0310009c00000000010280190000000704000029000005fe0340009c00000000020440190000004002200210000000c001100210000000000121019f00000620011001c70000000b0200002917f417e50000040f000000070a00002900000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000b170000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b0f0000413d000000000705004b00000b270000613d0000000506600210000000000761034f000000070800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c3c0000613d0000001f01400039000000600210018f00000007010000290000000001120019000000000221004b00000000020000190000000102004039000006070410009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000000200230008c0000010d0000413d00000007020000290000000002020433000000000202004b00000cd00000c13d00000044021000390000000a03000029000000000032043500000020021000390000061c03000041000000000032043500000024031000390000000904000029000000000043043500000004030000290000000000310435000006240310009c0000012b0000213d0000008003100039000a00000003001d000000400030043f000006250310009c0000012b0000213d000000c003100039000000400030043f00000006030000290000000a040000290000000000340435000000a0031000390000061d040000410000000000430435000000000301043300000000010004140000000b04000029000000040440008c00000df20000c13d0000000102000039000000010100003100000e050000013d000000400400043d000006380540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000b690000413d0000000006040433000000000606004b0000033b0000613d000000f8062002100000060607000041000000000202004b0000000002060019000000000207601900000000060504330000063906600197000000000226019f00000000002504350000000b0200002900000064022000390000000202200367000000000202043b000000800520008c00000cf60000413d00000080052002700000063a0620009c000000000502a0190000063a0620009c0000000006000019000000100600203900000008076001bf000006070850009c00000000060720190000004007500270000006070850009c000000000507201900000004076001bf000005fe0850009c00000000060720190000002007500270000005fe0850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000006070970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000bba0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000bb20000413d000000000800004b00000bbc0000613d0000000008050433000000000808004b0000033b0000613d00000000080704330000063908800197000000f809600210000000000889019f0000063b0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500000d130000013d000000400200043d000500000002001d000006380220009c0000012b0000213d00000005030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000bd90000413d00000005030000290000000003030433000000000303004b0000033b0000613d000000f8031002100000060604000041000000000101004b0000000001030019000000000104601900000000030204330000063903300197000000000113019f0000000000120435000000230100008a0000000b020000290000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000100000004001d00000000044300190000060605000041000000000641004b0000000006000019000000000605801900000606044001970000060607100197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000004410019000000000142034f000000000101043b000006070510009c0000010d0000213d000000000513004900000020034000390000060604000041000000000653004b0000000006000019000000000604201900000606055001970000060607300197000000000857004b0000000004008019000000000557013f000006060550009c000000000406c019000000000404004b0000010d0000c13d000000010410008c00000f240000c13d000000000132034f000000000101043b000000010200008a0000060603000041000000000221004b000000000200001900000000020320190000060601100197000006060410009c00000000030080190000060601100167000006060110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b000010820000c13d000000400100043d000400000001001d000006380110009c0000012b0000213d00000004030000290000004001300039000000400010043f00000020013000390000063b02000041000000000021043500000001010000390000000000130435000010820000013d000000400200043d0000001f0430018f000000050330027200000c490000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000c410000413d000000000504004b00000c580000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000400500043d000006380650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000c6c0000413d0000000007050433000000000707004b0000033b0000613d000000f8073002100000060608000041000000000303004b0000000003070019000000000308601900000000070604330000063907700197000000000337019f00000000003604350000000b0300002900000064033000390000000203300367000000000303043b000000800630008c00000d740000413d00000080063002700000063a0730009c000000000603a0190000063a0730009c0000000007000019000000100700203900000008087001bf000006070960009c00000000070820190000004008600270000006070960009c000000000608201900000004087001bf000005fe0960009c00000000070820190000002008600270000005fe0960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b00000000090000190000000109004039000006070a80009c0000012b0000213d00000001099001900000012b0000c13d000000400080043f000000020870003900000000088604360000002109700039000000050990027200000cbd0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b00000cb50000413d000000000900004b00000cbf0000613d0000000009060433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063b0990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c00000000030020190000002107600039000000000037043500000d910000013d00000064021000390000062103000041000000000032043500000044021000390000062203000041000000000032043500000024021000390000003603000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000000400100043d00000044021000390000064203000041000000000032043500000024021000390000001f03000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400500043d000006380650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000d000000413d0000000007050433000000000707004b0000033b0000613d000000f8072002100000060608000041000000000202004b0000000002070019000000000208601900000000070604330000063907700197000000000227019f0000000000260435000000400600043d000006380260009c0000012b0000213d0000000b0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f00000020076000390000063c0800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c00000e550000413d00000080072002700000063a0820009c000000000702a0190000063a0820009c0000000008000019000000100800203900000008098001bf000006070a70009c00000000080920190000004009700270000006070a70009c000000000709201900000004098001bf000005fe0a70009c00000000080920190000002009700270000005fe0a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a004039000006070b90009c0000012b0000213d000000010aa001900000012b0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200000d610000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00000d590000413d000000000a00004b00000d630000613d000000000a070433000000000a0a004b0000033b0000613d000000000a090433000006390aa00197000000f80b800210000000000aab019f0000063b0aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500000e720000013d000000400600043d000006380760009c0000012b0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000d7e0000413d0000000008060433000000000808004b0000033b0000613d000000f8083002100000060609000041000000000303004b0000000003080019000000000309601900000000080704330000063908800197000000000338019f0000000000370435000000400700043d000006380370009c0000012b0000213d0000000b0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f00000020087000390000063c090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000f870000413d00000080083002700000063a0930009c000000000803a0190000063a0930009c00000000090000190000001009002039000000080a9001bf000006070b80009c00000000090a2019000000400a800270000006070b80009c00000000080a2019000000040a9001bf000005fe0b80009c00000000090a2019000000200a800270000005fe0b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b004039000006070ca0009c0000012b0000213d000000010bb001900000012b0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb0027200000ddf0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000dd70000413d000000000b00004b00000de10000613d000000000b080433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c900210000000000bbc019f0000063b0bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000fa40000013d000005fe04000041000005fe0520009c00000000020480190000004002200210000005fe0530009c00000000030480190000006003300210000000000223019f000005fe0310009c0000000001048019000000c001100210000000000112019f0000000b0200002917f417e00000040f000000010220018f00030000000103550000006001100270000105fe0010019d000005fe011001970000006003000039000900000003001d000000000301004b00000e250000c13d00000009010000290000000031010434000800000003001d000000000202004b00000f5a0000c13d000000000201004b000011510000c13d000000400300043d000b00000003001d0000061401000041000000000013043500000004013000390000000602000029000000000021043500000024023000390000000a0100002917f4171e0000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f600010430000006070310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000009030000290000000001130436000000030300036700000001050000310000001f0450018f000000050550027200000e450000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000e3d0000413d000000000604004b00000e090000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000e090000013d000000400700043d000006380870009c0000012b0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e5f0000413d0000000009070433000000000909004b0000033b0000613d000000f809200210000006060a000041000000000202004b000000000209001900000000020a601900000000090804330000063909900197000000000229019f0000000000280435000000400200043d00000020092000390000000008010433000000000a08004b00000e7f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b8a004b00000e780000413d00000000019800190000000000010435000000000128001900000020091000390000000008030433000000000a08004b00000e8e0000613d000000000a000019000000000b9a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b8a004b00000e870000413d00000000039800190000000000030435000000000118001900000020081000390000000003040433000000000903004b00000e9d0000613d0000000009000019000000000a8900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b00000e960000413d00000000048300190000000000040435000000000113001900000020041000390000000003050433000000000803004b00000eac0000613d000000000800001900000000094800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000938004b00000ea50000413d00000000044300190000000000040435000000000113001900000020041000390000000003060433000000000503004b00000ebb0000613d000000000500001900000000084500190000002005500039000000000965001900000000090904330000000000980435000000000835004b00000eb40000413d00000000044300190000000000040435000000000113001900000020041000390000000003070433000000000503004b00000eca0000613d000000000500001900000000064500190000002005500039000000000875001900000000080804330000000000860435000000000635004b00000ec30000413d000000000443001900000000000404350000000001210049000000000113001900000000001204350000003f03100039000000200100008a000000000313016f0000000005230019000000000335004b00000000030000190000000103004039000006070450009c0000012b0000213d00000001033001900000012b0000c13d000000400050043f000000230300008a0000000b060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b00000000080000310000000009480019000006060a000041000000000b96004b000000000b000019000000000b0a80190000060609900197000006060c600197000000000d9c004b000000000a00801900000000099c013f000006060990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000006070a60009c0000010d0000213d000000000a68004900000020089000390000060609000041000000000ba8004b000000000b000019000000000b092019000006060aa00197000006060c800197000000000dac004b0000000009008019000000000aac013f000006060aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000013f30000c13d000000000687034f000000000606043b000000010700008a0000060608000041000000000776004b000000000700001900000000070820190000060606600197000006060960009c00000000080080190000060606600167000006060660009c00000000070860190000006006000039000000000707004b000014710000c13d000006380650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000063b070000410000000000760435000000010600003900000000006504350000000006050019000014710000013d000000380210008c000010650000413d0000002002100270000005fe0310009c00000000030100190000000003022019000005fe0210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000006380440009c0000012b0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000f420000413d00000004040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063d044001c700000000004304350000000302200210000000f80220008900000000012101cf000000040200002900000021022000390000000000120435000010820000013d000000000201004b00000f710000c13d0000061e0100004100000000001004390000000b010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c7000080020200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000000101004b0000062d0000613d00000009010000290000000001010433000000000201004b000000430000613d0000060602000041000000200310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000008010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a470000613d000000430000013d000000400800043d000006380980009c0000012b0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000f910000413d000000000a080433000000000a0a004b0000033b0000613d000000f80a300210000006060b000041000000000303004b00000000030a001900000000030b6019000000000a090433000006390aa0019700000000033a019f0000000000390435000000400300043d000000200a3000390000000009010433000000000b09004b00000fb10000613d000000000b000019000000000cab0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000c9b004b00000faa0000413d0000000001a9001900000000000104350000000001390019000000200a1000390000000009020433000000000b09004b00000fc00000613d000000000b000019000000000cab0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000c9b004b00000fb90000413d0000000002a900190000000000020435000000000119001900000020091000390000000002040433000000000a02004b00000fcf0000613d000000000a000019000000000b9a0019000000200aa00039000000000c4a0019000000000c0c04330000000000cb0435000000000b2a004b00000fc80000413d00000000049200190000000000040435000000000112001900000020041000390000000002050433000000000902004b00000fde0000613d0000000009000019000000000a4900190000002009900039000000000b590019000000000b0b04330000000000ba0435000000000a29004b00000fd70000413d00000000044200190000000000040435000000000112001900000020041000390000000002060433000000000502004b00000fed0000613d000000000500001900000000094500190000002005500039000000000a650019000000000a0a04330000000000a90435000000000925004b00000fe60000413d00000000044200190000000000040435000000000112001900000020041000390000000002070433000000000502004b00000ffc0000613d000000000500001900000000064500190000002005500039000000000975001900000000090904330000000000960435000000000625004b00000ff50000413d00000000044200190000000000040435000000000112001900000020041000390000000002080433000000000502004b0000100b0000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000625004b000010040000413d000000000442001900000000000404350000000001310049000000000112001900000000001304350000003f02100039000000200100008a000000000212016f0000000005320019000000000225004b00000000020000190000000102004039000006070450009c0000012b0000213d00000001022001900000012b0000c13d000000400050043f000000230200008a0000000b060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b00000000080000310000000009480019000006060a000041000000000b96004b000000000b000019000000000b0a80190000060609900197000006060c600197000000000d9c004b000000000a00801900000000099c013f000006060990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000006070a60009c0000010d0000213d000000000a68004900000020089000390000060609000041000000000ba8004b000000000b000019000000000b092019000006060aa00197000006060c800197000000000dac004b0000000009008019000000000aac013f000006060aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000014250000c13d000000000687034f000000000606043b000000010700008a0000060608000041000000000776004b000000000700001900000000070820190000060606600197000006060960009c00000000080080190000060606600167000006060660009c00000000070860190000006006000039000000000707004b000015040000c13d000006380650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000063b070000410000000000760435000000010600003900000000006504350000000006050019000015040000013d000000400200043d000400000002001d000006380220009c0000012b0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000010710000413d00000004030000290000000003030433000000000303004b0000033b0000613d000000f80110021000000000030204330000063903300197000000000113019f0000060601100167000000000012043500000060010000390000000b0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b000010f70000c13d0000000203000029000000000432034f000000000300003100000001050000290000000005530019000000000904043b0000060604000041000000000659004b0000000006000019000000000604801900000606055001970000060607900197000000000857004b0000000004008019000000000557013f000006060550009c000000000406c019000000000404004b0000010d0000c13d00000009040000290000000004040433000000070500002900000000050504330000000606000029000000000606043300000005070000290000000007070433000000040800002900000000080804330000000a0a0000290000000009a90019000000000292034f000000000202043b000006070a20009c0000010d0000213d00000000032300490000002009900039000006060a000041000000000b39004b000000000b000019000000000b0a201900000606033001970000060609900197000000000c39004b000000000a008019000000000339013f000006060330009c00000000030b001900000000030a6019000000000303004b0000010d0000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000060702200197000000380320008c000011990000413d0000002003200270000005fe0420009c00000000040200190000000004032019000005fe0320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400600043d000006380560009c0000012b0000213d000000000343019f0000004004600039000000400040043f0000000204300039000000000446043600000000050000310000000205500367000000000700001900000005087002100000000009840019000000000885034f000000000808043b0000000000890435000000010770003a000010e10000413d0000000005060433000000000505004b0000033b0000613d00000000050404330000063905500197000000f807300210000000000557019f0000063f055001c700000000005404350000000303300210000000f80330008900000000023201cf00000021036000390000000000230435000011b30000013d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000800210008c0000115c0000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000304000029000000000442016f000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f00000002043000390000000004420436000000210530003900000005055002720000113e0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000011360000413d000000000500004b000011400000613d0000000005020433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c000000000100201900000021032000390000000000130435000011790000013d000005fe020000410000000804000029000005fe0340009c00000000030200190000000003044019000005fe0410009c000000000102801900000060011002100000004002300210000000000121019f000017f600010430000000400200043d000006380320009c0000012b0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000011660000413d0000000004020433000000000404004b0000033b0000613d000000f8041002100000060605000041000000000101004b0000000001040019000000000105601900000000040304330000063904400197000000000114019f0000000000130435000000400100043d00000020041000390000000003020433000000000503004b000011860000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000117f0000413d00000000024300190000064a0400004100000000004204350000000202300039000000000021043500000041023000390000000303000029000000000332016f0000000002130019000000000332004b00000000030000190000000103004039000006070420009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f00000002020003670000108a0000013d000000400600043d000006380360009c0000012b0000213d0000004003600039000000400030043f0000000103000039000000000336043600000000040000310000000204400367000000000500001900000005075002100000000008730019000000000774034f000000000707043b0000000000780435000000010550003a000011a30000413d0000000004060433000000000404004b0000033b0000613d000000f80220021000000000040304330000063904400197000000000242019f0000063e02200041000000000023043500000000020000310000000103000029000000000532001900000002030003670000000204000029000000000443034f000000000404043b0000060607000041000000000854004b0000000008000019000000000807801900000606055001970000060609400197000000000a59004b0000000007008019000000000559013f000006060550009c00000000050800190000000005076019000000000505004b0000010d0000c13d0000000a050000290000000005540019000000000353034f000000000403043b000006070340009c0000010d0000213d000000000242004900000020055000390000060603000041000000000725004b0000000007000019000000000703201900000606022001970000060608500197000000000928004b0000000003008019000000000228013f000006060220009c00000000020700190000000002036019000000000202004b0000010d0000c13d000000400200043d00000020032000390000000007060433000000000807004b000011eb0000613d000000000800001900000000093800190000002008800039000000000a680019000000000a0a04330000000000a90435000000000978004b000011e40000413d000000000637001900000000000604350000000006270019000000200860003900000009070000290000000007070433000000000907004b000011fc0000613d0000000009000019000000000a8900190000002009900039000000090b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011f40000413d000000000887001900000000000804350000000006670019000000200860003900000007070000290000000007070433000000000907004b0000120d0000613d0000000009000019000000000a8900190000002009900039000000070b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012050000413d000000000887001900000000000804350000000006670019000000200860003900000006070000290000000007070433000000000907004b0000121e0000613d0000000009000019000000000a8900190000002009900039000000060b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012160000413d000000000887001900000000000804350000000006670019000000200860003900000005070000290000000007070433000000000907004b0000122f0000613d0000000009000019000000000a8900190000002009900039000000050b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012270000413d000000000887001900000000000804350000000006670019000000200860003900000004070000290000000007070433000000000907004b000012400000613d0000000009000019000000000a8900190000002009900039000000040b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012380000413d0000000008870019000000000008043500000000066700190000001f0740018f000000200860003900000002055003670000000509400272000012510000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012490000413d000000000a07004b000012600000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000004460019000000200640003900000000000604350000000005010433000000000705004b0000126e0000613d000000000700001900000000086700190000002007700039000000000917001900000000090904330000000000980435000000000857004b000012670000413d000000000165001900000000000104350000000001240049000000000115001900000000001204350000003f011000390000000304000029000000000441016f0000000001240019000000000441004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f000005fe01000041000005fe0430009c000000000301801900000040033002100000000002020433000005fe0420009c00000000020180190000006002200210000000000232019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000900000001001d0000000b01000029000000e4021000390000000201000367000000000221034f000000000202043b0000060802200198000012b60000c13d0000000b03000029000000a402300039000000000221034f0000006403300039000000000331034f000000000303043b000000000402043b00000000523400a9000000000504004b000012a80000613d00000000544200d9000000000334004b000012b00000c13d0000000b030000290000012403300039000000000131034f000000000101043b000000000121001a000700000001001d000012b00000413d000012bb0000013d000006550100004100000000001004350000001101000039000000040010043f0000065601000041000017f6000104300000000b020000290000012402200039000000000121034f000000000101043b000700000001001d0000064b01000041000000000010043900000008010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c70000800a0200003917f417e50000040f00000001022001900000010d0000613d000000000101043b0000000702000029000000000112004b000012e20000a13d000000400100043d00000064021000390000065303000041000000000032043500000044021000390000065403000041000000000032043500000024021000390000002203000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f60001043000000000030000310000000b020000290000000001230049000000230410008a000001e4022000390000000201000367000000000221034f000000000202043b0000060605000041000000000642004b0000000006000019000000000605801900000606044001970000060607200197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000002420019000000000121034f000000000101043b000006070410009c0000010d0000213d000000000413004900000020052000390000060602000041000000000645004b0000000006000019000000000602201900000606044001970000060607500197000000000847004b0000000002008019000000000447013f000006060440009c000000000206c019000000000202004b0000010d0000c13d0000003f02100039000000200400008a000000000442016f000000400200043d0000000004420019000000000624004b00000000060000190000000106004039000006070740009c0000012b0000213d00000001066001900000012b0000c13d000000400040043f00000000041204360000000006510019000000000336004b0000010d0000213d0000001f0310018f000000020550036700000005061002720000132b0000613d000000000700001900000005087002100000000009840019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000013230000413d000000000703004b0000133a0000613d0000000506600210000000000565034f00000000066400190000000303300210000000000706043300000000073701cf000000000737022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000373019f0000000000360435000000000114001900000000000104350000000001020433000000410110008c000013580000c13d00000041012000390000000001010433000000ff0310018f0000001d0130008a000000030500008a000000000151004b0000136a0000213d000000400100043d00000044021000390000065203000041000000000032043500000024021000390000001603000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d00000044021000390000064c03000041000000000032043500000024021000390000001d03000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000000404043300000040012000390000000002010433000000400100043d0000064d0520009c000013810000413d00000044021000390000065103000041000000000032043500000024021000390000000903000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000600510003900000000002504350000004002100039000000000042043500000020021000390000000000320435000000090200002900000000002104350000000000000435000005fe020000410000000003000414000005fe0430009c0000000003028019000005fe0410009c00000000010280190000004001100210000000c002300210000000000112019f0000064e011001c7000000010200003917f417e50000040f00000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000504400272000013a70000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000013a00000413d000000000605004b000013b50000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013cd0000613d000000000100043300000608011001970000000802000029000000000221004b0000000002000019000000010200c039000000000101004b0000000001000019000000010100603900000000011201a00000064f01000041000000000100c019000000400200043d0000000000120435000005fe01000041000005fe0320009c0000000001024019000000400110021000000650011001c7000017f50001042e000000400200043d0000001f0430018f0000000503300272000013da0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000013d20000413d000000000504004b000013e90000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000380760008c000014570000413d0000002007600270000005fe0860009c00000000080600190000000008072019000005fe0760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000006380950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000140e0000413d0000000009050433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063d099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000014710000013d000000380760008c000014ea0000413d0000002007600270000005fe0860009c00000000080600190000000008072019000005fe0760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000006380950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000014400000413d0000000009050433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063d099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000015040000013d000006380750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000014600000413d0000000008050433000000000808004b0000033b0000613d000000f80660021000000000080704330000063908800197000000000668019f000006060660016700000000006704350000000006050019000000400500043d000006380750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000147b0000413d0000000009050433000000000909004b0000033b0000613d000000000907043300000639099001970000063e099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b000006060a000041000000000d9c004b000000000d000019000000000d0a80190000060609900197000006060ec00197000000000f9e004b000000000a00801900000000099e013f000006060990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009020433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000006070db0009c0000010d0000213d0000000007b70049000000200cc00039000006060d000041000000000e7c004b000000000e000019000000000e0d20190000060607700197000006060cc00197000000000f7c004b000000000d00801900000000077c013f000006060770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000060709700197000000380790008c000015980000413d0000002007900270000005fe0890009c000000000709a019000005fe0890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000006380b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000014d40000413d000000000b070433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c800210000000000bbc019f0000063f0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000015b10000013d000006380750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000014f30000413d0000000008050433000000000808004b0000033b0000613d000000f80660021000000000080704330000063908800197000000000668019f000006060660016700000000006704350000000006050019000000400500043d000006380750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000150e0000413d0000000009050433000000000909004b0000033b0000613d000000000907043300000639099001970000063e099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b000006060a000041000000000d9c004b000000000d000019000000000d0a80190000060609900197000006060ec00197000000000f9e004b000000000a00801900000000099e013f000006060990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009030433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000006070db0009c0000010d0000213d0000000007b70049000000200cc00039000006060d000041000000000e7c004b000000000e000019000000000e0d20190000060607700197000006060cc00197000000000f7c004b000000000d00801900000000077c013f000006060770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000060709700197000000380790008c0000165b0000413d0000002007900270000005fe0890009c000000000709a019000005fe0890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000006380b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000015670000413d000000000b070433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c800210000000000bbc019f0000063f0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000016740000013d0000001f0430018f0000000502300272000015880000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000015810000413d000000000504004b000015960000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000000400700043d000006380a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000015a10000413d000000000a070433000000000a0a004b0000033b0000613d000000f809900210000000000a080433000006390aa001970000000009a9019f0000063e099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b000006060a000041000000000b83004b000000000b000019000000000b0a80190000060608800197000006060c300197000000000d8c004b000000000a00801900000000088c013f000006060880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000003830019000000000434034f000000000804043b000006070480009c0000010d0000213d000000000489004900000020093000390000060603000041000000000a49004b000000000a000019000000000a0320190000060604400197000006060b900197000000000c4b004b000000000300801900000000044b013f000006060440009c00000000030ac019000000000303004b0000010d0000c13d000000400300043d0000002004300039000006330a0000410000000000a40435000000210b300039000000000a070433000000000c0a004b000015e90000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000015e20000413d0000000007ba0019000000000007043500000000073a0019000000210b700039000000000a020433000000000c0a004b000015f80000613d000000000c000019000000000dbc0019000000200cc00039000000000e2c0019000000000e0e04330000000000ed0435000000000dac004b000015f10000413d0000000002ba0019000000000002043500000000027a0019000000210a2000390000000007060433000000000b07004b000016070000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000016000000413d0000000006a70019000000000006043500000000022700190000001f0680018f00000021072000390000000209900367000000050a800272000016180000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000016100000413d000000000b06004b000016270000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000002820019000000210720003900000000000704350000000006050433000000000806004b000016350000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b0000162e0000413d0000000005760019000000000005043500000000023200490000000002260019000000010520003900000000005304350000004002200039000000000212016f0000000001320019000000000221004b00000000020000190000000102004039000006070510009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000005fe01000041000005fe0240009c0000000002010019000000000204401900000040022002100000000003030433000005fe0430009c00000000030180190000006003300210000000000223019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d000000400700043d000006380a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000016640000413d000000000a070433000000000a0a004b0000033b0000613d000000f809900210000000000a080433000006390aa001970000000009a9019f0000063e099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b000006060a000041000000000b82004b000000000b000019000000000b0a80190000060608800197000006060c200197000000000d8c004b000000000a00801900000000088c013f000006060880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000002820019000000000424034f000000000804043b000006070480009c0000010d0000213d000000000489004900000020092000390000060602000041000000000a49004b000000000a000019000000000a0220190000060604400197000006060b900197000000000c4b004b000000000200801900000000044b013f000006060440009c00000000020ac019000000000202004b0000010d0000c13d000000400200043d0000002004200039000006400a0000410000000000a40435000000210b200039000000000a070433000000000c0a004b000016ac0000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000016a50000413d0000000007ba0019000000000007043500000000072a0019000000210b700039000000000a030433000000000c0a004b000016bb0000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b000016b40000413d0000000003ba0019000000000003043500000000037a0019000000210a3000390000000007060433000000000b07004b000016ca0000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000016c30000413d0000000006a70019000000000006043500000000033700190000001f0680018f00000021073000390000000209900367000000050a800272000016db0000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000016d30000413d000000000b06004b000016ea0000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000003830019000000210730003900000000000704350000000006050433000000000806004b000016f80000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b000016f10000413d0000000005760019000000000005043500000000032300490000000003360019000000010530003900000000005204350000004003300039000000000313016f0000000001230019000000000331004b00000000030000190000000103004039000006070510009c0000012b0000213d00000001033001900000012b0000c13d000000400010043f000005fe01000041000005fe0340009c0000000003010019000000000304401900000040033002100000000002020433000005fe0420009c00000000020180190000006002200210000000000232019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d00000000030104330000000002320436000000000403004b0000172a0000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000017230000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000403004b000017400000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000017390000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d0003000000000002000000040100008a000000000310003100000606010000410000005f0230008c000000000200001900000000020120190000060604300197000000000504004b0000000001008019000006060440009c000000000102c019000000000101004b0000178d0000613d00000002010003670000004402100370000000000202043b000006070420009c0000178d0000213d00000000032300490000060604000041000002600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000178d0000c13d0000000003000411000080010330008c0000178b0000c13d000000000300041200000608033001970000000004000410000000000343004b0000178b0000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b0000178f0000c13d0000000004000415000000030440008a00000020044000c90000000001000414000300000000001d000100000004001d000005fe02000041000005fe0310009c0000000001028019000000c001100210000080010200003917f417e00000040f000000010300002900030000000103550000006001100270000105fe0010019d000000200130011a00000001012001950000000101200190000017a70000613d0000000001000019000017f50001042e0000000001000019000017f60001043000000000431200a900000000422300d9000000000112004b000017bc0000c13d0000000004000415000000020440008a00000020044000c90000000001000414000200000000001d000000000203004b0000177c0000613d000005fe02000041000005fe0410009c0000000001028019000000c00110021000000640011001c700008009020000390000800104000039000000000500001917f417e00000040f0000000003000415000000020330008a00000020033000c9000017840000013d000000400100043d00000064021000390000065703000041000000000032043500000044021000390000065803000041000000000032043500000024021000390000002503000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000006550100004100000000001004350000001101000039000000040010043f0000065601000041000017f600010430000000400100043d000006590210009c000017c90000813d0000002002100039000000400020043f0000000000010435000000000001042d000006550100004100000000001004350000004101000039000000040010043f0000065601000041000017f600010430000000000100041200000608011001970000000002000410000000000121004b000017d80000c13d0000000001000411000080010110008c000017da0000613d000000000001042d0000000001000019000017f50001042e000006550100004100000000001004350000000101000039000000040010043f0000065601000041000017f600010430000017e3002104210000000102000039000000000001042d0000000002000019000000000001042d000017e8002104230000000102000039000000000001042d0000000002000019000000000001042d000017ed002104210000000102000039000000000001042d0000000002000019000000000001042d000017f2002104230000000102000039000000000001042d0000000002000019000000000001042d000017f400000432000017f50001042e000017f600010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000004400000000000000000000000020746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f0000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395369676e6174757265206c656e67746820697320696e636f72726563740000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a10000000000000000000000000000000000000080000000000000000000000000202bcce7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000496e76616c69642073000000000000000000000000000000000000000000000076206973206e656974686572203237206e6f722032380000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f7065000000000000000000000000000000000000000000000000ffffffffffffffe0f02ad7a6c9bd15b4a609dc9f1d09d0fe7738d949cfb17d2adf03465aa5b8d4d8", - "deployedBytecode": "0x0004000000000002000b00000000000200000000030100190000006003300270000005fe0430019700030000004103550002000000010355000005fe0030019d000100000000001f0000008005000039000000400050043f0000000101200190000000390000c13d0000000002000031000000040120008c000000410000413d0000000201000367000000000301043b000000e003300270000006000430009c000000450000a13d000006010430009c000000a90000613d000006020430009c000000ea0000613d000006030330009c000000a60000c13d000000040220008a0000060603000041000000200420008c000000000400001900000000040340190000060605200197000000000605004b000000000300a019000006060550009c000000000304c019000000000303004b0000010d0000c13d0000000401100370000000000101043b000006070310009c0000010d0000213d00000000011200490000060602000041000002600310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b000000430000613d0000010d0000013d0000000001000416000000000101004b0000010d0000c13d000000200100003900000100001004430000012000000443000005ff01000041000017f50001042e000000000102004b000000a60000c13d0000000001000019000017f50001042e000006040430009c000000eb0000613d000006050330009c000000a60000c13d000000040320008a0000060604000041000000600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000303043b000006070430009c0000010d0000213d000000040530003900000000045200490000060606000041000002600740008c000000000700001900000000070640190000060604400197000000000804004b000000000600a019000006060440009c00000000040700190000000004066019000000000404004b0000010d0000c13d0000000004000411000080010440008c000000430000c13d000000000400041200000608064001970000000004000410000000000646004b000000430000c13d0000022406300039000000000661034f0000000007320049000000230770008a000000000606043b0000060608000041000000000976004b000000000900001900000000090880190000060607700197000006060a600197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005560019000000000651034f000000000606043b000006070760009c0000010d0000213d000000000762004900000020025000390000060608000041000000000972004b000000000900001900000000090820190000060607700197000006060a200197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d000000030760008c000002230000213d0000061401000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000062c01000041000000c40010043f0000062d01000041000000e40010043f0000062b01000041000017f60001043017f417cf0000040f0000000001000019000017f50001042e000000040320008a0000060604000041000000600630008c000000000600001900000000060440190000060603300197000000000703004b000000000400a019000006060330009c00000000030600190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000703043b000006070370009c0000010d0000213d000000040670003900000000036200490000060604000041000002600830008c000000000800001900000000080440190000060603300197000000000903004b000000000400a019000006060330009c00000000030800190000000003046019000000000303004b0000010d0000c13d0000000003000411000080010330008c000000430000c13d000000000300041200000608033001970000000004000410000000000343004b000000430000c13d0000012403700039000000000331034f0000004404700039000000000441034f000000000404043b0000060804400197000000000303043b000006090830009c000001310000413d00000044015000390000061302000041000000000021043500000024015000390000000802000039000000000021043500000614010000410000000000150435000000040150003900000020020000390000000000210435000005fe01000041000005fe0250009c0000000001054019000000400110021000000615011001c7000017f60001043017f417470000040f000000040320008a0000060604000041000000600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000303043b000b00000003001d000006070330009c0000010d0000213d0000000b030000290000000403300039000a00000003001d00000000023200490000060603000041000002600420008c000000000400001900000000040340190000060602200197000000000502004b000000000300a019000006060220009c00000000020400190000000002036019000000000202004b0000010f0000613d0000000001000019000017f6000104300000002401100370000000000101043b000900000001001d0000000001000411000080010110008c000000430000c13d000000000100041200000608011001970000000002000410000800000002001d000000000121004b000000430000c13d0000000002000414000000400100043d00000020031000390000062e0400004100000000004304350000000b030000290000010403300039000700000003001d0000000203300367000000000303043b00000024041000390000000000340435000000240300003900000000003104350000062f0310009c0000015e0000413d000006550100004100000000001004350000004101000039000000040010043f0000065601000041000017f600010430000001c405700039000000000551034f0000000007720049000000230770008a000000000505043b0000060608000041000000000975004b000000000900001900000000090880190000060607700197000006060a500197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005650019000000000151034f000000000601043b000006070160009c0000010d0000213d000000000162004900000020025000390000060605000041000000000712004b0000000007000019000000000705201900000606011001970000060608200197000000000918004b0000000005008019000000000118013f000006060110009c00000000010700190000000001056019000000000101004b0000010d0000c13d00000000010004140000060a0510009c000002360000413d000000400500043d000000d90000013d0000006003100039000000400030043f00000000040104330000060a0540009c000001740000413d00000614020000410000000000230435000000a40210003900000613040000410000000000420435000000840210003900000008040000390000000000420435000000640110003900000020020000390000000000210435000005fe01000041000005fe0230009c0000000001034019000000400110021000000615011001c7000017f600010430000000c0022002100000061002200197000000400110021000000630011000410000063101100197000000000112019f00000060024002100000063202200197000000000121019f00000633011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001917f417e00000040f00030000000103550000006001100270000105fe0010019d000005fe041001970000003f014000390000063405100197000000400100043d0000000003150019000000000553004b00000000050000190000000105004039000006070630009c0000012b0000213d00000001055001900000012b0000c13d000000400030043f00000000034104360000001f054000390000000505500272000001a30000613d00000000060000310000000206600367000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000019b0000413d000000000500004b000001a50000613d0000000105000031000000000554004b0000010d0000213d00000003060003670000001f0540018f0000000504400272000001b50000613d000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000001ad0000413d000000000705004b000001c40000613d0000000504400210000000000646034f00000000044300190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000102200190000002640000613d0000000901000029000000000101004b000012940000c13d00000002010003670000000a02000029000000000221034f000000000202043b000000000302004b000002be0000c13d0000000702000029000000000121034f000000000101043b000000800210008c000003240000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f000000020320003900000009040000290000000003340436000000210420003900000005044002720000020e0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000002060000413d000000000400004b000002100000613d00000009040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063b0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000902000029000000210220003900000000001204350000047b0000013d000000000221034f000000000202043b0000060b02200197000006160720009c0000026e0000c13d000000430260008c000002a00000213d0000061401000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000062901000041000000c40010043f0000062a01000041000000e40010043f0000062b01000041000017f6000104300000000207000367000080060540008c00000000050000190000024b0000c13d000000040560008c00000000050000190000024b0000413d000000000827034f0000000105000039000000000808043b0000060b088001970000060c0980009c0000024a0000613d0000060d0980009c0000024a0000613d0000060e0980009c0000024a0000613d0000060f0580009c00000000050000190000000105006039000000010550018f0000000008260019000005fe02200197000000000227034f000000000703004b0000027a0000c13d000000000368004b000012b00000413d0000000003000031000000000683004b000012b00000413d00000611060000410000061207000041000000000505004b00000000050600190000000005076019000000c0011002100000061001100197000000000115019f0000000003830049000005fe0330019700000000023203df00000000011203af000000000204001917f417ea0000040f000002890000013d0000000001010433000005fe02000041000005fe0410009c0000000001028019000005fe0430009c000000000203401900000040022002100000006001100210000000000121019f000017f600010430000006170120009c000000430000613d0000061401000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000061801000041000000c40010043f0000061901000041000017f600010430000000000668004b000012b00000413d0000000006000031000000000786004b000012b00000413d0000000006860049000005fe0660019700000000026203df000000c001100210000006100110019700000611011001c700000000011203af0000800902000039000000000600001917f417ea0000040f000300000001035500000000030100190000006003300270000105fe0030019d000005fe033001970000000102200190000003090000613d17f417c20000040f0000000002010019000000400100043d000b00000001001d17f417310000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f50001042e0000002402500039000000000221034f000000000202043b000b00000002001d000006080220009c0000010d0000213d000000e402300039000000000221034f0000004403500039000000000131034f000000000101043b000a00000001001d000000000102043b0000061a02000041000000800020043f0000060802400197000800000002001d000000840020043f0000060801100197000900000001001d000000a40010043f00000000010004140000000b02000029000000040220008c0000039d0000c13d0000000103000031000000200130008c00000020040000390000000004034019000003c90000013d000000710320008c000003410000c13d000000230200008a0000000b030000290000000004320049000001c402300039000000000221034f000000000302043b0000000002000031000900000004001d00000000044200190000060605000041000000000643004b0000000006000019000000000605801900000606044001970000060607300197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000003430019000000000131034f000000000101043b000006070410009c0000010d0000213d000000000212004900000020033000390000060604000041000000000523004b0000000005000019000000000504201900000606022001970000060606300197000000000726004b0000000004008019000000000226013f000006060220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005fe04300197000012b00000413d0000000003000031000000000513004b000012b00000413d00000002044003670000060a0520009c000007d60000413d000000400100043d00000044021000390000061303000041000000000032043500000024021000390000000803000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f6000104300000001f0430018f0000000502300272000003140000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000030d0000413d000000000504004b000003220000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000000400200043d000900000002001d000006380220009c0000012b0000213d00000009030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000003300000413d00000009030000290000000003030433000000000303004b000004720000c13d000006550100004100000000001004350000003201000039000000040010043f0000065601000041000017f600010430000000020120008c000003f00000c13d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005ad0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000038a0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003820000413d000000000500004b0000038c0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000005ca0000013d000005fe02000041000005fe0310009c0000000001028019000000c0011002100000061b011001c70000000b0200002917f417e50000040f00000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003ae0000413d000000000705004b000003c50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000044c0000613d0000001f01400039000000600410018f00000080014001bf000000400010043f000000200230008c0000010d0000413d000000800200043d0000000a03000029000000000232004b000000430000813d000000a0024000390000061c030000410000000000320435000000a40340003900000009050000290000000000530435000000c40340003900000000000304350000004403000039000400000003001d00000000003104350000014003400039000000400030043f00000120034000390000061d05000041000000000053043500000100044001bf0000002003000039000600000003001d000500000004001d0000000000340435000000000301043300000000010004140000000b04000029000000040440008c0000054c0000c13d000000010200003900000001010000310000055d0000013d000000010120008c000004cc0000c13d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000201043b000000800120008c0000063f0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004390000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000004310000413d000000000500004b0000043b0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000065c0000013d000000400200043d0000001f0430018f0000000503300272000004590000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004510000413d000000000504004b000004680000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000f8031002100000060604000041000000000101004b0000000001030019000000000104601900000000030204330000063903300197000000000113019f00000000001204350000000b01000029000000a4011000390000000201100367000000000201043b000000800120008c000004de0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004b90000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000004b10000413d000000000500004b000004bb0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000004fb0000013d000000400100043d00000044021000390000063503000041000000000032043500000024021000390000001703000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000004e80000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f00000000002304350000000b0200002900000064022000390000000202200367000000000302043b000000800230008c000006ac0000413d00000080023002700000063a0430009c000000000203a0190000063a0430009c0000000004000019000000100400203900000008054001bf000006070620009c00000000040520190000004005200270000006070620009c000000000205201900000004054001bf000005fe0620009c00000000040520190000002005200270000005fe0620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000005390000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005310000413d000000000600004b0000053b0000613d0000000006020433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000006c90000013d000005fe04000041000005fe0530009c000000000304801900000060033002100000004002200210000000000223019f000005fe0310009c0000000001048019000000c001100210000000000112019f0000000b0200002917f417e00000040f000000010220018f00030000000103550000006001100270000105fe0010019d000005fe011001970000006003000039000700000003001d000000000301004b0000057d0000c13d00000007010000290000000031010434000300000003001d000000000202004b0000061a0000c13d000000000201004b0000075d0000c13d000000400300043d000b00000003001d000006140100004100000000001304350000000401300039000000060200002900000000002104350000002402300039000000050100002917f4171e0000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f600010430000006070310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000007030000290000000001130436000000030300036700000001050000310000001f0450018f00000005055002720000059d0000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000005950000413d000000000604004b000005610000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000005610000013d000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005b70000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f000000000023043500000007020000290000000202200367000000000302043b000000800230008c000007680000413d00000080023002700000063a0430009c000000000203a0190000063a0430009c0000000004000019000000100400203900000008054001bf000006070620009c00000000040520190000004005200270000006070620009c000000000205201900000004054001bf000005fe0620009c00000000040520190000002005200270000005fe0620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000006070000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005ff0000413d000000000600004b000006090000613d0000000006020433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000007850000013d000000000201004b00000a320000c13d0000061e0100004100000000001004390000000b010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c7000080020200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000000101004b00000a2e0000c13d000000400100043d00000044021000390000062803000041000000000032043500000024021000390000001d03000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000006490000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f000000000023043500000007020000290000000202200367000000000202043b000000800320008c000009c00000413d00000080032002700000063a0420009c000000000302a0190000063a0420009c0000000004000019000000100400203900000008054001bf000006070630009c00000000040520190000004005300270000006070630009c000000000305201900000004054001bf000005fe0630009c00000000040520190000002005300270000005fe0630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000006990000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000006910000413d000000000600004b0000069b0000613d0000000006030433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000009dd0000013d000000400200043d000006380420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006b60000413d0000000005020433000000000505004b0000033b0000613d000000f8053002100000060606000041000000000303004b0000000003050019000000000306601900000000050404330000063905500197000000000335019f0000000000340435000000400300043d000700000003001d00000020043000390000000003010433000000000503004b000006d70000613d000000000500001900000000064500190000002005500039000000000715001900000000070704330000000000760435000000000635004b000006d00000413d000000000143001900000000000104350000000004020433000000000504004b000006e40000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b000006dd0000413d000000000114001900000000000104350000000001340019000000070300002900000000001304350000003f01100039000000200200008a000300000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000600000002001d000006070220009c0000012b0000213d00000001011001900000012b0000c13d0000000601000029000000400010043f000006380110009c0000012b0000213d0000000b0400002900000044014000390000000201100367000000000101043b00000006050000290000004002500039000000400020043f00000020025000390000063c0300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c00000bcd0000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000304000029000000000343016f000000400400043d0000000003340019000500000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000002032000390000000504000029000000000334043600000021042000390000000504400272000007480000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000007400000413d000000000400004b0000074a0000613d00000005040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063b0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000005020000290000002102200039000000000012043500000bed0000013d000005fe020000410000000304000029000005fe0340009c00000000030200190000000003044019000005fe0410009c000000000102801900000060011002100000004002300210000000000121019f000017f600010430000000400200043d000006380420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007720000413d0000000005020433000000000505004b0000033b0000613d000000f8053002100000060606000041000000000303004b0000000003050019000000000306601900000000050404330000063905500197000000000335019f00000000003404350000000b03000029000000c4033000390000000203300367000000000303043b000000800430008c00000a6f0000413d00000080043002700000063a0530009c000000000403a0190000063a0530009c0000000005000019000000100500203900000008065001bf000006070740009c00000000050620190000004006400270000006070740009c000000000406201900000004065001bf000005fe0740009c00000000050620190000002006400270000005fe0740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000006070860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007c30000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000007bb0000413d000000000700004b000007c50000613d0000000007040433000000000707004b0000033b0000613d00000000070604330000063907700197000000f808500210000000000778019f0000063b0770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105400039000000000035043500000a8c0000013d0000000001130049000005fe0110019700000000011403df000000c002200210000006100220019700000612022001c700000000012103af000080100200003917f417ef0000040f00000000030100190000006003300270000105fe0030019d000005fe033001970003000000010355000000010220019000000add0000613d0000003f013000390000063401100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000008010000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000007f90000413d000000000400004b000008030000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008130000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000080b0000413d000000000604004b000008220000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ce40000c13d0000000004000031000000090200002900000000052400190000000b0200002900000204032000390000000202000367000000000332034f000000000303043b0000060606000041000000000753004b0000000007000019000000000706801900000606055001970000060608300197000000000958004b0000000006008019000000000558013f000006060550009c00000000050700190000000005066019000000000505004b0000010d0000c13d0000000001010433000600000001001d0000000a010000290000000001130019000000000312034f000000000503043b000006070350009c0000010d0000213d0000000503500210000000000434004900000020061000390000060601000041000000000746004b0000000007000019000000000701201900000606044001970000060608600197000000000948004b0000000001008019000000000448013f000006060440009c000000000107c019000000000101004b0000010d0000c13d000000400100043d00000020041000390000064105500198000008610000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000008590000413d000000000200004b000008630000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b00000000030000190000000103004039000006070520009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f000005fe02000041000005fe0340009c0000000003020019000000000304401900000040033002100000000001010433000005fe0410009c00000000010280190000006001100210000000000131019f0000000003000414000005fe0430009c0000000002034019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d0000000002000031000000090300002900000000053200190000000b0300002900000224043000390000000203000367000000000443034f000000000404043b0000060606000041000000000754004b0000000007000019000000000706801900000606055001970000060608400197000000000958004b0000000006008019000000000558013f000006060550009c00000000050700190000000005066019000000000101043b000900000001001d000000000105004b0000010d0000c13d0000000a010000290000000004140019000000000143034f000000000101043b000006070310009c0000010d0000213d000000000212004900000020034000390000060604000041000000000523004b0000000005000019000000000504201900000606022001970000060606300197000000000726004b0000000004008019000000000226013f000006060220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005fe04300197000012b00000413d0000000003000031000000000513004b000012b00000413d0000000204400367000005fe0520009c000002f70000213d0000000001130049000005fe0110019700000000011403df000000c002200210000006100220019700000612022001c700000000012103af000080100200003917f417ef0000040f00000000030100190000006003300270000105fe0030019d000005fe03300197000300000001035500000001022001900000157d0000613d0000003f013000390000063401100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000008e70000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000008df0000413d000000000400004b000008e90000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008f90000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000008f10000413d000000000604004b000009080000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ce40000c13d0000000b0a0000290000006402a000390000000203000367000000000523034f0000004402a00039000000000423034f0000002402a00039000000000623034f0000008402a00039000000a407a00039000000c408a00039000000e409a00039000001240aa00039000000000aa3034f000000070b000029000000000bb3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000a02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000b0b043b000000000a0a043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c100039000000090d0000290000000000dc0435000001800c100039000000060d0000290000000000dc0435000001600c1000390000000000ac0435000001400a1000390000000000ba0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000643030000410000000000320435000001c0030000390000000000310435000006440310009c0000012b0000213d000001e003100039000000400030043f000005fe03000041000005fe0420009c000000000203801900000040022002100000000001010433000005fe0410009c00000000010380190000006001100210000000000121019f0000000002000414000005fe0420009c0000000002038019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000700000001001d000000400100043d000900000001001d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d00000009040000290000002002400039000000000101043b000006450300004100000000003204350000008003400039000000000013043500000060014000390000064603000041000000000031043500000040014000390000064703000041000000000031043500000080010000390000000000140435000006480140009c0000012b0000213d0000000904000029000000a001400039000000400010043f000005fe01000041000005fe0320009c000000000201801900000040022002100000000003040433000005fe0430009c00000000030180190000006003300210000000000223019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000301043b000000400100043d0000004202100039000000070400002900000000004204350000002002100039000006490400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000006240310009c0000012b0000213d0000008003100039000000400030043f000005fe03000041000005fe0420009c000000000203801900000040022002100000000001010433000005fe0410009c00000000010380190000006001100210000000000121019f0000000002000414000005fe0420009c0000000002038019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d000000400300043d000006380430009c0000012b0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000009ca0000413d0000000005030433000000000505004b0000033b0000613d000000f8052002100000060606000041000000000202004b0000000002050019000000000206601900000000050404330000063905500197000000000225019f00000000002404350000000b02000029000000a4022000390000000202200367000000000202043b000000800420008c00000b5f0000413d00000080042002700000063a0520009c000000000402a0190000063a0520009c0000000005000019000000100500203900000008065001bf000006070740009c00000000050620190000004006400270000006070740009c000000000406201900000004065001bf000005fe0740009c00000000050620190000002006400270000005fe0740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000006070860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200000a1b0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000a130000413d000000000700004b00000a1d0000613d0000000007040433000000000707004b0000033b0000613d00000000070604330000063907700197000000f808500210000000000778019f0000063b0770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500000b7c0000013d00000007010000290000000001010433000000000201004b00000a5c0000613d0000060602000041000000200310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000003010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a5c0000c13d000000400100043d00000064021000390000062603000041000000000032043500000044021000390000062703000041000000000032043500000024021000390000002a03000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000000400300043d0000002401300039000000090200002900000000002104350000061a010000410000000000130435000700000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040220008c00000af80000c13d0000000103000031000000200130008c0000002004000039000000000403401900000b2b0000013d000000400400043d000006380540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000a790000413d0000000006040433000000000606004b0000033b0000613d000000f8063002100000060607000041000000000303004b0000000003060019000000000307601900000000060504330000063906600197000000000336019f00000000003504350000000b03000029000000a4033000390000000203300367000000000303043b000000800530008c00000c620000413d00000080053002700000063a0630009c000000000503a0190000063a0630009c0000000006000019000000100600203900000008076001bf000006070850009c00000000060720190000004007500270000006070850009c000000000507201900000004076001bf000005fe0850009c00000000060720190000002007500270000005fe0850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000006070970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000aca0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000ac20000413d000000000800004b00000acc0000613d0000000008050433000000000808004b0000033b0000613d00000000080704330000063908800197000000f809600210000000000889019f0000063b0880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c00000000030020190000002106500039000000000036043500000c7f0000013d0000001f0430018f000000050230027200000ae80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ae10000413d000000000504004b00000af60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000005fe02000041000005fe0310009c00000000010280190000000704000029000005fe0340009c00000000020440190000004002200210000000c001100210000000000121019f00000620011001c70000000b0200002917f417e50000040f000000070a00002900000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000b170000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b0f0000413d000000000705004b00000b270000613d0000000506600210000000000761034f000000070800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c3c0000613d0000001f01400039000000600210018f00000007010000290000000001120019000000000221004b00000000020000190000000102004039000006070410009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000000200230008c0000010d0000413d00000007020000290000000002020433000000000202004b00000cd00000c13d00000044021000390000000a03000029000000000032043500000020021000390000061c03000041000000000032043500000024031000390000000904000029000000000043043500000004030000290000000000310435000006240310009c0000012b0000213d0000008003100039000a00000003001d000000400030043f000006250310009c0000012b0000213d000000c003100039000000400030043f00000006030000290000000a040000290000000000340435000000a0031000390000061d040000410000000000430435000000000301043300000000010004140000000b04000029000000040440008c00000df20000c13d0000000102000039000000010100003100000e050000013d000000400400043d000006380540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000b690000413d0000000006040433000000000606004b0000033b0000613d000000f8062002100000060607000041000000000202004b0000000002060019000000000207601900000000060504330000063906600197000000000226019f00000000002504350000000b0200002900000064022000390000000202200367000000000202043b000000800520008c00000cf60000413d00000080052002700000063a0620009c000000000502a0190000063a0620009c0000000006000019000000100600203900000008076001bf000006070850009c00000000060720190000004007500270000006070850009c000000000507201900000004076001bf000005fe0850009c00000000060720190000002007500270000005fe0850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000006070970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000bba0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000bb20000413d000000000800004b00000bbc0000613d0000000008050433000000000808004b0000033b0000613d00000000080704330000063908800197000000f809600210000000000889019f0000063b0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500000d130000013d000000400200043d000500000002001d000006380220009c0000012b0000213d00000005030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000bd90000413d00000005030000290000000003030433000000000303004b0000033b0000613d000000f8031002100000060604000041000000000101004b0000000001030019000000000104601900000000030204330000063903300197000000000113019f0000000000120435000000230100008a0000000b020000290000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000100000004001d00000000044300190000060605000041000000000641004b0000000006000019000000000605801900000606044001970000060607100197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000004410019000000000142034f000000000101043b000006070510009c0000010d0000213d000000000513004900000020034000390000060604000041000000000653004b0000000006000019000000000604201900000606055001970000060607300197000000000857004b0000000004008019000000000557013f000006060550009c000000000406c019000000000404004b0000010d0000c13d000000010410008c00000f240000c13d000000000132034f000000000101043b000000010200008a0000060603000041000000000221004b000000000200001900000000020320190000060601100197000006060410009c00000000030080190000060601100167000006060110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b000010820000c13d000000400100043d000400000001001d000006380110009c0000012b0000213d00000004030000290000004001300039000000400010043f00000020013000390000063b02000041000000000021043500000001010000390000000000130435000010820000013d000000400200043d0000001f0430018f000000050330027200000c490000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000c410000413d000000000504004b00000c580000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000400500043d000006380650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000c6c0000413d0000000007050433000000000707004b0000033b0000613d000000f8073002100000060608000041000000000303004b0000000003070019000000000308601900000000070604330000063907700197000000000337019f00000000003604350000000b0300002900000064033000390000000203300367000000000303043b000000800630008c00000d740000413d00000080063002700000063a0730009c000000000603a0190000063a0730009c0000000007000019000000100700203900000008087001bf000006070960009c00000000070820190000004008600270000006070960009c000000000608201900000004087001bf000005fe0960009c00000000070820190000002008600270000005fe0960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b00000000090000190000000109004039000006070a80009c0000012b0000213d00000001099001900000012b0000c13d000000400080043f000000020870003900000000088604360000002109700039000000050990027200000cbd0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b00000cb50000413d000000000900004b00000cbf0000613d0000000009060433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063b0990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c00000000030020190000002107600039000000000037043500000d910000013d00000064021000390000062103000041000000000032043500000044021000390000062203000041000000000032043500000024021000390000003603000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000000400100043d00000044021000390000064203000041000000000032043500000024021000390000001f03000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400500043d000006380650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000d000000413d0000000007050433000000000707004b0000033b0000613d000000f8072002100000060608000041000000000202004b0000000002070019000000000208601900000000070604330000063907700197000000000227019f0000000000260435000000400600043d000006380260009c0000012b0000213d0000000b0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f00000020076000390000063c0800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c00000e550000413d00000080072002700000063a0820009c000000000702a0190000063a0820009c0000000008000019000000100800203900000008098001bf000006070a70009c00000000080920190000004009700270000006070a70009c000000000709201900000004098001bf000005fe0a70009c00000000080920190000002009700270000005fe0a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a004039000006070b90009c0000012b0000213d000000010aa001900000012b0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200000d610000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00000d590000413d000000000a00004b00000d630000613d000000000a070433000000000a0a004b0000033b0000613d000000000a090433000006390aa00197000000f80b800210000000000aab019f0000063b0aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500000e720000013d000000400600043d000006380760009c0000012b0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000d7e0000413d0000000008060433000000000808004b0000033b0000613d000000f8083002100000060609000041000000000303004b0000000003080019000000000309601900000000080704330000063908800197000000000338019f0000000000370435000000400700043d000006380370009c0000012b0000213d0000000b0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f00000020087000390000063c090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000f870000413d00000080083002700000063a0930009c000000000803a0190000063a0930009c00000000090000190000001009002039000000080a9001bf000006070b80009c00000000090a2019000000400a800270000006070b80009c00000000080a2019000000040a9001bf000005fe0b80009c00000000090a2019000000200a800270000005fe0b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b004039000006070ca0009c0000012b0000213d000000010bb001900000012b0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb0027200000ddf0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000dd70000413d000000000b00004b00000de10000613d000000000b080433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c900210000000000bbc019f0000063b0bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000fa40000013d000005fe04000041000005fe0520009c00000000020480190000004002200210000005fe0530009c00000000030480190000006003300210000000000223019f000005fe0310009c0000000001048019000000c001100210000000000112019f0000000b0200002917f417e00000040f000000010220018f00030000000103550000006001100270000105fe0010019d000005fe011001970000006003000039000900000003001d000000000301004b00000e250000c13d00000009010000290000000031010434000800000003001d000000000202004b00000f5a0000c13d000000000201004b000011510000c13d000000400300043d000b00000003001d0000061401000041000000000013043500000004013000390000000602000029000000000021043500000024023000390000000a0100002917f4171e0000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f600010430000006070310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000009030000290000000001130436000000030300036700000001050000310000001f0450018f000000050550027200000e450000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000e3d0000413d000000000604004b00000e090000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000e090000013d000000400700043d000006380870009c0000012b0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e5f0000413d0000000009070433000000000909004b0000033b0000613d000000f809200210000006060a000041000000000202004b000000000209001900000000020a601900000000090804330000063909900197000000000229019f0000000000280435000000400200043d00000020092000390000000008010433000000000a08004b00000e7f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b8a004b00000e780000413d00000000019800190000000000010435000000000128001900000020091000390000000008030433000000000a08004b00000e8e0000613d000000000a000019000000000b9a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b8a004b00000e870000413d00000000039800190000000000030435000000000118001900000020081000390000000003040433000000000903004b00000e9d0000613d0000000009000019000000000a8900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b00000e960000413d00000000048300190000000000040435000000000113001900000020041000390000000003050433000000000803004b00000eac0000613d000000000800001900000000094800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000938004b00000ea50000413d00000000044300190000000000040435000000000113001900000020041000390000000003060433000000000503004b00000ebb0000613d000000000500001900000000084500190000002005500039000000000965001900000000090904330000000000980435000000000835004b00000eb40000413d00000000044300190000000000040435000000000113001900000020041000390000000003070433000000000503004b00000eca0000613d000000000500001900000000064500190000002005500039000000000875001900000000080804330000000000860435000000000635004b00000ec30000413d000000000443001900000000000404350000000001210049000000000113001900000000001204350000003f03100039000000200100008a000000000313016f0000000005230019000000000335004b00000000030000190000000103004039000006070450009c0000012b0000213d00000001033001900000012b0000c13d000000400050043f000000230300008a0000000b060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b00000000080000310000000009480019000006060a000041000000000b96004b000000000b000019000000000b0a80190000060609900197000006060c600197000000000d9c004b000000000a00801900000000099c013f000006060990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000006070a60009c0000010d0000213d000000000a68004900000020089000390000060609000041000000000ba8004b000000000b000019000000000b092019000006060aa00197000006060c800197000000000dac004b0000000009008019000000000aac013f000006060aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000013f30000c13d000000000687034f000000000606043b000000010700008a0000060608000041000000000776004b000000000700001900000000070820190000060606600197000006060960009c00000000080080190000060606600167000006060660009c00000000070860190000006006000039000000000707004b000014710000c13d000006380650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000063b070000410000000000760435000000010600003900000000006504350000000006050019000014710000013d000000380210008c000010650000413d0000002002100270000005fe0310009c00000000030100190000000003022019000005fe0210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000006380440009c0000012b0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000f420000413d00000004040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063d044001c700000000004304350000000302200210000000f80220008900000000012101cf000000040200002900000021022000390000000000120435000010820000013d000000000201004b00000f710000c13d0000061e0100004100000000001004390000000b010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c7000080020200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000000101004b0000062d0000613d00000009010000290000000001010433000000000201004b000000430000613d0000060602000041000000200310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000008010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a470000613d000000430000013d000000400800043d000006380980009c0000012b0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000f910000413d000000000a080433000000000a0a004b0000033b0000613d000000f80a300210000006060b000041000000000303004b00000000030a001900000000030b6019000000000a090433000006390aa0019700000000033a019f0000000000390435000000400300043d000000200a3000390000000009010433000000000b09004b00000fb10000613d000000000b000019000000000cab0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000c9b004b00000faa0000413d0000000001a9001900000000000104350000000001390019000000200a1000390000000009020433000000000b09004b00000fc00000613d000000000b000019000000000cab0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000c9b004b00000fb90000413d0000000002a900190000000000020435000000000119001900000020091000390000000002040433000000000a02004b00000fcf0000613d000000000a000019000000000b9a0019000000200aa00039000000000c4a0019000000000c0c04330000000000cb0435000000000b2a004b00000fc80000413d00000000049200190000000000040435000000000112001900000020041000390000000002050433000000000902004b00000fde0000613d0000000009000019000000000a4900190000002009900039000000000b590019000000000b0b04330000000000ba0435000000000a29004b00000fd70000413d00000000044200190000000000040435000000000112001900000020041000390000000002060433000000000502004b00000fed0000613d000000000500001900000000094500190000002005500039000000000a650019000000000a0a04330000000000a90435000000000925004b00000fe60000413d00000000044200190000000000040435000000000112001900000020041000390000000002070433000000000502004b00000ffc0000613d000000000500001900000000064500190000002005500039000000000975001900000000090904330000000000960435000000000625004b00000ff50000413d00000000044200190000000000040435000000000112001900000020041000390000000002080433000000000502004b0000100b0000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000625004b000010040000413d000000000442001900000000000404350000000001310049000000000112001900000000001304350000003f02100039000000200100008a000000000212016f0000000005320019000000000225004b00000000020000190000000102004039000006070450009c0000012b0000213d00000001022001900000012b0000c13d000000400050043f000000230200008a0000000b060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b00000000080000310000000009480019000006060a000041000000000b96004b000000000b000019000000000b0a80190000060609900197000006060c600197000000000d9c004b000000000a00801900000000099c013f000006060990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000006070a60009c0000010d0000213d000000000a68004900000020089000390000060609000041000000000ba8004b000000000b000019000000000b092019000006060aa00197000006060c800197000000000dac004b0000000009008019000000000aac013f000006060aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000014250000c13d000000000687034f000000000606043b000000010700008a0000060608000041000000000776004b000000000700001900000000070820190000060606600197000006060960009c00000000080080190000060606600167000006060660009c00000000070860190000006006000039000000000707004b000015040000c13d000006380650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000063b070000410000000000760435000000010600003900000000006504350000000006050019000015040000013d000000400200043d000400000002001d000006380220009c0000012b0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000010710000413d00000004030000290000000003030433000000000303004b0000033b0000613d000000f80110021000000000030204330000063903300197000000000113019f0000060601100167000000000012043500000060010000390000000b0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b000010f70000c13d0000000203000029000000000432034f000000000300003100000001050000290000000005530019000000000904043b0000060604000041000000000659004b0000000006000019000000000604801900000606055001970000060607900197000000000857004b0000000004008019000000000557013f000006060550009c000000000406c019000000000404004b0000010d0000c13d00000009040000290000000004040433000000070500002900000000050504330000000606000029000000000606043300000005070000290000000007070433000000040800002900000000080804330000000a0a0000290000000009a90019000000000292034f000000000202043b000006070a20009c0000010d0000213d00000000032300490000002009900039000006060a000041000000000b39004b000000000b000019000000000b0a201900000606033001970000060609900197000000000c39004b000000000a008019000000000339013f000006060330009c00000000030b001900000000030a6019000000000303004b0000010d0000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000060702200197000000380320008c000011990000413d0000002003200270000005fe0420009c00000000040200190000000004032019000005fe0320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400600043d000006380560009c0000012b0000213d000000000343019f0000004004600039000000400040043f0000000204300039000000000446043600000000050000310000000205500367000000000700001900000005087002100000000009840019000000000885034f000000000808043b0000000000890435000000010770003a000010e10000413d0000000005060433000000000505004b0000033b0000613d00000000050404330000063905500197000000f807300210000000000557019f0000063f055001c700000000005404350000000303300210000000f80330008900000000023201cf00000021036000390000000000230435000011b30000013d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000800210008c0000115c0000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000304000029000000000442016f000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f00000002043000390000000004420436000000210530003900000005055002720000113e0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000011360000413d000000000500004b000011400000613d0000000005020433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c000000000100201900000021032000390000000000130435000011790000013d000005fe020000410000000804000029000005fe0340009c00000000030200190000000003044019000005fe0410009c000000000102801900000060011002100000004002300210000000000121019f000017f600010430000000400200043d000006380320009c0000012b0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000011660000413d0000000004020433000000000404004b0000033b0000613d000000f8041002100000060605000041000000000101004b0000000001040019000000000105601900000000040304330000063904400197000000000114019f0000000000130435000000400100043d00000020041000390000000003020433000000000503004b000011860000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000117f0000413d00000000024300190000064a0400004100000000004204350000000202300039000000000021043500000041023000390000000303000029000000000332016f0000000002130019000000000332004b00000000030000190000000103004039000006070420009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f00000002020003670000108a0000013d000000400600043d000006380360009c0000012b0000213d0000004003600039000000400030043f0000000103000039000000000336043600000000040000310000000204400367000000000500001900000005075002100000000008730019000000000774034f000000000707043b0000000000780435000000010550003a000011a30000413d0000000004060433000000000404004b0000033b0000613d000000f80220021000000000040304330000063904400197000000000242019f0000063e02200041000000000023043500000000020000310000000103000029000000000532001900000002030003670000000204000029000000000443034f000000000404043b0000060607000041000000000854004b0000000008000019000000000807801900000606055001970000060609400197000000000a59004b0000000007008019000000000559013f000006060550009c00000000050800190000000005076019000000000505004b0000010d0000c13d0000000a050000290000000005540019000000000353034f000000000403043b000006070340009c0000010d0000213d000000000242004900000020055000390000060603000041000000000725004b0000000007000019000000000703201900000606022001970000060608500197000000000928004b0000000003008019000000000228013f000006060220009c00000000020700190000000002036019000000000202004b0000010d0000c13d000000400200043d00000020032000390000000007060433000000000807004b000011eb0000613d000000000800001900000000093800190000002008800039000000000a680019000000000a0a04330000000000a90435000000000978004b000011e40000413d000000000637001900000000000604350000000006270019000000200860003900000009070000290000000007070433000000000907004b000011fc0000613d0000000009000019000000000a8900190000002009900039000000090b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011f40000413d000000000887001900000000000804350000000006670019000000200860003900000007070000290000000007070433000000000907004b0000120d0000613d0000000009000019000000000a8900190000002009900039000000070b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012050000413d000000000887001900000000000804350000000006670019000000200860003900000006070000290000000007070433000000000907004b0000121e0000613d0000000009000019000000000a8900190000002009900039000000060b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012160000413d000000000887001900000000000804350000000006670019000000200860003900000005070000290000000007070433000000000907004b0000122f0000613d0000000009000019000000000a8900190000002009900039000000050b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012270000413d000000000887001900000000000804350000000006670019000000200860003900000004070000290000000007070433000000000907004b000012400000613d0000000009000019000000000a8900190000002009900039000000040b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012380000413d0000000008870019000000000008043500000000066700190000001f0740018f000000200860003900000002055003670000000509400272000012510000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012490000413d000000000a07004b000012600000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000004460019000000200640003900000000000604350000000005010433000000000705004b0000126e0000613d000000000700001900000000086700190000002007700039000000000917001900000000090904330000000000980435000000000857004b000012670000413d000000000165001900000000000104350000000001240049000000000115001900000000001204350000003f011000390000000304000029000000000441016f0000000001240019000000000441004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f000005fe01000041000005fe0430009c000000000301801900000040033002100000000002020433000005fe0420009c00000000020180190000006002200210000000000232019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000900000001001d0000000b01000029000000e4021000390000000201000367000000000221034f000000000202043b0000060802200198000012b60000c13d0000000b03000029000000a402300039000000000221034f0000006403300039000000000331034f000000000303043b000000000402043b00000000523400a9000000000504004b000012a80000613d00000000544200d9000000000334004b000012b00000c13d0000000b030000290000012403300039000000000131034f000000000101043b000000000121001a000700000001001d000012b00000413d000012bb0000013d000006550100004100000000001004350000001101000039000000040010043f0000065601000041000017f6000104300000000b020000290000012402200039000000000121034f000000000101043b000700000001001d0000064b01000041000000000010043900000008010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c70000800a0200003917f417e50000040f00000001022001900000010d0000613d000000000101043b0000000702000029000000000112004b000012e20000a13d000000400100043d00000064021000390000065303000041000000000032043500000044021000390000065403000041000000000032043500000024021000390000002203000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f60001043000000000030000310000000b020000290000000001230049000000230410008a000001e4022000390000000201000367000000000221034f000000000202043b0000060605000041000000000642004b0000000006000019000000000605801900000606044001970000060607200197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000002420019000000000121034f000000000101043b000006070410009c0000010d0000213d000000000413004900000020052000390000060602000041000000000645004b0000000006000019000000000602201900000606044001970000060607500197000000000847004b0000000002008019000000000447013f000006060440009c000000000206c019000000000202004b0000010d0000c13d0000003f02100039000000200400008a000000000442016f000000400200043d0000000004420019000000000624004b00000000060000190000000106004039000006070740009c0000012b0000213d00000001066001900000012b0000c13d000000400040043f00000000041204360000000006510019000000000336004b0000010d0000213d0000001f0310018f000000020550036700000005061002720000132b0000613d000000000700001900000005087002100000000009840019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000013230000413d000000000703004b0000133a0000613d0000000506600210000000000565034f00000000066400190000000303300210000000000706043300000000073701cf000000000737022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000373019f0000000000360435000000000114001900000000000104350000000001020433000000410110008c000013580000c13d00000041012000390000000001010433000000ff0310018f0000001d0130008a000000030500008a000000000151004b0000136a0000213d000000400100043d00000044021000390000065203000041000000000032043500000024021000390000001603000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d00000044021000390000064c03000041000000000032043500000024021000390000001d03000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000000404043300000040012000390000000002010433000000400100043d0000064d0520009c000013810000413d00000044021000390000065103000041000000000032043500000024021000390000000903000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000600510003900000000002504350000004002100039000000000042043500000020021000390000000000320435000000090200002900000000002104350000000000000435000005fe020000410000000003000414000005fe0430009c0000000003028019000005fe0410009c00000000010280190000004001100210000000c002300210000000000112019f0000064e011001c7000000010200003917f417e50000040f00000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000504400272000013a70000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000013a00000413d000000000605004b000013b50000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013cd0000613d000000000100043300000608011001970000000802000029000000000221004b0000000002000019000000010200c039000000000101004b0000000001000019000000010100603900000000011201a00000064f01000041000000000100c019000000400200043d0000000000120435000005fe01000041000005fe0320009c0000000001024019000000400110021000000650011001c7000017f50001042e000000400200043d0000001f0430018f0000000503300272000013da0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000013d20000413d000000000504004b000013e90000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000380760008c000014570000413d0000002007600270000005fe0860009c00000000080600190000000008072019000005fe0760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000006380950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000140e0000413d0000000009050433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063d099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000014710000013d000000380760008c000014ea0000413d0000002007600270000005fe0860009c00000000080600190000000008072019000005fe0760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000006380950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000014400000413d0000000009050433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063d099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000015040000013d000006380750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000014600000413d0000000008050433000000000808004b0000033b0000613d000000f80660021000000000080704330000063908800197000000000668019f000006060660016700000000006704350000000006050019000000400500043d000006380750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000147b0000413d0000000009050433000000000909004b0000033b0000613d000000000907043300000639099001970000063e099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b000006060a000041000000000d9c004b000000000d000019000000000d0a80190000060609900197000006060ec00197000000000f9e004b000000000a00801900000000099e013f000006060990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009020433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000006070db0009c0000010d0000213d0000000007b70049000000200cc00039000006060d000041000000000e7c004b000000000e000019000000000e0d20190000060607700197000006060cc00197000000000f7c004b000000000d00801900000000077c013f000006060770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000060709700197000000380790008c000015980000413d0000002007900270000005fe0890009c000000000709a019000005fe0890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000006380b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000014d40000413d000000000b070433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c800210000000000bbc019f0000063f0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000015b10000013d000006380750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000014f30000413d0000000008050433000000000808004b0000033b0000613d000000f80660021000000000080704330000063908800197000000000668019f000006060660016700000000006704350000000006050019000000400500043d000006380750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000150e0000413d0000000009050433000000000909004b0000033b0000613d000000000907043300000639099001970000063e099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b000006060a000041000000000d9c004b000000000d000019000000000d0a80190000060609900197000006060ec00197000000000f9e004b000000000a00801900000000099e013f000006060990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009030433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000006070db0009c0000010d0000213d0000000007b70049000000200cc00039000006060d000041000000000e7c004b000000000e000019000000000e0d20190000060607700197000006060cc00197000000000f7c004b000000000d00801900000000077c013f000006060770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000060709700197000000380790008c0000165b0000413d0000002007900270000005fe0890009c000000000709a019000005fe0890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000006380b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000015670000413d000000000b070433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c800210000000000bbc019f0000063f0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000016740000013d0000001f0430018f0000000502300272000015880000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000015810000413d000000000504004b000015960000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000000400700043d000006380a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000015a10000413d000000000a070433000000000a0a004b0000033b0000613d000000f809900210000000000a080433000006390aa001970000000009a9019f0000063e099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b000006060a000041000000000b83004b000000000b000019000000000b0a80190000060608800197000006060c300197000000000d8c004b000000000a00801900000000088c013f000006060880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000003830019000000000434034f000000000804043b000006070480009c0000010d0000213d000000000489004900000020093000390000060603000041000000000a49004b000000000a000019000000000a0320190000060604400197000006060b900197000000000c4b004b000000000300801900000000044b013f000006060440009c00000000030ac019000000000303004b0000010d0000c13d000000400300043d0000002004300039000006330a0000410000000000a40435000000210b300039000000000a070433000000000c0a004b000015e90000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000015e20000413d0000000007ba0019000000000007043500000000073a0019000000210b700039000000000a020433000000000c0a004b000015f80000613d000000000c000019000000000dbc0019000000200cc00039000000000e2c0019000000000e0e04330000000000ed0435000000000dac004b000015f10000413d0000000002ba0019000000000002043500000000027a0019000000210a2000390000000007060433000000000b07004b000016070000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000016000000413d0000000006a70019000000000006043500000000022700190000001f0680018f00000021072000390000000209900367000000050a800272000016180000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000016100000413d000000000b06004b000016270000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000002820019000000210720003900000000000704350000000006050433000000000806004b000016350000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b0000162e0000413d0000000005760019000000000005043500000000023200490000000002260019000000010520003900000000005304350000004002200039000000000212016f0000000001320019000000000221004b00000000020000190000000102004039000006070510009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000005fe01000041000005fe0240009c0000000002010019000000000204401900000040022002100000000003030433000005fe0430009c00000000030180190000006003300210000000000223019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d000000400700043d000006380a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000016640000413d000000000a070433000000000a0a004b0000033b0000613d000000f809900210000000000a080433000006390aa001970000000009a9019f0000063e099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b000006060a000041000000000b82004b000000000b000019000000000b0a80190000060608800197000006060c200197000000000d8c004b000000000a00801900000000088c013f000006060880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000002820019000000000424034f000000000804043b000006070480009c0000010d0000213d000000000489004900000020092000390000060602000041000000000a49004b000000000a000019000000000a0220190000060604400197000006060b900197000000000c4b004b000000000200801900000000044b013f000006060440009c00000000020ac019000000000202004b0000010d0000c13d000000400200043d0000002004200039000006400a0000410000000000a40435000000210b200039000000000a070433000000000c0a004b000016ac0000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000016a50000413d0000000007ba0019000000000007043500000000072a0019000000210b700039000000000a030433000000000c0a004b000016bb0000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b000016b40000413d0000000003ba0019000000000003043500000000037a0019000000210a3000390000000007060433000000000b07004b000016ca0000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000016c30000413d0000000006a70019000000000006043500000000033700190000001f0680018f00000021073000390000000209900367000000050a800272000016db0000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000016d30000413d000000000b06004b000016ea0000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000003830019000000210730003900000000000704350000000006050433000000000806004b000016f80000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b000016f10000413d0000000005760019000000000005043500000000032300490000000003360019000000010530003900000000005204350000004003300039000000000313016f0000000001230019000000000331004b00000000030000190000000103004039000006070510009c0000012b0000213d00000001033001900000012b0000c13d000000400010043f000005fe01000041000005fe0340009c0000000003010019000000000304401900000040033002100000000002020433000005fe0420009c00000000020180190000006002200210000000000232019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d00000000030104330000000002320436000000000403004b0000172a0000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000017230000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000403004b000017400000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000017390000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d0003000000000002000000040100008a000000000310003100000606010000410000005f0230008c000000000200001900000000020120190000060604300197000000000504004b0000000001008019000006060440009c000000000102c019000000000101004b0000178d0000613d00000002010003670000004402100370000000000202043b000006070420009c0000178d0000213d00000000032300490000060604000041000002600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000178d0000c13d0000000003000411000080010330008c0000178b0000c13d000000000300041200000608033001970000000004000410000000000343004b0000178b0000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b0000178f0000c13d0000000004000415000000030440008a00000020044000c90000000001000414000300000000001d000100000004001d000005fe02000041000005fe0310009c0000000001028019000000c001100210000080010200003917f417e00000040f000000010300002900030000000103550000006001100270000105fe0010019d000000200130011a00000001012001950000000101200190000017a70000613d0000000001000019000017f50001042e0000000001000019000017f60001043000000000431200a900000000422300d9000000000112004b000017bc0000c13d0000000004000415000000020440008a00000020044000c90000000001000414000200000000001d000000000203004b0000177c0000613d000005fe02000041000005fe0410009c0000000001028019000000c00110021000000640011001c700008009020000390000800104000039000000000500001917f417e00000040f0000000003000415000000020330008a00000020033000c9000017840000013d000000400100043d00000064021000390000065703000041000000000032043500000044021000390000065803000041000000000032043500000024021000390000002503000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000006550100004100000000001004350000001101000039000000040010043f0000065601000041000017f600010430000000400100043d000006590210009c000017c90000813d0000002002100039000000400020043f0000000000010435000000000001042d000006550100004100000000001004350000004101000039000000040010043f0000065601000041000017f600010430000000000100041200000608011001970000000002000410000000000121004b000017d80000c13d0000000001000411000080010110008c000017da0000613d000000000001042d0000000001000019000017f50001042e000006550100004100000000001004350000000101000039000000040010043f0000065601000041000017f600010430000017e3002104210000000102000039000000000001042d0000000002000019000000000001042d000017e8002104230000000102000039000000000001042d0000000002000019000000000001042d000017ed002104210000000102000039000000000001042d0000000002000019000000000001042d000017f2002104230000000102000039000000000001042d0000000002000019000000000001042d000017f400000432000017f50001042e000017f600010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000004400000000000000000000000020746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f0000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395369676e6174757265206c656e67746820697320696e636f72726563740000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a10000000000000000000000000000000000000080000000000000000000000000202bcce7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000496e76616c69642073000000000000000000000000000000000000000000000076206973206e656974686572203237206e6f722032380000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f7065000000000000000000000000000000000000000000000000ffffffffffffffe0f02ad7a6c9bd15b4a609dc9f1d09d0fe7738d949cfb17d2adf03465aa5b8d4d8", + "bytecode": "0x0004000000000002000b00000000000200000000030100190000006007300270000005070670019700030000006103550002000000010355000005070070019d0000008004000039000000400040043f00000001022001900000002c0000c13d000000040260008c000000340000413d000000000201043b000000e002200270000005090320009c000000440000a13d0000050a0320009c000000960000613d0000050b0320009c000000c50000613d0000050c0220009c000000360000c13d000000040260008a000000200320008c000001270000413d0000000401100370000000000101043b0000050f0310009c000001270000213d00000000011200490000051002000041000002600310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000003010000613d000001270000013d0000000001000416000000000101004b000001270000c13d0000002001000039000001000010044300000120000004430000050801000041000014190001042e000000000106004b000003010000613d000000000100041200000511011001970000000002000410000000000121004b000003010000c13d0000000001000411000080010110008c000003010000c13d0000055e0100004100000000001004350000000101000039000000040010043f0000055f010000410000141a000104300000050d0320009c000001110000613d000900000004001d0000050e0220009c000000360000c13d000000040260008a000000600220008c000001270000413d0000004402100370000000000302043b0000050f0230009c000001270000213d000000040430003900000000054600490000051002000041000002600750008c000000000700001900000000070240190000051008500197000000000908004b000000000200a019000005100880009c000000000207c019000000000202004b000001270000c13d0000000002000411000080010220008c000003010000c13d000000000200041200000511072001970000000002000410000000000727004b000003010000c13d0000022403300039000000000731034f000000000707043b0000001f0550008a0000051008000041000000000957004b000000000900001900000000090880190000051005500197000005100a700197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000005470019000000000451034f000000000404043b0000050f0740009c000001270000213d000000000746004900000020055000390000051008000041000000000975004b000000000900001900000000090820190000051007700197000005100a500197000000000b7a004b000000000800801900000000077a013f000005100770009c000000000809c019000000000708004b000001270000c13d000000030740008c000002570000213d0000051501000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000053801000041000000c40010043f0000053901000041000002670000013d000000040260008a000000600220008c000001270000413d0000004402100370000000000302043b0000050f0230009c000001270000213d000000040230003900000000052600490000051004000041000002600850008c000000000800001900000000080440190000051009500197000000000a09004b000000000400a019000005100990009c000000000408c019000000000404004b000001270000c13d0000000004000411000080010440008c000003010000c13d000000000400041200000511044001970000000008000410000000000484004b000003010000c13d0000004404300039000000000441034f0000012408300039000000000381034f000000000404043b0000051104400197000000000303043b000005170930009c000001f80000413d0000051501000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000052101000041000000c40010043f00000522010000410000141a00010430000000040360008a000000600230008c000001270000413d0000004402100370000000000202043b0000050f0420009c000001270000213d00000000032300490000051004000041000002600530008c000000000500001900000000050440190000051003300197000000000603004b000000000400a019000005100330009c000000000405c019000000000304004b000001270000c13d0000000003000411000080010330008c000003010000c13d000000000300041200000511033001970000000004000410000000000343004b000003010000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b000001e00000c13d00000000040004150000000b0440008a00000020044000c90000000001000414000b00000000001d000900000004001d0000050702000041000005070310009c0000000001028019000000c0011002100000800102000039141814040000040f000000090300002900030000000103550000006001100270000105070010019d000000050130027000000001012001950000000101200190000003010000c13d000000400100043d000000640210003900000513030000410000000000320435000000440210003900000514030000410000000000320435000000240210003900000025030000390000000000320435000005150200004100000000002104350000000402100039000000200300003900000000003204350000050702000041000005070310009c0000000001028019000000400110021000000516011001c70000141a00010430000000040260008a000000600220008c000001270000413d0000004402100370000000000202043b000900000002001d0000050f0220009c000001270000213d0000000902000029000800040020003d000000080260006a0000051003000041000002600420008c000000000400001900000000040340190000051002200197000000000502004b000000000300a019000005100220009c000000000304c019000000000203004b000001290000613d00000000010000190000141a000104300000002402100370000000000202043b000700000002001d0000000002000411000080010220008c000003010000c13d000000000200041200000511022001970000000003000410000600000003001d000000000232004b000003010000c13d00000000020004140000053a03000041000000a00030043f0000000903000029000501040030003d0000000501100360000000000101043b000000a40010043f0000002401000039000000800010043f000000e001000039000000400010043f000000c0012002100000051d011001970000053b011001c700008003020000390000000003000019000000000400001900000000050000190000000006000019141814040000040f000300000001035500000000030100190000006003300270000105070030019d00000507083001970000003f038000390000053c04300197000000400600043d0000000003640019000000000443004b000000000400001900000001040040390000050f0530009c000012b60000213d0000000104400190000012b60000c13d000000400030043f000000000786043600000002030003670000000004000031000000000543034f0000001f0980003900000005099002720000016b0000613d000000000a000019000000050ba00210000000000cb70019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000001630000413d000000000900004b0000016d0000613d0000001f0980018f0000000508800272000001790000613d000000000a000019000000050ba00210000000000cb70019000000000bb1034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000001710000413d000000000a09004b000001880000613d0000000508800210000000000181034f00000000088700190000000309900210000000000a080433000000000a9a01cf000000000a9a022f000000000101043b0000010009900089000000000191022f00000000019101cf0000000001a1019f000000000018043500000001012001900000024d0000613d000000070100006b000010c80000c13d0000000501000029000001000110008a000000000113034f000000000101043b000000000201004b0000026a0000c13d0000000501300360000000400900043d000000000101043b000000800210008c000700000009001d000002a10000413d0000008002100270000005420610009c000000000201a019000005420610009c0000000006000019000000100600203900000008076001bf0000050f0820009c000000000706a01900000040062002700000050f0820009c000000000602a01900000004087001bf000005070260009c000000000807a0190000002007600270000005070260009c000000000706a01900000002028001bf0000ffff0670008c000000000208a0190000001006700270000000000607a019000000ff0660008c0000000102202039000000200600008a0000004107200039000000000667016f0000000006690019000000000796004b000000000700001900000001070040390000050f0860009c000012b60000213d0000000107700190000012b60000c13d000000400060043f00000002062000390000000707000029000000000667043600000021072000390000000507700272000001cc0000613d00000000080000190000000509800210000000000a960019000000000995034f000000000909043b00000000009a04350000000108800039000000000978004b000001c40000413d000000000700004b000001ce0000613d00000007070000290000000007070433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808200210000000000778019f000005430770004100000000007604350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000007020000290000002102200039000002b20000013d00000000431200a900000000422300d9000000000112004b000010e10000c13d00000000040004150000000a0440008a00000020044000c90000000001000414000a00000000001d000000000203004b000000ed0000613d0000050702000041000005070410009c0000000001028019000000c00110021000000512011001c7000080090200003900008001040000390000000005000019141814040000040f00000000030004150000000a0330008a00000020033000c9000000f50000013d000000a008800039000000000881034f000000000808043b0000001f0550008a0000051009000041000000000a58004b000000000a000019000000000a0980190000051005500197000005100b800197000000000c5b004b000000000900801900000000055b013f000005100550009c00000000090ac019000000000509004b000001270000c13d0000000002280019000000000521034f000000000805043b0000050f0580009c000001270000213d000000000586004900000020092000390000051002000041000000000a59004b000000000a000019000000000a0220190000051005500197000005100b900197000000000c5b004b000000000200801900000000055b013f000005100550009c00000000020ac019000000000202004b000001270000c13d0000000002000414000005070520009c000000bb0000213d000080060540008c0000000005000019000002340000c13d000000040580008c0000000005000019000002340000413d000000000a91034f0000000105000039000000000a0a043b000005180aa00197000005190ba0009c000002330000613d0000051a0ba0009c000002330000613d0000051b0ba0009c000002330000613d0000051c05a0009c00000000050000190000000105006039000000010550018f000000000a9800190000000006a6004b0000000006000019000000010600403900000000088a004b00000001066041bf0000050708900197000000000181034f000000000803004b0000035d0000c13d0000000103600190000010e10000c13d0000051e030000410000051f06000041000000000505004b000000000603c019000000c0022002100000051d02200197000000000226019f0000000003a70049000005070330019700000000013103df00000000012103af0000000002040019000003680000013d00000000010604330000050702000041000005070310009c0000000001028019000005070370009c000000000702801900000040027002100000006001100210000000000121019f0000141a00010430000000000751034f000000000707043b0000051807700197000005230870009c000002ff0000c13d000000430440008c000003940000213d0000051501000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000053501000041000000c40010043f0000053601000041000000e40010043f00000537010000410000141a00010430000000710210008c000003030000c13d0000000902000029000001c401200039000000000113034f0000000002240049000000230220008a000000000101043b0000051005000041000000000621004b0000000006000019000000000605801900000510022001970000051007100197000000000827004b0000000005008019000000000227013f000005100220009c000000000506c019000000000205004b000001270000c13d0000000801100029000000000213034f000000000202043b0000050f0520009c000001270000213d000000000524004900000020011000390000051006000041000000000751004b0000000007000019000000000706201900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d000000000512001a0000000002000414000010e10000413d000000000654004b000010e10000413d000005490620009c000006700000413d000000400100043d00000044021000390000052103000041000000000032043500000024021000390000000803000039000004920000013d000005400290009c000012b60000213d00000007060000290000004002600039000000400020043f000000010200003a00000000022604360000000006500350000000000606043b000000000062043500000c2f0000613d000000f8071002100000051008000041000000000101004b000000000807c0190000054101600197000000000181019f0000000000120435000000400100043d0000000502000029000000600220008a000000000623034f000000000606043b000000800760008c000004150000413d0000008007600270000005420860009c000000000706a019000005420860009c0000000008000019000000100800203900000008098001bf0000050f0a70009c000000000908a01900000040087002700000050f0a70009c000000000807a019000000040a9001bf000005070780009c000000000a09a0190000002009800270000005070780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008810019000000000918004b000000000900001900000001090040390000050f0a80009c000012b60000213d0000000109900190000012b60000c13d000000400080043f0000000208700039000000000881043600000021097000390000000509900272000002ed0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002e50000413d000000000900004b000002ef0000613d0000000009010433000000000909004b00000c2f0000613d00000000090804330000054109900197000000f80a70021000000000099a019f000005430990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107100039000004250000013d000005240170009c000003b30000c13d0000000001000019000014190001042e000000020210008c000003bb0000c13d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400300043d000000000401043b000000800140008c0000049e0000413d0000008001400270000005420240009c000000000104a019000005420240009c0000000002000019000000100200203900000008052001bf0000050f0610009c000000000502a01900000040021002700000050f0610009c000000000201a01900000004015001bf000005070620009c000000000105a0190000002006200270000005070520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000050f0610009c000012b60000213d0000000102200190000012b60000c13d000000400010043f0000000201500039000000000613043600000002010003670000000002000031000000210750003900000005077002720000034b0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000003430000413d000000000700004b0000034d0000613d0000000007030433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000004b10000013d0000000106600190000010e10000c13d0000000006a70049000005070660019700000000016103df000000c0022002100000051d022001970000051e022001c700000000012103af000080090200003900000000060000191418140e0000040f000300000001035500000000030100190000006003300270000105070030019d00000507033001970000000102200190000004710000613d000000400200043d000005200120009c000012b60000213d0000002001200039000000400010043f00000000000204350000002003000039000000400100043d0000000004310436000000000302043300000000003404350000004004100039000000000503004b000003860000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000037f0000413d000000000243001900000000000204350000005f02300039000000200300008a000000000232016f0000050703000041000005070420009c0000000002038019000005070410009c000000000103801900000040011002100000006002200210000000000112019f000014190001042e0000000404500039000000000541034f000000000505043b000800000005001d000005110550009c000001270000213d000001400330008a000000000331034f0000002004400039000000000441034f000000000404043b000700000004001d000000000303043b0000052604000041000000800040043f0000051102200197000500000002001d000000840020043f0000051102300197000600000002001d000000a40020043f00000000020004140000000803000029000000040330008c000004fd0000c13d000000000161034f0000000103000031000000200230008c00000000040300190000002004008039000005290000013d0000051501000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000052501000041000000c20000013d000000010110008c0000048c0000c13d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400300043d000000000401043b000000800140008c000005500000413d0000008001400270000005420240009c000000000104a019000005420240009c0000000002000019000000100200203900000008052001bf0000050f0610009c000000000502a01900000040021002700000050f0610009c000000000201a01900000004015001bf000005070620009c000000000105a0190000002006200270000005070520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000050f0610009c000012b60000213d0000000102200190000012b60000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000004030000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000003fb0000413d000000000700004b000004050000613d0000000007030433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000005630000013d000005400710009c000012b60000213d0000004007100039000000400070043f000000010700003a00000000077104360000000008500350000000000808043b000000000087043500000c2f0000613d000000f809600210000005100a000041000000000606004b000000000a09c01900000541068001970000000006a6019f0000000000670435000000400220008a000000000623034f000000400200043d000000000606043b000000800760008c000005af0000413d0000008007600270000005420860009c000000000706a019000005420860009c0000000008000019000000100800203900000008098001bf0000050f0a70009c000000000908a01900000040087002700000050f0a70009c000000000807a019000000040a9001bf000005070780009c000000000a09a0190000002009800270000005070780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008820019000000000928004b000000000900001900000001090040390000050f0a80009c000012b60000213d0000000109900190000012b60000c13d000000400080043f00000002087000390000000008820436000000210970003900000005099002720000045f0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000004570000413d000000000900004b000004610000613d0000000009020433000000000909004b00000c2f0000613d00000000090804330000054109900197000000f80a70021000000000099a019f000005430990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107200039000005bf0000013d0000001f0430018f00000005023002720000047c0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004750000413d000000000504004b0000048a0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000141a00010430000000400100043d00000044021000390000053d030000410000000000320435000000240210003900000017030000390000000000320435000005150200004100000000002104350000000402100039000000200300003900000000003204350000050702000041000005070310009c0000000001028019000000400110021000000534011001c70000141a00010430000005400130009c000012b60000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8074002100000051008000041000000000404004b000000000807c0190000054104600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008430000413d0000008006500270000005420750009c000000000605a019000005420750009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000004eb0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000004e30000413d000000000800004b000004ed0000613d0000000008040433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000008540000013d0000050701000041000005070320009c0000000002018019000000c00120021000000527011001c70000000802000029141814090000040f000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005160000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000050e0000413d000000000705004b000005250000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000064d0000613d0000001f02400039000000600520018f00000080025001bf000000400020043f000000200430008c000001270000413d000000800400043d000000070440006c000003010000813d000000a00450003900000528060000410000000000640435000000a40650003900000006070000290000000000760435000000c40650003900000000000604350000004406000039000100000006001d00000000006204350000014006500039000000400060043f00000120065000390000052907000041000000000076043500000100065001bf0000002005000039000300000005001d000200000006001d0000000000560435000000000502043300000000020004140000000806000029000000040660008c000008a20000c13d00000001020000390000050f0430009c000012b60000213d000008b60000013d000005400130009c000012b60000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8074002100000051008000041000000000404004b000000000807c0190000054104600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008f80000413d0000008006500270000005420750009c000000000605a019000005420750009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f00000002076000390000000007740436000000210860003900000005088002720000059d0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005950000413d000000000800004b0000059f0000613d0000000008040433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000009090000013d000005400720009c000012b60000213d0000004007200039000000400070043f000000010700003a00000000077204360000000008500350000000000808043b000000000087043500000c2f0000613d000000f809600210000005100a000041000000000606004b000000000a09c01900000541068001970000000006a6019f0000000000670435000000400600043d000500000006001d00000020076000390000000006010433000000000806004b000005ce0000613d000000000800001900000000097800190000002008800039000000000a180019000000000a0a04330000000000a90435000000000968004b000005c70000413d000000000176001900000000000104350000000007020433000000000807004b000005db0000613d000000000800001900000000091800190000002008800039000000000a280019000000000a0a04330000000000a90435000000000978004b000005d40000413d000000000117001900000000000104350000000001670019000000050600002900000000001604350000003f011000390001002000000092000000010110017f0000000002610019000000000112004b00000000010000190000000101004039000400000002001d0000050f0220009c000012b60000213d0000000101100190000012b60000c13d0000000401000029000000400010043f000005400110009c000012b60000213d00000009070000290000004401700039000000000113034f000000000101043b00000004080000290000004002800039000000400020043f000000200280003900000544060000410000000000620435000000150200003900000000002804350000006001100210000000210280003900000000001204350000012401700039000000000213034f000000400600043d000300000006001d000000000202043b000000800620008c000009fe0000413d0000008006200270000005420720009c000000000602a019000005420720009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000010770017f0000000307700029000000030870006c000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000006390000613d0000000009000019000000050a900210000000000ba70019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000006310000413d000000000800004b0000063b0000613d00000003080000290000000008080433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000000306000029000000210660003900000a100000013d000000400200043d0000001f0430018f00000005053002720000065a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006520000413d000000000604004b000006690000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000050701000041000005070420009c000000000201801900000040012002100000006002300210000000000121019f0000141a000104300000050701100197000000000113034f0000000003540049000005070330019700000000013103df000000c0022002100000051d022001970000051f022001c700000000012103af0000801002000039141814130000040f00000000030100190000006003300270000105070030019d000005070530019700030000000103550000000102200190000009570000613d0000003f025000390000053c02200197000000400600043d0000000002260019000000000362004b000000000300001900000001030040390000050f0420009c000012b60000213d0000000103300190000012b60000c13d000000400020043f0000000004560436000000020200036700000000030000310000001f0750003900000005077002720000069e0000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006960000413d000000000700004b000006a00000613d0000001f0750018f0000000505500272000006ac0000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b000006a40000413d000000000807004b000006bb0000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c000009f70000c13d00000009060000290000000001630049000000230510008a000702040060003d0000000701200360000000000101043b0000051006000041000000000751004b0000000007000019000000000706801900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d0000000004040433000400000004001d0000000801100029000000000412034f000000000504043b0000050f0450009c000001270000213d0000000504500210000000000343004900000020061000390000051001000041000000000736004b0000000007000019000000000701201900000510033001970000051008600197000000000938004b0000000001008019000000000338013f000005100330009c000000000107c019000000000101004b000001270000c13d000000400100043d00000020031000390000054a05500198000006f60000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000006ee0000413d000000000200004b000006f80000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b000000000400001900000001040040390000050f0520009c000012b60000213d0000000104400190000012b60000c13d000000400020043f0000050702000041000005070430009c000000000302801900000040033002100000000001010433000005070410009c00000000010280190000006001100210000000000131019f0000000003000414000005070430009c0000000003028019000000c002300210000000000112019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d0000000002000031000000090320006a000000230530008a000000070300002900000020043000390000000203000367000000000443034f000000000404043b0000051006000041000000000754004b0000000007000019000000000706801900000510055001970000051008400197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000101043b000700000001001d000000000106004b000001270000c13d0000000801400029000000000413034f000000000404043b0000050f0540009c000001270000213d000000000542004900000020011000390000051006000041000000000751004b0000000007000019000000000706201900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d000000000514001a0000000004000414000010e10000413d000000000652004b000010e10000413d000005070640009c0000029a0000213d0000050701100197000000000113034f0000000002520049000005070220019700000000012103df000000c0024002100000051d022001970000051f022001c700000000012103af0000801002000039141814130000040f00000000030100190000006003300270000105070030019d000005070330019700030000000103550000000102200190000011eb0000613d0000003f023000390000053c02200197000000400500043d0000000002250019000000000452004b000000000400001900000001040040390000050f0620009c000012b60000213d0000000104400190000012b60000c13d000000400020043f000000000235043600000002040003670000001f063000390000000506600272000007770000613d000000000740036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000076f0000413d000000000600004b000007790000613d0000001f0630018f0000000503300272000007850000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b0000077d0000413d000000000706004b000007940000613d0000000503300210000000000131034f00000000033200190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001304350000000001050433000000200110008c000009f70000c13d000000090c0000290000006401c00039000000000114034f0000004403c00039000000000534034f0000002403c00039000000000634034f0000012403c00039000000000734034f0000000508400360000000e403c00039000000000934034f000000c403c00039000000000a34034f000000a403c00039000000000b34034f0000008403c00039000000000c34034f0000000803400360000000000303043b000000000406043b000000000505043b000000000601043b000000000c0c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a002100039000000070d0000290000000000d204350000018002100039000000040d0000290000000000d2043500000160021000390000000000720435000001400210003900000000008204350000012002100039000000000092043500000100021000390000000000a20435000000e0021000390000000000b20435000000c0021000390000000000c20435000000a002100039000000000062043500000080021000390000000000520435000000600210003900000000004204350000004002100039000000000032043500000020021000390000054c030000410000000000320435000001c00300003900000000003104350000054d0310009c000012b60000213d000001e003100039000000400030043f0000050704000041000005070320009c000000000204801900000040022002100000000001010433000005070310009c00000000010480190000006001100210000000000121019f0000000002000414000005070320009c0000000002048019000000c002200210000000000112019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d000000000101043b000500000001001d000000400100043d000700000001001d0000053e0100004100000000001004390000000001000414000005070210009c0000050701008041000000c0011002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d00000007040000290000002002400039000000000101043b0000054e0300004100000000003204350000008003400039000000000013043500000060014000390000054f03000041000000000031043500000040014000390000055003000041000000000031043500000080010000390000000000140435000005510140009c000012b60000213d0000000704000029000000a001400039000000400010043f0000050701000041000005070320009c000000000201801900000040022002100000000003040433000005070430009c00000000030180190000006003300210000000000223019f0000000003000414000005070430009c0000000003018019000000c001300210000000000121019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d000000000301043b000000400100043d00000042021000390000000504000029000000000042043500000020021000390000055204000041000000000042043500000022041000390000000000340435000000420300003900000000003104350000052f0310009c000012b60000213d0000008003100039000000400030043f0000050703000041000005070420009c000000000203801900000040022002100000000001010433000005070410009c00000000010380190000006001100210000000000121019f0000000002000414000005070420009c0000000002038019000000c002200210000000000112019f000010c00000013d000005400640009c000012b60000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c2f0000613d000000f8085002100000051009000041000000000505004b000000000908c0190000054105700197000000000595019f0000000000560435000000400500043d0000000506000029000000400760008a000000000671034f000000000606043b000000800860008c000009910000413d0000008008600270000005420960009c000000000806a019000005420960009c00000000090000190000001009002039000000080a9001bf0000050f0b80009c000000000a09a01900000040098002700000050f0b80009c000000000908a019000000040ba001bf000005070890009c000000000b0aa019000000200a900270000005070890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000050f0b90009c000012b60000213d000000010aa00190000012b60000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000008900000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000008880000413d000000000a00004b000008920000613d000000000a050433000000000a0a004b00000c2f0000613d000000000a090433000005410aa00197000000f80b800210000000000aab019f000005430aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000009a20000013d0000050701000041000005070350009c000000000501801900000060035002100000004004400210000000000343019f000005070420009c0000000002018019000000c001200210000000000113019f0000000802000029141814040000040f000400600000003d000000010220018f000300000001035500000000030100190000006003300270000105070030019d0000050703300198000008e20000613d0000003f04300039000000200500008a000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000050f0640009c000012b60000213d0000000105500190000012b60000c13d000000400040043f0000001f0430018f000000040500002900000000083504360000000503300272000008d20000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000008ca0000413d000900000008001d000000000504004b000008e20000613d0000000503300210000000000131034f00000009033000290000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000004010000290000000001010433000000000202004b000009720000c13d000000000201004b000009ef0000c13d000000400300043d000900000003001d0000051501000041000000000013043500000004013000390000000302000029000000000021043500000024023000390000000201000029141813f00000040f000000090400002900000000014100490000050702000041000005070310009c0000000001028019000009f30000013d000005400640009c000012b60000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c2f0000613d000000f8085002100000051009000041000000000505004b000000000908c0190000054105700197000000000595019f0000000000560435000000400500043d0000000506000029000000600660008a000000000761034f000000000707043b000000800870008c00000a560000413d0000008008700270000005420970009c000000000807a019000005420970009c00000000090000190000001009002039000000080a9001bf0000050f0b80009c000000000a09a01900000040098002700000050f0b80009c000000000908a019000000040ba001bf000005070890009c000000000b0aa019000000200a900270000005070890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000050f0b90009c000012b60000213d000000010aa00190000012b60000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000009450000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000093d0000413d000000000a00004b000009470000613d000000000a050433000000000a0a004b00000c2f0000613d000000000a090433000005410aa00197000000f80b800210000000000aab019f000005430aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c0000000007002019000000210850003900000a670000013d0000001f0350018f0000000502500272000009620000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b0000095b0000413d000000000403004b000009700000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f000000000012043500000060015002100000141a00010430000000000201004b00000b170000c13d0000052a0100004100000000001004390000000801000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800202000039141814090000040f0000000102200190000011050000613d000000000101043b000000000101004b00000b130000c13d000000400100043d00000044021000390000053303000041000000000032043500000024021000390000001d0300003900000000003204350000051502000041000000000021043500000004021000390000000303000029000004970000013d000005400850009c000012b60000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a600210000005100b000041000000000606004b000000000b0ac01900000541069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c00000ab40000413d0000008009800270000005420a80009c000000000908a019000005420a80009c000000000a000019000000100a002039000000080ba001bf0000050f0c90009c000000000b0aa019000000400a9002700000050f0c90009c000000000a09a019000000040cb001bf0000050709a0009c000000000c0ba019000000200ba002700000050709a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b0040390000050f0ca0009c000012b60000213d000000010bb00190000012b60000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb00272000009dd0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000009d50000413d000000000b00004b000009df0000613d000000000b060433000000000b0b004b00000c2f0000613d000000000b0a0433000005410bb00197000000f80c900210000000000bbc019f000005430bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210960003900000ac50000013d0000050702000041000005070310009c00000000010280190000000904000029000005070340009c00000000040280190000004002400210000002540000013d000000400100043d00000044021000390000054b03000041000000000032043500000024021000390000001f03000039000004920000013d0000000306000029000005400660009c000012b60000213d00000003070000290000004006700039000000400060043f000000010600003a00000000066704360000000007500350000000000707043b000000000076043500000c2f0000613d000000f8082002100000051009000041000000000202004b000000000908c0190000054102700197000000000292019f0000000000260435000000080640006a000000a001100039000000000213034f000000000202043b0000001f0660008a000005100760019700000510082001970000051009000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000862004b0000000009004019000005100770009c000000000a09c01900000000070a004b000001270000c13d0000000808200029000000000783034f000000000707043b0000050f0970009c000001270000213d00000000097400490000002008800039000005100a000041000000000b98004b000000000b000019000000000b0a20190000051009900197000005100c800197000000000d9c004b000000000a00801900000000099c013f000005100990009c000000000a0bc01900000000090a004b000001270000c13d000000010970008c00000c5c0000c13d000000000583034f000000000505043b000000010700008a0000051008000041000000000775004b000000000700001900000000070820190000051005500197000005100950009c00000000080080190000051005500167000005100550009c000000000807c019000200600000003d000000000508004b00000dc20000c13d000000400500043d000200000005001d000005400550009c000012b60000213d00000002080000290000004005800039000000400050043f0000002005800039000005430700004100000000007504350000000105000039000000000058043500000dc20000013d000005400850009c000012b60000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a700210000005100b000041000000000707004b000000000b0ac01900000541079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c00000b4d0000413d0000008009800270000005420a80009c000000000908a019000005420a80009c000000000a000019000000100a002039000000080ba001bf0000050f0c90009c000000000b0aa019000000400a9002700000050f0c90009c000000000a09a019000000040cb001bf0000050709a0009c000000000c0ba019000000200ba002700000050709a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000050f0ca0009c000012b60000213d000000010bb00190000012b60000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb0027200000aa20000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000a9a0000413d000000000b00004b00000aa40000613d000000000b070433000000000b0b004b00000c2f0000613d000000000b0a0433000005410bb00197000000f80c900210000000000bbc019f000005430bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210970003900000b5e0000013d000005400960009c000012b60000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000000f80b800210000005100c000041000000000808004b000000000c0bc0190000054108a001970000000008c8019f0000000000890435000000400800043d00070040007000920000000709100360000000000909043b000000800a90008c00000c240000413d000000800a900270000005420b90009c000000000a09a019000005420b90009c000000000b000019000000100b002039000000080cb001bf0000050f0da0009c000000000c0ba019000000400ba002700000050f0da0009c000000000b0aa019000000040dc001bf000005070ab0009c000000000d0ca019000000200cb00270000005070ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000050f0db0009c000012b60000213d000000010cc00190000012b60000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000b000000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b00000af80000413d000000000700004b00000b020000613d0000000007080433000000000707004b00000c2f0000613d00000000070b04330000054107700197000000f80ca0021000000000077c019f000005430770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c00000000090020190000002107800039000000000097043500000d4e0000013d00000004010000290000000001010433000000000201004b00000b3a0000613d0000051002000041000000200310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000001270000c13d00000009010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001270000c13d000000000101004b00000b3a0000c13d000000400100043d00000064021000390000053103000041000000000032043500000044021000390000053203000041000000000032043500000024021000390000002a03000039000000000032043500000515020000410000000000210435000000040210003900000003030000290000010a0000013d000000400300043d00000024013000390000000602000029000000000021043500000526010000410000000000130435000900000003001d00000004013000390000000502000029000000000021043500000000010004140000000802000029000000040220008c00000bbe0000c13d0000000103000031000000200130008c0000000004030019000000200400803900000bf00000013d000005400970009c000012b60000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000000f80b800210000005100c000041000000000808004b000000000c0bc0190000054108a001970000000008c8019f0000000000890435000000400900043d000005400890009c000012b60000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000005440b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000700000006001d000000800a60008c00000c870000413d0000000706000029000000800a600270000005420b60009c000000000a06a019000005420b60009c000000000b000019000000100b002039000000080cb001bf0000050f0da0009c000000000c0ba019000000400ba002700000050f0da0009c000000000b0aa019000000040dc001bf000005070ab0009c000000000d0ca019000000200cb00270000005070ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000050f0db0009c000012b60000213d000000010cc00190000012b60000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000bab0000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b00000ba30000413d000000000600004b00000bad0000613d0000000006080433000000000606004b00000c2f0000613d00000000060b04330000054106600197000000f80ca0021000000000066c019f000005430660004100000000006b04350000000306a00210000000f806600089000000070a6001ef000000ff0660008c000000000a00201900000021068000390000000000a6043500000c9a0000013d0000050702000041000005070310009c00000000010280190000000904000029000005070340009c00000000020440190000004002200210000000c001100210000000000121019f0000052c011001c70000000802000029141814090000040f000000090a000029000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bdd0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000bd50000413d000000000705004b00000bec0000613d0000000506600210000000000761034f00000009066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c330000613d0000001f01400039000000600210018f0000000901200029000000000221004b000000000200001900000001020040390000050f0410009c000012b60000213d0000000102200190000012b60000c13d000000400010043f000000200230008c000001270000413d0000004404100039000000240510003900000009020000290000000002020433000000000202004b00000c500000c13d0000002002100039000005280600004100000000006204350000000606000029000000000065043500000007050000290000000000540435000000010400002900000000004104350000052f0410009c000012b60000213d0000008004100039000900000004001d000000400040043f000005300410009c000012b60000213d000000c004100039000000400040043f000000030400002900000009050000290000000000450435000000a00410003900000529050000410000000000540435000000000401043300000000010004140000000805000029000000040550008c00000f490000c13d00000001020000390000050f0130009c000012b60000213d00000f5f0000013d000005400780009c000012b60000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba043500000d470000c13d0000055e0100004100000000001004350000003201000039000000410000013d000000400200043d0000001f0430018f000000050530027200000c400000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000c380000413d000000000604004b00000c4f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000006690000013d00000515020000410000000000210435000000040210003900000003030000290000000000320435000000360200003900000000002504350000052d02000041000000000024043500000064021000390000052e030000410000010a0000013d000000400800043d000200000008001d000000380870008c00000db10000413d0000002009700270000005070870009c000000000907a019000005070870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000020a000029000005400aa0009c000012b60000213d000000000898019f000000020a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000005500350000000000505043b000000000059043500000c2f0000613d0000054105500197000000f80a80021000000000055a019f00000545055001c700000000005904350000000305800210000000f80550015f00000000055701cf00000002070000290000002107700039000000000057043500000dc20000013d000005400680009c000012b60000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba043500000c2f0000613d000000070d000029000000f806d00210000005100c000041000000000d0d004b000000000c06c0190000054106b001970000000006c6019f00000000006a0435000000400600043d000000200b600039000000000a030433000000000c0a004b00000ca70000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b00000ca00000413d0000000003ba0019000000000003043500000000036a0019000000200b300039000000000a040433000000000c0a004b00000cb60000613d000000000c000019000000000dbc0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dac004b00000caf0000413d0000000004ba0019000000000004043500000000033a0019000000200a3000390000000004050433000000000b04004b00000cc50000613d000000000b000019000000000cab0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b00000cbe0000413d0000000005a400190000000000050435000000000334001900000020053000390000000004070433000000000a04004b00000cd40000613d000000000a000019000000000b5a0019000000200aa00039000000000c7a0019000000000c0c04330000000000cb0435000000000b4a004b00000ccd0000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000704004b00000ce30000613d0000000007000019000000000a5700190000002007700039000000000b970019000000000b0b04330000000000ba0435000000000a47004b00000cdc0000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000704004b00000cf20000613d000000000700001900000000095700190000002007700039000000000a870019000000000a0a04330000000000a90435000000000947004b00000ceb0000413d000000000554001900000000000504350000000003630049000000000334001900000000003604350000003f04300039000000200300008a000000000434016f0000000007640019000000000447004b000000000400001900000001040040390000050f0570009c000012b60000213d0000000104400190000012b60000c13d000000400070043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b0000051008000041000000000954004b000000000900001900000000090880190000051005500197000005100a400197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000805400029000000000451034f000000000404043b0000050f0840009c000001270000213d000000000842004900000020055000390000051009000041000000000a85004b000000000a000019000000000a0920190000051008800197000005100b500197000000000c8b004b000000000900801900000000088b013f000005100880009c00000000090ac019000000000809004b000001270000c13d000000010840008c000012060000c13d000000000851034f000000000808043b000000010900008a000005100a000041000000000998004b000000000900001900000000090a20190000051008800197000005100b80009c000000000a0080190000051008800167000005100880009c000000000a09c019000000600800003900000000090a004b000012670000c13d000005400870009c000012b60000213d0000004008700039000000400080043f000000200870003900000543090000410000000000980435000000010800003900000000008704350000000008070019000012670000013d000000f807900210000005100c000041000000000909004b000000000c07c0190000054107b001970000000007c7019f00000000007a0435000000400a00043d0000054007a0009c000012b60000213d000000070c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a00039000005440b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000700000007001d000000800b70008c00000e230000413d0000000707000029000000800b700270000005420c70009c000000000b07a019000005420c70009c000000000c000019000000100c002039000000080dc001bf0000050f0eb0009c000000000d0ca019000000400cb002700000050f0eb0009c000000000c0ba019000000040ed001bf000005070bc0009c000000000e0da019000000200dc00270000005070bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000500000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000050f0ec0009c000012b60000213d000000010dd00190000012b60000c13d0000004000c0043f0000000507000029000000020c700039000000000cc90436000000210d700039000000050dd0027200000d9d0000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b00000d950000413d000000000700004b00000d9f0000613d0000000007090433000000000707004b00000c2f0000613d00000000070c04330000054107700197000000050d000029000000f80bd0021000000000077b019f000005430770004100000000007c04350000000307d00210000000f807700089000000070b7001ef000000ff0770008c000000000b00201900000021079000390000000000b7043500000e360000013d0000000208000029000005400880009c000012b60000213d00000002090000290000004008900039000000400080043f000000010800003a00000000088904360000000005500350000000000505043b000000000058043500000c2f0000613d000000f8077002100000054105500197000000000575019f00000510055001670000000000580435000000800110008a000000000513034f0000006001000039000000000505043b000000000505004b00000ef20000c13d0000051005000041000000000762004b0000000007000019000000000705801900000510066001970000051008200197000000000968004b0000000005008019000000000668013f000005100660009c000000000507c019000000000505004b000001270000c13d000000070500002900000000060504330000000505000029000000000705043300000004050000290000000008050433000000030500002900000000090504330000000205000029000000000a0504330000000805200029000000000253034f000000000202043b0000050f0b20009c000001270000213d000000000b2400490000002005500039000005100c000041000000000db5004b000000000d000019000000000d0c2019000005100bb00197000005100e500197000000000fbe004b000000000c008019000000000bbe013f000005100bb0009c000000000c0dc019000000000b0c004b000001270000c13d0000000006670019000000000686001900000000069600190000000006a60019000000000626001900000000070104330000000006760019000000400700043d0000050f06600197000000380860008c000010070000413d0000002009600270000005070860009c000000000906a019000005070860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a70009c000012b60000213d000000000898019f0000004009700039000000400090043f000000000943034f000000020480003a00000000044704360000000009900350000000000909043b000000000094043500000c2f0000613d0000054109900197000000f80a80021000000000099a019f00000547099001c700000000009404350000000304800210000000f80440015f00000000044601cf00000021067000390000000000460435000010170000013d000005400790009c000012b60000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb043500000c2f0000613d000000070e000029000000f807e00210000005100d000041000000000e0e004b000000000d07c0190000054107c001970000000007d7019f00000000007b0435000000400700043d000000200c700039000000000b030433000000000d0b004b00000e430000613d000000000d000019000000000ecd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ebd004b00000e3c0000413d0000000003cb0019000000000003043500000000037b0019000000200c300039000000000b040433000000000d0b004b00000e520000613d000000000d000019000000000ecd0019000000200dd00039000000000f4d0019000000000f0f04330000000000fe0435000000000ebd004b00000e4b0000413d0000000004cb0019000000000004043500000000033b0019000000200b3000390000000004050433000000000c04004b00000e610000613d000000000c000019000000000dbc0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000d4c004b00000e5a0000413d0000000005b400190000000000050435000000000334001900000020053000390000000004060433000000000b04004b00000e700000613d000000000b000019000000000c5b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c4b004b00000e690000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000604004b00000e7f0000613d0000000006000019000000000b5600190000002006600039000000000c860019000000000c0c04330000000000cb0435000000000b46004b00000e780000413d000000000554001900000000000504350000000003340019000000200530003900000000040a0433000000000604004b00000e8e0000613d000000000600001900000000085600190000002006600039000000000ba60019000000000b0b04330000000000b80435000000000846004b00000e870000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000604004b00000e9d0000613d000000000600001900000000085600190000002006600039000000000a960019000000000a0a04330000000000a80435000000000846004b00000e960000413d000000000554001900000000000504350000000003730049000000000334001900000000003704350000003f04300039000000200300008a000000000434016f0000000006740019000000000446004b000000000400001900000001040040390000050f0560009c000012b60000213d0000000104400190000012b60000c13d000000400060043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b0000051008000041000000000954004b000000000900001900000000090880190000051005500197000005100a400197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000805400029000000000451034f000000000404043b0000050f0840009c000001270000213d000000000842004900000020055000390000051009000041000000000a85004b000000000a000019000000000a0920190000051008800197000005100b500197000000000c8b004b000000000900801900000000088b013f000005100880009c00000000090ac019000000000809004b000001270000c13d000000010840008c0000122e0000c13d000000000851034f000000000808043b000000010900008a000005100a000041000000000998004b000000000900001900000000090a20190000051008800197000005100b80009c000000000a0080190000051008800167000005100880009c000000000a09c019000000600800003900000000090a004b000012b30000c13d000005400860009c000012b60000213d0000004008600039000000400080043f000000200860003900000543090000410000000000980435000000010800003900000000008604350000000008060019000012b30000013d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400200043d000000000101043b000000800310008c00000f9e0000413d0000008003100270000005420410009c000000000301a019000005420410009c0000000004000019000000100400203900000008054001bf0000050f0630009c000000000504a01900000040043002700000050f0630009c000000000403a01900000004035001bf000005070640009c000000000305a0190000002006400270000005070540009c000000000604a01900000002053001bf0000ffff0460008c000000000503a0190000001003600270000000000306a019000000ff0330008c00000001055020390000004103500039000000010330017f0000000003320019000000000423004b000000000400001900000001040040390000050f0630009c000012b60000213d0000000104400190000012b60000c13d000000400030043f00000002035000390000000006320436000000020300036700000000040000310000002107500039000000050770027200000f370000613d000000000843034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f2f0000413d000000000700004b00000f390000613d0000000007020433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000015101cf000000ff0550008c0000000001002019000000210520003900000fb10000013d0000050703000041000005070520009c00000000020380190000004002200210000005070540009c00000000040380190000006004400210000000000224019f000005070410009c0000000001038019000000c001100210000000000112019f0000000802000029141814040000040f000700600000003d000600800000003d000000010220018f00030000000103550000006001100270000105070010019d000005070310019800000f8c0000613d0000003f01300039000000200400008a000000000141016f000000400400043d0000000001140019000700000004001d000000000441004b000000000400001900000001040040390000050f0510009c000012b60000213d0000000104400190000012b60000c13d000000400010043f0000001f0130018f000000070400002900000000083404360000000304000367000000050330027200000f7c0000613d000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000635004b00000f740000413d000600000008001d000000000501004b00000f8c0000613d0000000503300210000000000434034f00000006033000290000000301100210000000000503043300000000051501cf000000000515022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000151019f000000000013043500000007010000290000000001010433000000000202004b00000fd60000c13d000000000201004b000010020000c13d000000400300043d000800000003001d0000051501000041000000000013043500000004013000390000000302000029000000000021043500000024023000390000000901000029141813f00000040f0000000804000029000008f30000013d000005400320009c000012b60000213d0000004003200039000000400030043f000000010300003a000000000532043600000000040000310000000203000367000000000643034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8071002100000051008000041000000000101004b000000000807c0190000054101600197000000000181019f0000000000150435000000400100043d00000020061000390000000005020433000000000705004b00000fbf0000613d000000000700001900000000086700190000002007700039000000000927001900000000090904330000000000980435000000000857004b00000fb80000413d000000000265001900000553060000410000000000620435000000020250003900000000002104350000004102500039000000010520017f0000000002150019000000000552004b000000000500001900000001050040390000050f0620009c000012b60000213d0000000105500190000012b60000c13d0000000906000029000001c405600039000000400020043f000000000253034f0000000005640049000000230650008a000000000202043b00000dc80000013d000000000201004b00000fed0000c13d0000052a0100004100000000001004390000000801000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800202000039141814090000040f0000000102200190000011050000613d000000000101043b000000000101004b000009850000613d00000007010000290000000001010433000000000201004b000003010000613d0000051002000041000000200310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000001270000c13d00000006010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001270000c13d000000000101004b000003010000c13d00000b2b0000013d0000050702000041000005070310009c00000000010280190000000604000029000009f30000013d000005400870009c000012b60000213d0000004008700039000000400080043f000000000843034f000000010400003a00000000044704360000000008800350000000000808043b000000000084043500000c2f0000613d0000054108800197000000f806600210000000000686019f00000546066000410000000000640435000000400400043d00000020064000390000000008070433000000000908004b000010240000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b0000101d0000413d000000000768001900000000000704350000000007480019000000200970003900000007080000290000000008080433000000000a08004b000010340000613d000000000a000019000000000b9a0019000000200aa00039000000070ca00029000000000c0c04330000000000cb0435000000000b8a004b0000102d0000413d000000000998001900000000000904350000000007780019000000200970003900000005080000290000000008080433000000000a08004b000010440000613d000000000a000019000000000b9a0019000000200aa00039000000050ca00029000000000c0c04330000000000cb0435000000000b8a004b0000103d0000413d000000000998001900000000000904350000000007780019000000200970003900000004080000290000000008080433000000000a08004b000010540000613d000000000a000019000000000b9a0019000000200aa00039000000040ca00029000000000c0c04330000000000cb0435000000000b8a004b0000104d0000413d000000000998001900000000000904350000000007780019000000200970003900000003080000290000000008080433000000000a08004b000010640000613d000000000a000019000000000b9a0019000000200aa00039000000030ca00029000000000c0c04330000000000cb0435000000000b8a004b0000105d0000413d000000000998001900000000000904350000000007780019000000200970003900000002080000290000000008080433000000000a08004b000010740000613d000000000a000019000000000b9a0019000000200aa00039000000020ca00029000000000c0c04330000000000cb0435000000000b8a004b0000106d0000413d00000000099800190000000000090435000000000553034f00000000037800190000001f0720018f00000020083000390000000509200272000010850000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000107d0000413d000000000a07004b000010940000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000002230019000000200520003900000000000504350000000003010433000000000703004b000010a20000613d000000000700001900000000085700190000002007700039000000000917001900000000090904330000000000980435000000000837004b0000109b0000413d000000000153001900000000000104350000000001420049000000000113001900000000001404350000003f01100039000000010210017f0000000001420019000000000221004b000000000200001900000001020040390000050f0310009c000012b60000213d0000000102200190000012b60000c13d000000400010043f0000050701000041000005070260009c000000000601801900000040026002100000000003040433000005070430009c00000000030180190000006003300210000000000223019f0000000003000414000005070430009c0000000003018019000000c001300210000000000121019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d0000000203000367000000000101043b000700000001001d0000000901000029000000e404100039000000000143034f000000000101043b0000051101100198000400000004001d000010e50000c13d000000800140008a000000000213034f000000400140008a000000000513034f000000000402043b000000000505043b00000000624500a9000000000605004b000010db0000613d00000000655200d9000000000445004b000010e10000c13d0000008001100039000000000113034f000000000101043b000500000021001e000010e10000413d000010ea0000013d0000055e0100004100000000001004350000001101000039000000410000013d00000009010000290000012401100039000000000113034f000000000101043b000500000001001d000005540100004100000000001004390000000601000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800a02000039141814090000040f0000000102200190000011050000613d000000000101043b000000050110006b000011060000a13d000000400100043d00000064021000390000055c03000041000000000032043500000044021000390000055d03000041000000000032043500000024021000390000002203000039000001050000013d000000000001042f0000000004000031000000090140006a000000230210008a000000040100002900000100011000390000000203000367000000000113034f000000000101043b0000051005000041000000000621004b0000000006000019000000000605801900000510022001970000051007100197000000000827004b0000000005008019000000000227013f000005100220009c000000000506c019000000000205004b000001270000c13d0000000802100029000000000123034f000000000101043b0000050f0510009c000001270000213d000000000514004900000020062000390000051002000041000000000756004b0000000007000019000000000702201900000510055001970000051008600197000000000958004b0000000002008019000000000558013f000005100550009c000000000207c019000000000202004b000001270000c13d0000003f02100039000000200500008a000000000552016f000000400200043d0000000005520019000000000725004b000000000700001900000001070040390000050f0850009c000012b60000213d0000000107700190000012b60000c13d000000400050043f00000000051204360000000007610019000000000447004b000001270000213d000000000463034f0000001f0310018f00000005061002720000114d0000613d000000000700001900000005087002100000000009850019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000011450000413d000000000703004b0000115c0000613d0000000506600210000000000464034f00000000066500190000000303300210000000000706043300000000073701cf000000000737022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000373019f000000000036043500000000011500190000000000010435000000400100043d0000000003020433000000410330008c0000116f0000c13d00000041032000390000000003030433000000ff0330018f0000001d0430008a000000030600008a000000000464004b000011750000213d00000044021000390000055b03000041000000000032043500000024021000390000001603000039000004920000013d00000044021000390000055503000041000000000032043500000024021000390000001d03000039000004920000013d000000000405043300000040022000390000000002020433000005560520009c000011800000413d00000044021000390000055a03000041000000000032043500000024021000390000000903000039000004920000013d00000060051000390000000000250435000000400210003900000000004204350000002002100039000000000032043500000007020000290000000000210435000000000000043500000507020000410000000003000414000005070430009c0000000003028019000005070410009c00000000010280190000004001100210000000c002300210000000000112019f00000557011001c70000000102000039141814090000040f000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000011a60000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b0000119f0000413d000000000605004b000011b40000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f0003000000010355000000400400043d0000000102200190000011cb0000613d00000000010004330000051101100197000000060210006c0000000002000019000000010200c039000000000101004b0000000001000019000000010100603900000000011201a00000055801000041000000000100c01900000000001404350000050701000041000005070240009c0000000004018019000000400140021000000559011001c7000014190001042e0000001f0230018f0000000505300272000011d70000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000011cf0000413d000000000602004b000011e60000613d0000000505500210000000000151034f00000000055400190000000302200210000000000605043300000000062601cf000000000626022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000161019f00000000001504350000050701000041000005070240009c000000000401801900000040014002100000066d0000013d0000001f0430018f0000000502300272000011f60000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000011ef0000413d000000000504004b000012040000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000141a00010430000000380840008c000012560000413d0000002009400270000005070840009c000000000904a019000005070840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a70009c000012b60000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000005410aa00197000000f80b800210000000000aab019f000005450aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf000000210970003900000000008904350000000008070019000012670000013d000000380840008c000012a20000413d0000002009400270000005070840009c000000000904a019000005070840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a60009c000012b60000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000005410aa00197000000f80b800210000000000aab019f000005450aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf000000210960003900000000008904350000000008060019000012b30000013d000005400870009c000012b60000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a40021000000541099001970000000009a9019f000005100990016700000000009804350000000008070019000000400700043d000005400970009c000012b60000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b9043500000c2f0000613d0000054102b00197000005460a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d0000050f09900197000000380d90008c000012f20000413d000000200d900270000005070c90009c000000000d09a019000005070c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005400ea0009c000012b60000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c2f0000613d000000f80bc0021000000000022b019f00000547022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000012ff0000013d000005400860009c000012b60000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a40021000000541099001970000000009a9019f000005100990016700000000009804350000000008060019000000400600043d000005400960009c000012ba0000a13d0000055e0100004100000000001004350000004101000039000000410000013d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b9043500000c2f0000613d0000054102b00197000005460a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d0000050f09900197000000380d90008c0000136c0000413d000000200d900270000005070c90009c000000000d09a019000005070c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005400ea0009c000012b60000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c2f0000613d000000f80bc0021000000000022b019f00000547022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000013790000013d000005400da0009c000012b60000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c2f0000613d000000f809900210000000000229019f000005460220004100000000002d0435000000400200043d0000002009200039000005480b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b0000130f0000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013080000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b060433000000000d0b004b0000131e0000613d000000000d000019000000000ecd0019000000200dd00039000000000f6d0019000000000f0f04330000000000fe0435000000000ebd004b000013170000413d0000000006cb001900000000000604350000000006ab0019000000210b600039000000000a080433000000000c0a004b0000132d0000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013260000413d0000000008ba00190000000000080435000000000551034f00000000016a00190000001f0640018f0000002108100039000000050a4002720000133e0000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013360000413d000000000b06004b0000134d0000613d000000050aa002100000000005a5034f0000000008a800190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004070433000000000604004b0000135b0000613d000000000600001900000000085600190000002006600039000000000a760019000000000a0a04330000000000a80435000000000846004b000013540000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000050f0410009c000012b60000213d0000000103300190000013e50000613d000012b60000013d000005400da0009c000012b60000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c2f0000613d000000f809900210000000000229019f000005460220004100000000002d0435000000400200043d0000002009200039000005120b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000013890000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013820000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b070433000000000d0b004b000013980000613d000000000d000019000000000ecd0019000000200dd00039000000000f7d0019000000000f0f04330000000000fe0435000000000ebd004b000013910000413d0000000007cb001900000000000704350000000007ab0019000000210b700039000000000a080433000000000c0a004b000013a70000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013a00000413d0000000008ba00190000000000080435000000000551034f00000000017a00190000001f0740018f0000002108100039000000050a400272000013b80000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013b00000413d000000000b07004b000013c70000613d000000050aa002100000000005a5034f0000000008a800190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004060433000000000704004b000013d50000613d000000000700001900000000085700190000002007700039000000000a670019000000000a0a04330000000000a80435000000000847004b000013ce0000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000050f0410009c000012b60000213d0000000103300190000012b60000c13d000000400010043f0000050701000041000005070390009c000000000901801900000040039002100000000002020433000005070420009c00000000020180190000006002200210000000000232019f000010bb0000013d00000000030104330000000002320436000000000403004b000013fc0000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000013f50000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000000001042f00001407002104210000000102000039000000000001042d0000000002000019000000000001042d0000140c002104230000000102000039000000000001042d0000000002000019000000000001042d00001411002104210000000102000039000000000001042d0000000002000019000000000001042d00001416002104230000000102000039000000000001042d0000000002000019000000000001042d0000141800000432000014190001042e0000141a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706508c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000100000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf4f766572666c6f770000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f77000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000440000000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000000000000000000000006400000000000000000000000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd8000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000024000000a0000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395369676e6174757265206c656e67746820697320696e636f72726563740000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a10000000000000000000000000000000000000080000000000000000000000000202bcce7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000496e76616c69642073000000000000000000000000000000000000000000000076206973206e656974686572203237206e6f722032380000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008869c198fc17d4ea55c9b4b0e2b8d10bd5942970b7f48b5eecabfc6e19a8ead1", + "deployedBytecode": "0x0004000000000002000b00000000000200000000030100190000006007300270000005070670019700030000006103550002000000010355000005070070019d0000008004000039000000400040043f00000001022001900000002c0000c13d000000040260008c000000340000413d000000000201043b000000e002200270000005090320009c000000440000a13d0000050a0320009c000000960000613d0000050b0320009c000000c50000613d0000050c0220009c000000360000c13d000000040260008a000000200320008c000001270000413d0000000401100370000000000101043b0000050f0310009c000001270000213d00000000011200490000051002000041000002600310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000003010000613d000001270000013d0000000001000416000000000101004b000001270000c13d0000002001000039000001000010044300000120000004430000050801000041000014190001042e000000000106004b000003010000613d000000000100041200000511011001970000000002000410000000000121004b000003010000c13d0000000001000411000080010110008c000003010000c13d0000055e0100004100000000001004350000000101000039000000040010043f0000055f010000410000141a000104300000050d0320009c000001110000613d000900000004001d0000050e0220009c000000360000c13d000000040260008a000000600220008c000001270000413d0000004402100370000000000302043b0000050f0230009c000001270000213d000000040430003900000000054600490000051002000041000002600750008c000000000700001900000000070240190000051008500197000000000908004b000000000200a019000005100880009c000000000207c019000000000202004b000001270000c13d0000000002000411000080010220008c000003010000c13d000000000200041200000511072001970000000002000410000000000727004b000003010000c13d0000022403300039000000000731034f000000000707043b0000001f0550008a0000051008000041000000000957004b000000000900001900000000090880190000051005500197000005100a700197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000005470019000000000451034f000000000404043b0000050f0740009c000001270000213d000000000746004900000020055000390000051008000041000000000975004b000000000900001900000000090820190000051007700197000005100a500197000000000b7a004b000000000800801900000000077a013f000005100770009c000000000809c019000000000708004b000001270000c13d000000030740008c000002570000213d0000051501000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000053801000041000000c40010043f0000053901000041000002670000013d000000040260008a000000600220008c000001270000413d0000004402100370000000000302043b0000050f0230009c000001270000213d000000040230003900000000052600490000051004000041000002600850008c000000000800001900000000080440190000051009500197000000000a09004b000000000400a019000005100990009c000000000408c019000000000404004b000001270000c13d0000000004000411000080010440008c000003010000c13d000000000400041200000511044001970000000008000410000000000484004b000003010000c13d0000004404300039000000000441034f0000012408300039000000000381034f000000000404043b0000051104400197000000000303043b000005170930009c000001f80000413d0000051501000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000052101000041000000c40010043f00000522010000410000141a00010430000000040360008a000000600230008c000001270000413d0000004402100370000000000202043b0000050f0420009c000001270000213d00000000032300490000051004000041000002600530008c000000000500001900000000050440190000051003300197000000000603004b000000000400a019000005100330009c000000000405c019000000000304004b000001270000c13d0000000003000411000080010330008c000003010000c13d000000000300041200000511033001970000000004000410000000000343004b000003010000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b000001e00000c13d00000000040004150000000b0440008a00000020044000c90000000001000414000b00000000001d000900000004001d0000050702000041000005070310009c0000000001028019000000c0011002100000800102000039141814040000040f000000090300002900030000000103550000006001100270000105070010019d000000050130027000000001012001950000000101200190000003010000c13d000000400100043d000000640210003900000513030000410000000000320435000000440210003900000514030000410000000000320435000000240210003900000025030000390000000000320435000005150200004100000000002104350000000402100039000000200300003900000000003204350000050702000041000005070310009c0000000001028019000000400110021000000516011001c70000141a00010430000000040260008a000000600220008c000001270000413d0000004402100370000000000202043b000900000002001d0000050f0220009c000001270000213d0000000902000029000800040020003d000000080260006a0000051003000041000002600420008c000000000400001900000000040340190000051002200197000000000502004b000000000300a019000005100220009c000000000304c019000000000203004b000001290000613d00000000010000190000141a000104300000002402100370000000000202043b000700000002001d0000000002000411000080010220008c000003010000c13d000000000200041200000511022001970000000003000410000600000003001d000000000232004b000003010000c13d00000000020004140000053a03000041000000a00030043f0000000903000029000501040030003d0000000501100360000000000101043b000000a40010043f0000002401000039000000800010043f000000e001000039000000400010043f000000c0012002100000051d011001970000053b011001c700008003020000390000000003000019000000000400001900000000050000190000000006000019141814040000040f000300000001035500000000030100190000006003300270000105070030019d00000507083001970000003f038000390000053c04300197000000400600043d0000000003640019000000000443004b000000000400001900000001040040390000050f0530009c000012b60000213d0000000104400190000012b60000c13d000000400030043f000000000786043600000002030003670000000004000031000000000543034f0000001f0980003900000005099002720000016b0000613d000000000a000019000000050ba00210000000000cb70019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000001630000413d000000000900004b0000016d0000613d0000001f0980018f0000000508800272000001790000613d000000000a000019000000050ba00210000000000cb70019000000000bb1034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000001710000413d000000000a09004b000001880000613d0000000508800210000000000181034f00000000088700190000000309900210000000000a080433000000000a9a01cf000000000a9a022f000000000101043b0000010009900089000000000191022f00000000019101cf0000000001a1019f000000000018043500000001012001900000024d0000613d000000070100006b000010c80000c13d0000000501000029000001000110008a000000000113034f000000000101043b000000000201004b0000026a0000c13d0000000501300360000000400900043d000000000101043b000000800210008c000700000009001d000002a10000413d0000008002100270000005420610009c000000000201a019000005420610009c0000000006000019000000100600203900000008076001bf0000050f0820009c000000000706a01900000040062002700000050f0820009c000000000602a01900000004087001bf000005070260009c000000000807a0190000002007600270000005070260009c000000000706a01900000002028001bf0000ffff0670008c000000000208a0190000001006700270000000000607a019000000ff0660008c0000000102202039000000200600008a0000004107200039000000000667016f0000000006690019000000000796004b000000000700001900000001070040390000050f0860009c000012b60000213d0000000107700190000012b60000c13d000000400060043f00000002062000390000000707000029000000000667043600000021072000390000000507700272000001cc0000613d00000000080000190000000509800210000000000a960019000000000995034f000000000909043b00000000009a04350000000108800039000000000978004b000001c40000413d000000000700004b000001ce0000613d00000007070000290000000007070433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808200210000000000778019f000005430770004100000000007604350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000007020000290000002102200039000002b20000013d00000000431200a900000000422300d9000000000112004b000010e10000c13d00000000040004150000000a0440008a00000020044000c90000000001000414000a00000000001d000000000203004b000000ed0000613d0000050702000041000005070410009c0000000001028019000000c00110021000000512011001c7000080090200003900008001040000390000000005000019141814040000040f00000000030004150000000a0330008a00000020033000c9000000f50000013d000000a008800039000000000881034f000000000808043b0000001f0550008a0000051009000041000000000a58004b000000000a000019000000000a0980190000051005500197000005100b800197000000000c5b004b000000000900801900000000055b013f000005100550009c00000000090ac019000000000509004b000001270000c13d0000000002280019000000000521034f000000000805043b0000050f0580009c000001270000213d000000000586004900000020092000390000051002000041000000000a59004b000000000a000019000000000a0220190000051005500197000005100b900197000000000c5b004b000000000200801900000000055b013f000005100550009c00000000020ac019000000000202004b000001270000c13d0000000002000414000005070520009c000000bb0000213d000080060540008c0000000005000019000002340000c13d000000040580008c0000000005000019000002340000413d000000000a91034f0000000105000039000000000a0a043b000005180aa00197000005190ba0009c000002330000613d0000051a0ba0009c000002330000613d0000051b0ba0009c000002330000613d0000051c05a0009c00000000050000190000000105006039000000010550018f000000000a9800190000000006a6004b0000000006000019000000010600403900000000088a004b00000001066041bf0000050708900197000000000181034f000000000803004b0000035d0000c13d0000000103600190000010e10000c13d0000051e030000410000051f06000041000000000505004b000000000603c019000000c0022002100000051d02200197000000000226019f0000000003a70049000005070330019700000000013103df00000000012103af0000000002040019000003680000013d00000000010604330000050702000041000005070310009c0000000001028019000005070370009c000000000702801900000040027002100000006001100210000000000121019f0000141a00010430000000000751034f000000000707043b0000051807700197000005230870009c000002ff0000c13d000000430440008c000003940000213d0000051501000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000053501000041000000c40010043f0000053601000041000000e40010043f00000537010000410000141a00010430000000710210008c000003030000c13d0000000902000029000001c401200039000000000113034f0000000002240049000000230220008a000000000101043b0000051005000041000000000621004b0000000006000019000000000605801900000510022001970000051007100197000000000827004b0000000005008019000000000227013f000005100220009c000000000506c019000000000205004b000001270000c13d0000000801100029000000000213034f000000000202043b0000050f0520009c000001270000213d000000000524004900000020011000390000051006000041000000000751004b0000000007000019000000000706201900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d000000000512001a0000000002000414000010e10000413d000000000654004b000010e10000413d000005490620009c000006700000413d000000400100043d00000044021000390000052103000041000000000032043500000024021000390000000803000039000004920000013d000005400290009c000012b60000213d00000007060000290000004002600039000000400020043f000000010200003a00000000022604360000000006500350000000000606043b000000000062043500000c2f0000613d000000f8071002100000051008000041000000000101004b000000000807c0190000054101600197000000000181019f0000000000120435000000400100043d0000000502000029000000600220008a000000000623034f000000000606043b000000800760008c000004150000413d0000008007600270000005420860009c000000000706a019000005420860009c0000000008000019000000100800203900000008098001bf0000050f0a70009c000000000908a01900000040087002700000050f0a70009c000000000807a019000000040a9001bf000005070780009c000000000a09a0190000002009800270000005070780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008810019000000000918004b000000000900001900000001090040390000050f0a80009c000012b60000213d0000000109900190000012b60000c13d000000400080043f0000000208700039000000000881043600000021097000390000000509900272000002ed0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002e50000413d000000000900004b000002ef0000613d0000000009010433000000000909004b00000c2f0000613d00000000090804330000054109900197000000f80a70021000000000099a019f000005430990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107100039000004250000013d000005240170009c000003b30000c13d0000000001000019000014190001042e000000020210008c000003bb0000c13d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400300043d000000000401043b000000800140008c0000049e0000413d0000008001400270000005420240009c000000000104a019000005420240009c0000000002000019000000100200203900000008052001bf0000050f0610009c000000000502a01900000040021002700000050f0610009c000000000201a01900000004015001bf000005070620009c000000000105a0190000002006200270000005070520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000050f0610009c000012b60000213d0000000102200190000012b60000c13d000000400010043f0000000201500039000000000613043600000002010003670000000002000031000000210750003900000005077002720000034b0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000003430000413d000000000700004b0000034d0000613d0000000007030433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000004b10000013d0000000106600190000010e10000c13d0000000006a70049000005070660019700000000016103df000000c0022002100000051d022001970000051e022001c700000000012103af000080090200003900000000060000191418140e0000040f000300000001035500000000030100190000006003300270000105070030019d00000507033001970000000102200190000004710000613d000000400200043d000005200120009c000012b60000213d0000002001200039000000400010043f00000000000204350000002003000039000000400100043d0000000004310436000000000302043300000000003404350000004004100039000000000503004b000003860000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000037f0000413d000000000243001900000000000204350000005f02300039000000200300008a000000000232016f0000050703000041000005070420009c0000000002038019000005070410009c000000000103801900000040011002100000006002200210000000000112019f000014190001042e0000000404500039000000000541034f000000000505043b000800000005001d000005110550009c000001270000213d000001400330008a000000000331034f0000002004400039000000000441034f000000000404043b000700000004001d000000000303043b0000052604000041000000800040043f0000051102200197000500000002001d000000840020043f0000051102300197000600000002001d000000a40020043f00000000020004140000000803000029000000040330008c000004fd0000c13d000000000161034f0000000103000031000000200230008c00000000040300190000002004008039000005290000013d0000051501000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000052501000041000000c20000013d000000010110008c0000048c0000c13d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400300043d000000000401043b000000800140008c000005500000413d0000008001400270000005420240009c000000000104a019000005420240009c0000000002000019000000100200203900000008052001bf0000050f0610009c000000000502a01900000040021002700000050f0610009c000000000201a01900000004015001bf000005070620009c000000000105a0190000002006200270000005070520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000050f0610009c000012b60000213d0000000102200190000012b60000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000004030000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000003fb0000413d000000000700004b000004050000613d0000000007030433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000005630000013d000005400710009c000012b60000213d0000004007100039000000400070043f000000010700003a00000000077104360000000008500350000000000808043b000000000087043500000c2f0000613d000000f809600210000005100a000041000000000606004b000000000a09c01900000541068001970000000006a6019f0000000000670435000000400220008a000000000623034f000000400200043d000000000606043b000000800760008c000005af0000413d0000008007600270000005420860009c000000000706a019000005420860009c0000000008000019000000100800203900000008098001bf0000050f0a70009c000000000908a01900000040087002700000050f0a70009c000000000807a019000000040a9001bf000005070780009c000000000a09a0190000002009800270000005070780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008820019000000000928004b000000000900001900000001090040390000050f0a80009c000012b60000213d0000000109900190000012b60000c13d000000400080043f00000002087000390000000008820436000000210970003900000005099002720000045f0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000004570000413d000000000900004b000004610000613d0000000009020433000000000909004b00000c2f0000613d00000000090804330000054109900197000000f80a70021000000000099a019f000005430990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107200039000005bf0000013d0000001f0430018f00000005023002720000047c0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004750000413d000000000504004b0000048a0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000141a00010430000000400100043d00000044021000390000053d030000410000000000320435000000240210003900000017030000390000000000320435000005150200004100000000002104350000000402100039000000200300003900000000003204350000050702000041000005070310009c0000000001028019000000400110021000000534011001c70000141a00010430000005400130009c000012b60000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8074002100000051008000041000000000404004b000000000807c0190000054104600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008430000413d0000008006500270000005420750009c000000000605a019000005420750009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000004eb0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000004e30000413d000000000800004b000004ed0000613d0000000008040433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000008540000013d0000050701000041000005070320009c0000000002018019000000c00120021000000527011001c70000000802000029141814090000040f000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005160000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000050e0000413d000000000705004b000005250000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000064d0000613d0000001f02400039000000600520018f00000080025001bf000000400020043f000000200430008c000001270000413d000000800400043d000000070440006c000003010000813d000000a00450003900000528060000410000000000640435000000a40650003900000006070000290000000000760435000000c40650003900000000000604350000004406000039000100000006001d00000000006204350000014006500039000000400060043f00000120065000390000052907000041000000000076043500000100065001bf0000002005000039000300000005001d000200000006001d0000000000560435000000000502043300000000020004140000000806000029000000040660008c000008a20000c13d00000001020000390000050f0430009c000012b60000213d000008b60000013d000005400130009c000012b60000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8074002100000051008000041000000000404004b000000000807c0190000054104600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008f80000413d0000008006500270000005420750009c000000000605a019000005420750009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f00000002076000390000000007740436000000210860003900000005088002720000059d0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005950000413d000000000800004b0000059f0000613d0000000008040433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000009090000013d000005400720009c000012b60000213d0000004007200039000000400070043f000000010700003a00000000077204360000000008500350000000000808043b000000000087043500000c2f0000613d000000f809600210000005100a000041000000000606004b000000000a09c01900000541068001970000000006a6019f0000000000670435000000400600043d000500000006001d00000020076000390000000006010433000000000806004b000005ce0000613d000000000800001900000000097800190000002008800039000000000a180019000000000a0a04330000000000a90435000000000968004b000005c70000413d000000000176001900000000000104350000000007020433000000000807004b000005db0000613d000000000800001900000000091800190000002008800039000000000a280019000000000a0a04330000000000a90435000000000978004b000005d40000413d000000000117001900000000000104350000000001670019000000050600002900000000001604350000003f011000390001002000000092000000010110017f0000000002610019000000000112004b00000000010000190000000101004039000400000002001d0000050f0220009c000012b60000213d0000000101100190000012b60000c13d0000000401000029000000400010043f000005400110009c000012b60000213d00000009070000290000004401700039000000000113034f000000000101043b00000004080000290000004002800039000000400020043f000000200280003900000544060000410000000000620435000000150200003900000000002804350000006001100210000000210280003900000000001204350000012401700039000000000213034f000000400600043d000300000006001d000000000202043b000000800620008c000009fe0000413d0000008006200270000005420720009c000000000602a019000005420720009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000010770017f0000000307700029000000030870006c000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000006390000613d0000000009000019000000050a900210000000000ba70019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000006310000413d000000000800004b0000063b0000613d00000003080000290000000008080433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000000306000029000000210660003900000a100000013d000000400200043d0000001f0430018f00000005053002720000065a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006520000413d000000000604004b000006690000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000050701000041000005070420009c000000000201801900000040012002100000006002300210000000000121019f0000141a000104300000050701100197000000000113034f0000000003540049000005070330019700000000013103df000000c0022002100000051d022001970000051f022001c700000000012103af0000801002000039141814130000040f00000000030100190000006003300270000105070030019d000005070530019700030000000103550000000102200190000009570000613d0000003f025000390000053c02200197000000400600043d0000000002260019000000000362004b000000000300001900000001030040390000050f0420009c000012b60000213d0000000103300190000012b60000c13d000000400020043f0000000004560436000000020200036700000000030000310000001f0750003900000005077002720000069e0000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006960000413d000000000700004b000006a00000613d0000001f0750018f0000000505500272000006ac0000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b000006a40000413d000000000807004b000006bb0000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c000009f70000c13d00000009060000290000000001630049000000230510008a000702040060003d0000000701200360000000000101043b0000051006000041000000000751004b0000000007000019000000000706801900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d0000000004040433000400000004001d0000000801100029000000000412034f000000000504043b0000050f0450009c000001270000213d0000000504500210000000000343004900000020061000390000051001000041000000000736004b0000000007000019000000000701201900000510033001970000051008600197000000000938004b0000000001008019000000000338013f000005100330009c000000000107c019000000000101004b000001270000c13d000000400100043d00000020031000390000054a05500198000006f60000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000006ee0000413d000000000200004b000006f80000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b000000000400001900000001040040390000050f0520009c000012b60000213d0000000104400190000012b60000c13d000000400020043f0000050702000041000005070430009c000000000302801900000040033002100000000001010433000005070410009c00000000010280190000006001100210000000000131019f0000000003000414000005070430009c0000000003028019000000c002300210000000000112019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d0000000002000031000000090320006a000000230530008a000000070300002900000020043000390000000203000367000000000443034f000000000404043b0000051006000041000000000754004b0000000007000019000000000706801900000510055001970000051008400197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000101043b000700000001001d000000000106004b000001270000c13d0000000801400029000000000413034f000000000404043b0000050f0540009c000001270000213d000000000542004900000020011000390000051006000041000000000751004b0000000007000019000000000706201900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d000000000514001a0000000004000414000010e10000413d000000000652004b000010e10000413d000005070640009c0000029a0000213d0000050701100197000000000113034f0000000002520049000005070220019700000000012103df000000c0024002100000051d022001970000051f022001c700000000012103af0000801002000039141814130000040f00000000030100190000006003300270000105070030019d000005070330019700030000000103550000000102200190000011eb0000613d0000003f023000390000053c02200197000000400500043d0000000002250019000000000452004b000000000400001900000001040040390000050f0620009c000012b60000213d0000000104400190000012b60000c13d000000400020043f000000000235043600000002040003670000001f063000390000000506600272000007770000613d000000000740036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000076f0000413d000000000600004b000007790000613d0000001f0630018f0000000503300272000007850000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b0000077d0000413d000000000706004b000007940000613d0000000503300210000000000131034f00000000033200190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001304350000000001050433000000200110008c000009f70000c13d000000090c0000290000006401c00039000000000114034f0000004403c00039000000000534034f0000002403c00039000000000634034f0000012403c00039000000000734034f0000000508400360000000e403c00039000000000934034f000000c403c00039000000000a34034f000000a403c00039000000000b34034f0000008403c00039000000000c34034f0000000803400360000000000303043b000000000406043b000000000505043b000000000601043b000000000c0c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a002100039000000070d0000290000000000d204350000018002100039000000040d0000290000000000d2043500000160021000390000000000720435000001400210003900000000008204350000012002100039000000000092043500000100021000390000000000a20435000000e0021000390000000000b20435000000c0021000390000000000c20435000000a002100039000000000062043500000080021000390000000000520435000000600210003900000000004204350000004002100039000000000032043500000020021000390000054c030000410000000000320435000001c00300003900000000003104350000054d0310009c000012b60000213d000001e003100039000000400030043f0000050704000041000005070320009c000000000204801900000040022002100000000001010433000005070310009c00000000010480190000006001100210000000000121019f0000000002000414000005070320009c0000000002048019000000c002200210000000000112019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d000000000101043b000500000001001d000000400100043d000700000001001d0000053e0100004100000000001004390000000001000414000005070210009c0000050701008041000000c0011002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d00000007040000290000002002400039000000000101043b0000054e0300004100000000003204350000008003400039000000000013043500000060014000390000054f03000041000000000031043500000040014000390000055003000041000000000031043500000080010000390000000000140435000005510140009c000012b60000213d0000000704000029000000a001400039000000400010043f0000050701000041000005070320009c000000000201801900000040022002100000000003040433000005070430009c00000000030180190000006003300210000000000223019f0000000003000414000005070430009c0000000003018019000000c001300210000000000121019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d000000000301043b000000400100043d00000042021000390000000504000029000000000042043500000020021000390000055204000041000000000042043500000022041000390000000000340435000000420300003900000000003104350000052f0310009c000012b60000213d0000008003100039000000400030043f0000050703000041000005070420009c000000000203801900000040022002100000000001010433000005070410009c00000000010380190000006001100210000000000121019f0000000002000414000005070420009c0000000002038019000000c002200210000000000112019f000010c00000013d000005400640009c000012b60000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c2f0000613d000000f8085002100000051009000041000000000505004b000000000908c0190000054105700197000000000595019f0000000000560435000000400500043d0000000506000029000000400760008a000000000671034f000000000606043b000000800860008c000009910000413d0000008008600270000005420960009c000000000806a019000005420960009c00000000090000190000001009002039000000080a9001bf0000050f0b80009c000000000a09a01900000040098002700000050f0b80009c000000000908a019000000040ba001bf000005070890009c000000000b0aa019000000200a900270000005070890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000050f0b90009c000012b60000213d000000010aa00190000012b60000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000008900000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000008880000413d000000000a00004b000008920000613d000000000a050433000000000a0a004b00000c2f0000613d000000000a090433000005410aa00197000000f80b800210000000000aab019f000005430aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000009a20000013d0000050701000041000005070350009c000000000501801900000060035002100000004004400210000000000343019f000005070420009c0000000002018019000000c001200210000000000113019f0000000802000029141814040000040f000400600000003d000000010220018f000300000001035500000000030100190000006003300270000105070030019d0000050703300198000008e20000613d0000003f04300039000000200500008a000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000050f0640009c000012b60000213d0000000105500190000012b60000c13d000000400040043f0000001f0430018f000000040500002900000000083504360000000503300272000008d20000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000008ca0000413d000900000008001d000000000504004b000008e20000613d0000000503300210000000000131034f00000009033000290000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000004010000290000000001010433000000000202004b000009720000c13d000000000201004b000009ef0000c13d000000400300043d000900000003001d0000051501000041000000000013043500000004013000390000000302000029000000000021043500000024023000390000000201000029141813f00000040f000000090400002900000000014100490000050702000041000005070310009c0000000001028019000009f30000013d000005400640009c000012b60000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c2f0000613d000000f8085002100000051009000041000000000505004b000000000908c0190000054105700197000000000595019f0000000000560435000000400500043d0000000506000029000000600660008a000000000761034f000000000707043b000000800870008c00000a560000413d0000008008700270000005420970009c000000000807a019000005420970009c00000000090000190000001009002039000000080a9001bf0000050f0b80009c000000000a09a01900000040098002700000050f0b80009c000000000908a019000000040ba001bf000005070890009c000000000b0aa019000000200a900270000005070890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000050f0b90009c000012b60000213d000000010aa00190000012b60000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000009450000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000093d0000413d000000000a00004b000009470000613d000000000a050433000000000a0a004b00000c2f0000613d000000000a090433000005410aa00197000000f80b800210000000000aab019f000005430aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c0000000007002019000000210850003900000a670000013d0000001f0350018f0000000502500272000009620000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b0000095b0000413d000000000403004b000009700000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f000000000012043500000060015002100000141a00010430000000000201004b00000b170000c13d0000052a0100004100000000001004390000000801000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800202000039141814090000040f0000000102200190000011050000613d000000000101043b000000000101004b00000b130000c13d000000400100043d00000044021000390000053303000041000000000032043500000024021000390000001d0300003900000000003204350000051502000041000000000021043500000004021000390000000303000029000004970000013d000005400850009c000012b60000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a600210000005100b000041000000000606004b000000000b0ac01900000541069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c00000ab40000413d0000008009800270000005420a80009c000000000908a019000005420a80009c000000000a000019000000100a002039000000080ba001bf0000050f0c90009c000000000b0aa019000000400a9002700000050f0c90009c000000000a09a019000000040cb001bf0000050709a0009c000000000c0ba019000000200ba002700000050709a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b0040390000050f0ca0009c000012b60000213d000000010bb00190000012b60000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb00272000009dd0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000009d50000413d000000000b00004b000009df0000613d000000000b060433000000000b0b004b00000c2f0000613d000000000b0a0433000005410bb00197000000f80c900210000000000bbc019f000005430bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210960003900000ac50000013d0000050702000041000005070310009c00000000010280190000000904000029000005070340009c00000000040280190000004002400210000002540000013d000000400100043d00000044021000390000054b03000041000000000032043500000024021000390000001f03000039000004920000013d0000000306000029000005400660009c000012b60000213d00000003070000290000004006700039000000400060043f000000010600003a00000000066704360000000007500350000000000707043b000000000076043500000c2f0000613d000000f8082002100000051009000041000000000202004b000000000908c0190000054102700197000000000292019f0000000000260435000000080640006a000000a001100039000000000213034f000000000202043b0000001f0660008a000005100760019700000510082001970000051009000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000862004b0000000009004019000005100770009c000000000a09c01900000000070a004b000001270000c13d0000000808200029000000000783034f000000000707043b0000050f0970009c000001270000213d00000000097400490000002008800039000005100a000041000000000b98004b000000000b000019000000000b0a20190000051009900197000005100c800197000000000d9c004b000000000a00801900000000099c013f000005100990009c000000000a0bc01900000000090a004b000001270000c13d000000010970008c00000c5c0000c13d000000000583034f000000000505043b000000010700008a0000051008000041000000000775004b000000000700001900000000070820190000051005500197000005100950009c00000000080080190000051005500167000005100550009c000000000807c019000200600000003d000000000508004b00000dc20000c13d000000400500043d000200000005001d000005400550009c000012b60000213d00000002080000290000004005800039000000400050043f0000002005800039000005430700004100000000007504350000000105000039000000000058043500000dc20000013d000005400850009c000012b60000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a700210000005100b000041000000000707004b000000000b0ac01900000541079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c00000b4d0000413d0000008009800270000005420a80009c000000000908a019000005420a80009c000000000a000019000000100a002039000000080ba001bf0000050f0c90009c000000000b0aa019000000400a9002700000050f0c90009c000000000a09a019000000040cb001bf0000050709a0009c000000000c0ba019000000200ba002700000050709a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000050f0ca0009c000012b60000213d000000010bb00190000012b60000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb0027200000aa20000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000a9a0000413d000000000b00004b00000aa40000613d000000000b070433000000000b0b004b00000c2f0000613d000000000b0a0433000005410bb00197000000f80c900210000000000bbc019f000005430bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210970003900000b5e0000013d000005400960009c000012b60000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000000f80b800210000005100c000041000000000808004b000000000c0bc0190000054108a001970000000008c8019f0000000000890435000000400800043d00070040007000920000000709100360000000000909043b000000800a90008c00000c240000413d000000800a900270000005420b90009c000000000a09a019000005420b90009c000000000b000019000000100b002039000000080cb001bf0000050f0da0009c000000000c0ba019000000400ba002700000050f0da0009c000000000b0aa019000000040dc001bf000005070ab0009c000000000d0ca019000000200cb00270000005070ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000050f0db0009c000012b60000213d000000010cc00190000012b60000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000b000000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b00000af80000413d000000000700004b00000b020000613d0000000007080433000000000707004b00000c2f0000613d00000000070b04330000054107700197000000f80ca0021000000000077c019f000005430770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c00000000090020190000002107800039000000000097043500000d4e0000013d00000004010000290000000001010433000000000201004b00000b3a0000613d0000051002000041000000200310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000001270000c13d00000009010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001270000c13d000000000101004b00000b3a0000c13d000000400100043d00000064021000390000053103000041000000000032043500000044021000390000053203000041000000000032043500000024021000390000002a03000039000000000032043500000515020000410000000000210435000000040210003900000003030000290000010a0000013d000000400300043d00000024013000390000000602000029000000000021043500000526010000410000000000130435000900000003001d00000004013000390000000502000029000000000021043500000000010004140000000802000029000000040220008c00000bbe0000c13d0000000103000031000000200130008c0000000004030019000000200400803900000bf00000013d000005400970009c000012b60000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000000f80b800210000005100c000041000000000808004b000000000c0bc0190000054108a001970000000008c8019f0000000000890435000000400900043d000005400890009c000012b60000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000005440b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000700000006001d000000800a60008c00000c870000413d0000000706000029000000800a600270000005420b60009c000000000a06a019000005420b60009c000000000b000019000000100b002039000000080cb001bf0000050f0da0009c000000000c0ba019000000400ba002700000050f0da0009c000000000b0aa019000000040dc001bf000005070ab0009c000000000d0ca019000000200cb00270000005070ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000050f0db0009c000012b60000213d000000010cc00190000012b60000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000bab0000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b00000ba30000413d000000000600004b00000bad0000613d0000000006080433000000000606004b00000c2f0000613d00000000060b04330000054106600197000000f80ca0021000000000066c019f000005430660004100000000006b04350000000306a00210000000f806600089000000070a6001ef000000ff0660008c000000000a00201900000021068000390000000000a6043500000c9a0000013d0000050702000041000005070310009c00000000010280190000000904000029000005070340009c00000000020440190000004002200210000000c001100210000000000121019f0000052c011001c70000000802000029141814090000040f000000090a000029000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bdd0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000bd50000413d000000000705004b00000bec0000613d0000000506600210000000000761034f00000009066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c330000613d0000001f01400039000000600210018f0000000901200029000000000221004b000000000200001900000001020040390000050f0410009c000012b60000213d0000000102200190000012b60000c13d000000400010043f000000200230008c000001270000413d0000004404100039000000240510003900000009020000290000000002020433000000000202004b00000c500000c13d0000002002100039000005280600004100000000006204350000000606000029000000000065043500000007050000290000000000540435000000010400002900000000004104350000052f0410009c000012b60000213d0000008004100039000900000004001d000000400040043f000005300410009c000012b60000213d000000c004100039000000400040043f000000030400002900000009050000290000000000450435000000a00410003900000529050000410000000000540435000000000401043300000000010004140000000805000029000000040550008c00000f490000c13d00000001020000390000050f0130009c000012b60000213d00000f5f0000013d000005400780009c000012b60000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba043500000d470000c13d0000055e0100004100000000001004350000003201000039000000410000013d000000400200043d0000001f0430018f000000050530027200000c400000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000c380000413d000000000604004b00000c4f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000006690000013d00000515020000410000000000210435000000040210003900000003030000290000000000320435000000360200003900000000002504350000052d02000041000000000024043500000064021000390000052e030000410000010a0000013d000000400800043d000200000008001d000000380870008c00000db10000413d0000002009700270000005070870009c000000000907a019000005070870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000020a000029000005400aa0009c000012b60000213d000000000898019f000000020a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000005500350000000000505043b000000000059043500000c2f0000613d0000054105500197000000f80a80021000000000055a019f00000545055001c700000000005904350000000305800210000000f80550015f00000000055701cf00000002070000290000002107700039000000000057043500000dc20000013d000005400680009c000012b60000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba043500000c2f0000613d000000070d000029000000f806d00210000005100c000041000000000d0d004b000000000c06c0190000054106b001970000000006c6019f00000000006a0435000000400600043d000000200b600039000000000a030433000000000c0a004b00000ca70000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b00000ca00000413d0000000003ba0019000000000003043500000000036a0019000000200b300039000000000a040433000000000c0a004b00000cb60000613d000000000c000019000000000dbc0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dac004b00000caf0000413d0000000004ba0019000000000004043500000000033a0019000000200a3000390000000004050433000000000b04004b00000cc50000613d000000000b000019000000000cab0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b00000cbe0000413d0000000005a400190000000000050435000000000334001900000020053000390000000004070433000000000a04004b00000cd40000613d000000000a000019000000000b5a0019000000200aa00039000000000c7a0019000000000c0c04330000000000cb0435000000000b4a004b00000ccd0000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000704004b00000ce30000613d0000000007000019000000000a5700190000002007700039000000000b970019000000000b0b04330000000000ba0435000000000a47004b00000cdc0000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000704004b00000cf20000613d000000000700001900000000095700190000002007700039000000000a870019000000000a0a04330000000000a90435000000000947004b00000ceb0000413d000000000554001900000000000504350000000003630049000000000334001900000000003604350000003f04300039000000200300008a000000000434016f0000000007640019000000000447004b000000000400001900000001040040390000050f0570009c000012b60000213d0000000104400190000012b60000c13d000000400070043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b0000051008000041000000000954004b000000000900001900000000090880190000051005500197000005100a400197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000805400029000000000451034f000000000404043b0000050f0840009c000001270000213d000000000842004900000020055000390000051009000041000000000a85004b000000000a000019000000000a0920190000051008800197000005100b500197000000000c8b004b000000000900801900000000088b013f000005100880009c00000000090ac019000000000809004b000001270000c13d000000010840008c000012060000c13d000000000851034f000000000808043b000000010900008a000005100a000041000000000998004b000000000900001900000000090a20190000051008800197000005100b80009c000000000a0080190000051008800167000005100880009c000000000a09c019000000600800003900000000090a004b000012670000c13d000005400870009c000012b60000213d0000004008700039000000400080043f000000200870003900000543090000410000000000980435000000010800003900000000008704350000000008070019000012670000013d000000f807900210000005100c000041000000000909004b000000000c07c0190000054107b001970000000007c7019f00000000007a0435000000400a00043d0000054007a0009c000012b60000213d000000070c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a00039000005440b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000700000007001d000000800b70008c00000e230000413d0000000707000029000000800b700270000005420c70009c000000000b07a019000005420c70009c000000000c000019000000100c002039000000080dc001bf0000050f0eb0009c000000000d0ca019000000400cb002700000050f0eb0009c000000000c0ba019000000040ed001bf000005070bc0009c000000000e0da019000000200dc00270000005070bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000500000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000050f0ec0009c000012b60000213d000000010dd00190000012b60000c13d0000004000c0043f0000000507000029000000020c700039000000000cc90436000000210d700039000000050dd0027200000d9d0000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b00000d950000413d000000000700004b00000d9f0000613d0000000007090433000000000707004b00000c2f0000613d00000000070c04330000054107700197000000050d000029000000f80bd0021000000000077b019f000005430770004100000000007c04350000000307d00210000000f807700089000000070b7001ef000000ff0770008c000000000b00201900000021079000390000000000b7043500000e360000013d0000000208000029000005400880009c000012b60000213d00000002090000290000004008900039000000400080043f000000010800003a00000000088904360000000005500350000000000505043b000000000058043500000c2f0000613d000000f8077002100000054105500197000000000575019f00000510055001670000000000580435000000800110008a000000000513034f0000006001000039000000000505043b000000000505004b00000ef20000c13d0000051005000041000000000762004b0000000007000019000000000705801900000510066001970000051008200197000000000968004b0000000005008019000000000668013f000005100660009c000000000507c019000000000505004b000001270000c13d000000070500002900000000060504330000000505000029000000000705043300000004050000290000000008050433000000030500002900000000090504330000000205000029000000000a0504330000000805200029000000000253034f000000000202043b0000050f0b20009c000001270000213d000000000b2400490000002005500039000005100c000041000000000db5004b000000000d000019000000000d0c2019000005100bb00197000005100e500197000000000fbe004b000000000c008019000000000bbe013f000005100bb0009c000000000c0dc019000000000b0c004b000001270000c13d0000000006670019000000000686001900000000069600190000000006a60019000000000626001900000000070104330000000006760019000000400700043d0000050f06600197000000380860008c000010070000413d0000002009600270000005070860009c000000000906a019000005070860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a70009c000012b60000213d000000000898019f0000004009700039000000400090043f000000000943034f000000020480003a00000000044704360000000009900350000000000909043b000000000094043500000c2f0000613d0000054109900197000000f80a80021000000000099a019f00000547099001c700000000009404350000000304800210000000f80440015f00000000044601cf00000021067000390000000000460435000010170000013d000005400790009c000012b60000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb043500000c2f0000613d000000070e000029000000f807e00210000005100d000041000000000e0e004b000000000d07c0190000054107c001970000000007d7019f00000000007b0435000000400700043d000000200c700039000000000b030433000000000d0b004b00000e430000613d000000000d000019000000000ecd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ebd004b00000e3c0000413d0000000003cb0019000000000003043500000000037b0019000000200c300039000000000b040433000000000d0b004b00000e520000613d000000000d000019000000000ecd0019000000200dd00039000000000f4d0019000000000f0f04330000000000fe0435000000000ebd004b00000e4b0000413d0000000004cb0019000000000004043500000000033b0019000000200b3000390000000004050433000000000c04004b00000e610000613d000000000c000019000000000dbc0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000d4c004b00000e5a0000413d0000000005b400190000000000050435000000000334001900000020053000390000000004060433000000000b04004b00000e700000613d000000000b000019000000000c5b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c4b004b00000e690000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000604004b00000e7f0000613d0000000006000019000000000b5600190000002006600039000000000c860019000000000c0c04330000000000cb0435000000000b46004b00000e780000413d000000000554001900000000000504350000000003340019000000200530003900000000040a0433000000000604004b00000e8e0000613d000000000600001900000000085600190000002006600039000000000ba60019000000000b0b04330000000000b80435000000000846004b00000e870000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000604004b00000e9d0000613d000000000600001900000000085600190000002006600039000000000a960019000000000a0a04330000000000a80435000000000846004b00000e960000413d000000000554001900000000000504350000000003730049000000000334001900000000003704350000003f04300039000000200300008a000000000434016f0000000006740019000000000446004b000000000400001900000001040040390000050f0560009c000012b60000213d0000000104400190000012b60000c13d000000400060043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b0000051008000041000000000954004b000000000900001900000000090880190000051005500197000005100a400197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000805400029000000000451034f000000000404043b0000050f0840009c000001270000213d000000000842004900000020055000390000051009000041000000000a85004b000000000a000019000000000a0920190000051008800197000005100b500197000000000c8b004b000000000900801900000000088b013f000005100880009c00000000090ac019000000000809004b000001270000c13d000000010840008c0000122e0000c13d000000000851034f000000000808043b000000010900008a000005100a000041000000000998004b000000000900001900000000090a20190000051008800197000005100b80009c000000000a0080190000051008800167000005100880009c000000000a09c019000000600800003900000000090a004b000012b30000c13d000005400860009c000012b60000213d0000004008600039000000400080043f000000200860003900000543090000410000000000980435000000010800003900000000008604350000000008060019000012b30000013d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400200043d000000000101043b000000800310008c00000f9e0000413d0000008003100270000005420410009c000000000301a019000005420410009c0000000004000019000000100400203900000008054001bf0000050f0630009c000000000504a01900000040043002700000050f0630009c000000000403a01900000004035001bf000005070640009c000000000305a0190000002006400270000005070540009c000000000604a01900000002053001bf0000ffff0460008c000000000503a0190000001003600270000000000306a019000000ff0330008c00000001055020390000004103500039000000010330017f0000000003320019000000000423004b000000000400001900000001040040390000050f0630009c000012b60000213d0000000104400190000012b60000c13d000000400030043f00000002035000390000000006320436000000020300036700000000040000310000002107500039000000050770027200000f370000613d000000000843034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f2f0000413d000000000700004b00000f390000613d0000000007020433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000015101cf000000ff0550008c0000000001002019000000210520003900000fb10000013d0000050703000041000005070520009c00000000020380190000004002200210000005070540009c00000000040380190000006004400210000000000224019f000005070410009c0000000001038019000000c001100210000000000112019f0000000802000029141814040000040f000700600000003d000600800000003d000000010220018f00030000000103550000006001100270000105070010019d000005070310019800000f8c0000613d0000003f01300039000000200400008a000000000141016f000000400400043d0000000001140019000700000004001d000000000441004b000000000400001900000001040040390000050f0510009c000012b60000213d0000000104400190000012b60000c13d000000400010043f0000001f0130018f000000070400002900000000083404360000000304000367000000050330027200000f7c0000613d000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000635004b00000f740000413d000600000008001d000000000501004b00000f8c0000613d0000000503300210000000000434034f00000006033000290000000301100210000000000503043300000000051501cf000000000515022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000151019f000000000013043500000007010000290000000001010433000000000202004b00000fd60000c13d000000000201004b000010020000c13d000000400300043d000800000003001d0000051501000041000000000013043500000004013000390000000302000029000000000021043500000024023000390000000901000029141813f00000040f0000000804000029000008f30000013d000005400320009c000012b60000213d0000004003200039000000400030043f000000010300003a000000000532043600000000040000310000000203000367000000000643034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8071002100000051008000041000000000101004b000000000807c0190000054101600197000000000181019f0000000000150435000000400100043d00000020061000390000000005020433000000000705004b00000fbf0000613d000000000700001900000000086700190000002007700039000000000927001900000000090904330000000000980435000000000857004b00000fb80000413d000000000265001900000553060000410000000000620435000000020250003900000000002104350000004102500039000000010520017f0000000002150019000000000552004b000000000500001900000001050040390000050f0620009c000012b60000213d0000000105500190000012b60000c13d0000000906000029000001c405600039000000400020043f000000000253034f0000000005640049000000230650008a000000000202043b00000dc80000013d000000000201004b00000fed0000c13d0000052a0100004100000000001004390000000801000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800202000039141814090000040f0000000102200190000011050000613d000000000101043b000000000101004b000009850000613d00000007010000290000000001010433000000000201004b000003010000613d0000051002000041000000200310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000001270000c13d00000006010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001270000c13d000000000101004b000003010000c13d00000b2b0000013d0000050702000041000005070310009c00000000010280190000000604000029000009f30000013d000005400870009c000012b60000213d0000004008700039000000400080043f000000000843034f000000010400003a00000000044704360000000008800350000000000808043b000000000084043500000c2f0000613d0000054108800197000000f806600210000000000686019f00000546066000410000000000640435000000400400043d00000020064000390000000008070433000000000908004b000010240000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b0000101d0000413d000000000768001900000000000704350000000007480019000000200970003900000007080000290000000008080433000000000a08004b000010340000613d000000000a000019000000000b9a0019000000200aa00039000000070ca00029000000000c0c04330000000000cb0435000000000b8a004b0000102d0000413d000000000998001900000000000904350000000007780019000000200970003900000005080000290000000008080433000000000a08004b000010440000613d000000000a000019000000000b9a0019000000200aa00039000000050ca00029000000000c0c04330000000000cb0435000000000b8a004b0000103d0000413d000000000998001900000000000904350000000007780019000000200970003900000004080000290000000008080433000000000a08004b000010540000613d000000000a000019000000000b9a0019000000200aa00039000000040ca00029000000000c0c04330000000000cb0435000000000b8a004b0000104d0000413d000000000998001900000000000904350000000007780019000000200970003900000003080000290000000008080433000000000a08004b000010640000613d000000000a000019000000000b9a0019000000200aa00039000000030ca00029000000000c0c04330000000000cb0435000000000b8a004b0000105d0000413d000000000998001900000000000904350000000007780019000000200970003900000002080000290000000008080433000000000a08004b000010740000613d000000000a000019000000000b9a0019000000200aa00039000000020ca00029000000000c0c04330000000000cb0435000000000b8a004b0000106d0000413d00000000099800190000000000090435000000000553034f00000000037800190000001f0720018f00000020083000390000000509200272000010850000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000107d0000413d000000000a07004b000010940000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000002230019000000200520003900000000000504350000000003010433000000000703004b000010a20000613d000000000700001900000000085700190000002007700039000000000917001900000000090904330000000000980435000000000837004b0000109b0000413d000000000153001900000000000104350000000001420049000000000113001900000000001404350000003f01100039000000010210017f0000000001420019000000000221004b000000000200001900000001020040390000050f0310009c000012b60000213d0000000102200190000012b60000c13d000000400010043f0000050701000041000005070260009c000000000601801900000040026002100000000003040433000005070430009c00000000030180190000006003300210000000000223019f0000000003000414000005070430009c0000000003018019000000c001300210000000000121019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d0000000203000367000000000101043b000700000001001d0000000901000029000000e404100039000000000143034f000000000101043b0000051101100198000400000004001d000010e50000c13d000000800140008a000000000213034f000000400140008a000000000513034f000000000402043b000000000505043b00000000624500a9000000000605004b000010db0000613d00000000655200d9000000000445004b000010e10000c13d0000008001100039000000000113034f000000000101043b000500000021001e000010e10000413d000010ea0000013d0000055e0100004100000000001004350000001101000039000000410000013d00000009010000290000012401100039000000000113034f000000000101043b000500000001001d000005540100004100000000001004390000000601000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800a02000039141814090000040f0000000102200190000011050000613d000000000101043b000000050110006b000011060000a13d000000400100043d00000064021000390000055c03000041000000000032043500000044021000390000055d03000041000000000032043500000024021000390000002203000039000001050000013d000000000001042f0000000004000031000000090140006a000000230210008a000000040100002900000100011000390000000203000367000000000113034f000000000101043b0000051005000041000000000621004b0000000006000019000000000605801900000510022001970000051007100197000000000827004b0000000005008019000000000227013f000005100220009c000000000506c019000000000205004b000001270000c13d0000000802100029000000000123034f000000000101043b0000050f0510009c000001270000213d000000000514004900000020062000390000051002000041000000000756004b0000000007000019000000000702201900000510055001970000051008600197000000000958004b0000000002008019000000000558013f000005100550009c000000000207c019000000000202004b000001270000c13d0000003f02100039000000200500008a000000000552016f000000400200043d0000000005520019000000000725004b000000000700001900000001070040390000050f0850009c000012b60000213d0000000107700190000012b60000c13d000000400050043f00000000051204360000000007610019000000000447004b000001270000213d000000000463034f0000001f0310018f00000005061002720000114d0000613d000000000700001900000005087002100000000009850019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000011450000413d000000000703004b0000115c0000613d0000000506600210000000000464034f00000000066500190000000303300210000000000706043300000000073701cf000000000737022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000373019f000000000036043500000000011500190000000000010435000000400100043d0000000003020433000000410330008c0000116f0000c13d00000041032000390000000003030433000000ff0330018f0000001d0430008a000000030600008a000000000464004b000011750000213d00000044021000390000055b03000041000000000032043500000024021000390000001603000039000004920000013d00000044021000390000055503000041000000000032043500000024021000390000001d03000039000004920000013d000000000405043300000040022000390000000002020433000005560520009c000011800000413d00000044021000390000055a03000041000000000032043500000024021000390000000903000039000004920000013d00000060051000390000000000250435000000400210003900000000004204350000002002100039000000000032043500000007020000290000000000210435000000000000043500000507020000410000000003000414000005070430009c0000000003028019000005070410009c00000000010280190000004001100210000000c002300210000000000112019f00000557011001c70000000102000039141814090000040f000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000011a60000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b0000119f0000413d000000000605004b000011b40000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f0003000000010355000000400400043d0000000102200190000011cb0000613d00000000010004330000051101100197000000060210006c0000000002000019000000010200c039000000000101004b0000000001000019000000010100603900000000011201a00000055801000041000000000100c01900000000001404350000050701000041000005070240009c0000000004018019000000400140021000000559011001c7000014190001042e0000001f0230018f0000000505300272000011d70000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000011cf0000413d000000000602004b000011e60000613d0000000505500210000000000151034f00000000055400190000000302200210000000000605043300000000062601cf000000000626022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000161019f00000000001504350000050701000041000005070240009c000000000401801900000040014002100000066d0000013d0000001f0430018f0000000502300272000011f60000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000011ef0000413d000000000504004b000012040000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000141a00010430000000380840008c000012560000413d0000002009400270000005070840009c000000000904a019000005070840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a70009c000012b60000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000005410aa00197000000f80b800210000000000aab019f000005450aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf000000210970003900000000008904350000000008070019000012670000013d000000380840008c000012a20000413d0000002009400270000005070840009c000000000904a019000005070840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a60009c000012b60000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000005410aa00197000000f80b800210000000000aab019f000005450aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf000000210960003900000000008904350000000008060019000012b30000013d000005400870009c000012b60000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a40021000000541099001970000000009a9019f000005100990016700000000009804350000000008070019000000400700043d000005400970009c000012b60000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b9043500000c2f0000613d0000054102b00197000005460a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d0000050f09900197000000380d90008c000012f20000413d000000200d900270000005070c90009c000000000d09a019000005070c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005400ea0009c000012b60000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c2f0000613d000000f80bc0021000000000022b019f00000547022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000012ff0000013d000005400860009c000012b60000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a40021000000541099001970000000009a9019f000005100990016700000000009804350000000008060019000000400600043d000005400960009c000012ba0000a13d0000055e0100004100000000001004350000004101000039000000410000013d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b9043500000c2f0000613d0000054102b00197000005460a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d0000050f09900197000000380d90008c0000136c0000413d000000200d900270000005070c90009c000000000d09a019000005070c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005400ea0009c000012b60000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c2f0000613d000000f80bc0021000000000022b019f00000547022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000013790000013d000005400da0009c000012b60000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c2f0000613d000000f809900210000000000229019f000005460220004100000000002d0435000000400200043d0000002009200039000005480b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b0000130f0000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013080000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b060433000000000d0b004b0000131e0000613d000000000d000019000000000ecd0019000000200dd00039000000000f6d0019000000000f0f04330000000000fe0435000000000ebd004b000013170000413d0000000006cb001900000000000604350000000006ab0019000000210b600039000000000a080433000000000c0a004b0000132d0000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013260000413d0000000008ba00190000000000080435000000000551034f00000000016a00190000001f0640018f0000002108100039000000050a4002720000133e0000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013360000413d000000000b06004b0000134d0000613d000000050aa002100000000005a5034f0000000008a800190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004070433000000000604004b0000135b0000613d000000000600001900000000085600190000002006600039000000000a760019000000000a0a04330000000000a80435000000000846004b000013540000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000050f0410009c000012b60000213d0000000103300190000013e50000613d000012b60000013d000005400da0009c000012b60000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c2f0000613d000000f809900210000000000229019f000005460220004100000000002d0435000000400200043d0000002009200039000005120b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000013890000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013820000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b070433000000000d0b004b000013980000613d000000000d000019000000000ecd0019000000200dd00039000000000f7d0019000000000f0f04330000000000fe0435000000000ebd004b000013910000413d0000000007cb001900000000000704350000000007ab0019000000210b700039000000000a080433000000000c0a004b000013a70000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013a00000413d0000000008ba00190000000000080435000000000551034f00000000017a00190000001f0740018f0000002108100039000000050a400272000013b80000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013b00000413d000000000b07004b000013c70000613d000000050aa002100000000005a5034f0000000008a800190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004060433000000000704004b000013d50000613d000000000700001900000000085700190000002007700039000000000a670019000000000a0a04330000000000a80435000000000847004b000013ce0000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000050f0410009c000012b60000213d0000000103300190000012b60000c13d000000400010043f0000050701000041000005070390009c000000000901801900000040039002100000000002020433000005070420009c00000000020180190000006002200210000000000232019f000010bb0000013d00000000030104330000000002320436000000000403004b000013fc0000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000013f50000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000000001042f00001407002104210000000102000039000000000001042d0000000002000019000000000001042d0000140c002104230000000102000039000000000001042d0000000002000019000000000001042d00001411002104210000000102000039000000000001042d0000000002000019000000000001042d00001416002104230000000102000039000000000001042d0000000002000019000000000001042d0000141800000432000014190001042e0000141a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706508c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000100000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf4f766572666c6f770000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f77000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000440000000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000000000000000000000006400000000000000000000000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd8000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000024000000a0000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395369676e6174757265206c656e67746820697320696e636f72726563740000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a10000000000000000000000000000000000000080000000000000000000000000202bcce7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000496e76616c69642073000000000000000000000000000000000000000000000076206973206e656974686572203237206e6f722032380000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008869c198fc17d4ea55c9b4b0e2b8d10bd5942970b7f48b5eecabfc6e19a8ead1", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/DefaultAccountNoSecurity.json b/src/deps/contracts/DefaultAccountNoSecurity.json index a9fe4831..e4ad6ebc 100644 --- a/src/deps/contracts/DefaultAccountNoSecurity.json +++ b/src/deps/contracts/DefaultAccountNoSecurity.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "DefaultAccountNoSecurity", - "sourceName": "cache-zk/solpp-generated-contracts/DefaultAccountNoSecurity.sol", + "sourceName": "contracts-preprocessed/DefaultAccountNoSecurity.sol", "abi": [ { "stateMutability": "payable", @@ -539,8 +539,8 @@ "type": "receive" } ], - "bytecode": "0x0004000000000002000b00000000000200000000030100190000006003300270000005f20430019700030000004103550002000000010355000005f20030019d000100000000001f0000008005000039000000400050043f0000000101200190000000390000c13d0000000004000031000000040140008c000000410000413d0000000201000367000000000201043b000000e002200270000005f40320009c000000450000a13d000005f50320009c000000a90000613d000005f60320009c000000ea0000613d000005f70220009c000000a60000c13d000000040240008a000005fa03000041000000200420008c00000000040000190000000004034019000005fa05200197000000000605004b000000000300a019000005fa0550009c000000000304c019000000000303004b0000010d0000c13d0000000401100370000000000101043b000005fb0310009c0000010d0000213d0000000001120049000005fa02000041000002600310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b000000430000613d0000010d0000013d0000000001000416000000000101004b0000010d0000c13d000000200100003900000100001004430000012000000443000005f301000041000017c40001042e000000000104004b000000a60000c13d0000000001000019000017c40001042e000005f80320009c000000eb0000613d000005f90220009c000000a60000c13d000000040240008a000005fa03000041000000600520008c00000000050000190000000005034019000005fa02200197000000000602004b000000000300a019000005fa0220009c00000000020500190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000202043b000005fb0320009c0000010d0000213d00000004052000390000000003540049000005fa06000041000002600730008c00000000070000190000000007064019000005fa03300197000000000803004b000000000600a019000005fa0330009c00000000030700190000000003066019000000000303004b0000010d0000c13d0000000003000411000080010330008c000000430000c13d0000000003000412000005fc063001970000000003000410000000000636004b000000430000c13d0000022406200039000000000661034f0000000007240049000000230770008a000000000606043b000005fa08000041000000000976004b00000000090000190000000009088019000005fa07700197000005fa0a600197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005560019000000000651034f000000000606043b000005fb0760009c0000010d0000213d00000000076400490000002004500039000005fa08000041000000000974004b00000000090000190000000009082019000005fa07700197000005fa0a400197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d000000030760008c000002230000213d0000060501000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000061d01000041000000c40010043f0000061e01000041000000e40010043f0000061c01000041000017c50001043017c316ce0000040f0000000001000019000017c40001042e000000040240008a000005fa03000041000000600620008c00000000060000190000000006034019000005fa02200197000000000702004b000000000300a019000005fa0220009c00000000020600190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000702043b000005fb0270009c0000010d0000213d00000004067000390000000002640049000005fa03000041000002600820008c00000000080000190000000008034019000005fa02200197000000000902004b000000000300a019000005fa0220009c00000000020800190000000002036019000000000202004b0000010d0000c13d0000000002000411000080010220008c000000430000c13d0000000002000412000005fc022001970000000003000410000000000232004b000000430000c13d0000012402700039000000000321034f0000004402700039000000000221034f000000000202043b000005fc02200197000000000303043b000005fd0830009c000001310000413d00000044015000390000060402000041000000000021043500000024015000390000000802000039000000000021043500000605010000410000000000150435000000040150003900000020020000390000000000210435000005f201000041000005f20250009c0000000001054019000000400110021000000606011001c7000017c50001043017c315d50000040f000000040240008a000005fa03000041000000600520008c00000000050000190000000005034019000005fa02200197000000000602004b000000000300a019000005fa0220009c00000000020500190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000202043b000b00000002001d000005fb0220009c0000010d0000213d0000000b020000290000000402200039000a00000002001d0000000002240049000005fa03000041000002600420008c00000000040000190000000004034019000005fa02200197000000000502004b000000000300a019000005fa0220009c00000000020400190000000002036019000000000202004b0000010f0000613d0000000001000019000017c5000104300000002401100370000000000101043b000900000001001d0000000001000411000080010110008c000000430000c13d0000000001000412000005fc011001970000000002000410000800000002001d000000000121004b000000430000c13d0000000002000414000000400100043d00000020031000390000061f0400004100000000004304350000000b030000290000010403300039000700000003001d0000000203300367000000000303043b0000002404100039000000000034043500000024030000390000000000310435000006200310009c0000015e0000413d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c500010430000001c405700039000000000551034f0000000007740049000000230770008a000000000505043b000005fa08000041000000000975004b00000000090000190000000009088019000005fa07700197000005fa0a500197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000006650019000000000161034f000000000501043b000005fb0150009c0000010d0000213d00000000015400490000002004600039000005fa06000041000000000714004b00000000070000190000000007062019000005fa01100197000005fa08400197000000000918004b0000000006008019000000000118013f000005fa0110009c00000000010700190000000001066019000000000101004b0000010d0000c13d0000000001000414000005fe0610009c000002360000413d000000400500043d000000d90000013d0000006003100039000000400030043f0000000004010433000005fe0540009c000001740000413d00000605020000410000000000230435000000a40210003900000604040000410000000000420435000000840210003900000008040000390000000000420435000000640110003900000020020000390000000000210435000005f201000041000005f20230009c0000000001034019000000400110021000000606011001c7000017c500010430000000c0022002100000062102200197000000400110021000000622011000410000062301100197000000000112019f00000060024002100000062402200197000000000121019f00000625011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001917c317af0000040f00030000000103550000006001100270000105f20010019d000005f2041001970000003f014000390000062605100197000000400100043d0000000003150019000000000553004b00000000050000190000000105004039000005fb0630009c0000012b0000213d00000001055001900000012b0000c13d000000400030043f00000000034104360000001f054000390000000505500272000001a30000613d00000000060000310000000206600367000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000019b0000413d000000000500004b000001a50000613d0000000105000031000000000554004b0000010d0000213d00000003060003670000001f0540018f0000000504400272000001b50000613d000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000001ad0000413d000000000705004b000001c40000613d0000000504400210000000000646034f00000000044300190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f000000000054043500000001022001900000025b0000613d0000000901000029000000000101004b000012520000c13d00000002010003670000000a02000029000000000221034f000000000202043b000000000302004b0000028f0000c13d0000000702000029000000000121034f000000000101043b000000800210008c000002cf0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f000000020320003900000009040000290000000003340436000000210420003900000005044002720000020e0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000002060000413d000000000400004b000002100000613d00000009040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062d0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000090200002900000021022000390000000000120435000004260000013d000000000441034f000000000404043b000005ff04400197000006070740009c000002650000c13d000000430460008c000002710000213d0000060501000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000061a01000041000000c40010043f0000061b01000041000000e40010043f0000061c01000041000017c500010430000080060620008c00000000060000190000024a0000c13d000000040650008c00000000060000190000024a0000413d00000001060000390000000207400367000000000707043b000005ff07700197000006000870009c000002490000613d000006010870009c000002490000613d000006020870009c000002490000613d000006030670009c00000000060000190000000106006039000000010660018f17c316d80000040f17c317230000040f0000000002010019000000400100043d000b00000001001d17c315bf0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c40001042e0000000001010433000005f202000041000005f20410009c0000000001028019000005f20430009c000000000203401900000040022002100000006001100210000000000121019f000017c500010430000006080140009c000000430000613d0000060501000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000060901000041000000c40010043f0000060a01000041000017c5000104300000002404500039000000000441034f000000000404043b000b00000004001d000005fc0440009c0000010d0000213d000000e402200039000000000221034f0000004404500039000000000141034f000000000101043b000a00000001001d000000000102043b0000060b02000041000000800020043f000005fc02300197000800000002001d000000840020043f000005fc01100197000900000001001d000000a40010043f00000000010004140000000b02000029000000040220008c000003480000c13d0000000103000031000000200130008c00000020040000390000000004034019000003740000013d000000710320008c000002ec0000c13d000000230200008a0000000b030000290000000004320049000001c402300039000000000221034f000000000302043b0000000002000031000900000004001d0000000004420019000005fa05000041000000000643004b00000000060000190000000006058019000005fa04400197000005fa07300197000000000847004b0000000005008019000000000447013f000005fa0440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000003430019000000000131034f000000000101043b000005fb0410009c0000010d0000213d00000000021200490000002003300039000005fa04000041000000000523004b00000000050000190000000005042019000005fa02200197000005fa06300197000000000726004b0000000004008019000000000226013f000005fa0220009c00000000020500190000000002046019000000000202004b0000010d0000c13d00000000020004140000000004310019000000000114004b00000000010000190000000101004039000005f2033001970000000101100190000002c90000c13d0000000001000031000000000541004b000007130000813d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000400200043d000900000002001d0000062a0220009c0000012b0000213d00000009030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000002db0000413d00000009030000290000000003030433000000000303004b0000041d0000c13d0000063d0100004100000000001004350000003201000039000000040010043f0000063e01000041000017c500010430000000020120008c0000039b0000c13d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005580000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000003350000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000032d0000413d000000000500004b000003370000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000005750000013d000005f202000041000005f20310009c0000000001028019000000c0011002100000060c011001c70000000b0200002917c317b40000040f00000000030100190000006003300270000005f203300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003610000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003590000413d000000000705004b000003700000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000003f70000613d0000001f01400039000000600410018f00000080014001bf000000400010043f000000200230008c0000010d0000413d000000800200043d0000000a03000029000000000232004b000000430000813d000000a0024000390000060d030000410000000000320435000000a40340003900000009050000290000000000530435000000c40340003900000000000304350000004403000039000400000003001d00000000003104350000014003400039000000400030043f00000120034000390000060e05000041000000000053043500000100044001bf0000002003000039000600000003001d000500000004001d0000000000340435000000000301043300000000010004140000000b04000029000000040440008c000004f70000c13d00000001020000390000000101000031000005080000013d000000010120008c000004770000c13d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005ea0000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000003e40000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003dc0000413d000000000500004b000003e60000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000006070000013d000000400200043d0000001f0430018f0000000503300272000004040000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003fc0000413d000000000504004b000004130000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f2010000410000000103000031000005f20430009c0000000003018019000005f20420009c000000000102401900000040011002100000006002300210000000000112019f000017c500010430000000f803100210000005fa04000041000000000101004b0000000001030019000000000104601900000000030204330000062b03300197000000000113019f00000000001204350000000b01000029000000a4011000390000000201100367000000000201043b000000800120008c000004890000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004640000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000045c0000413d000000000500004b000004660000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000004a60000013d000000400100043d00000044021000390000062703000041000000000032043500000024021000390000001703000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000004930000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f00000000002304350000000b0200002900000064022000390000000202200367000000000302043b000000800230008c000006570000413d00000080023002700000062c0430009c000000000203a0190000062c0430009c0000000004000019000000100400203900000008054001bf000005fb0620009c00000000040520190000004005200270000005fb0620009c000000000205201900000004054001bf000005f20620009c00000000040520190000002005200270000005f20620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000004e40000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000004dc0000413d000000000600004b000004e60000613d0000000006020433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000006740000013d000005f204000041000005f20530009c000000000304801900000060033002100000004002200210000000000223019f000005f20310009c0000000001048019000000c001100210000000000112019f0000000b0200002917c317af0000040f000000010220018f00030000000103550000006001100270000105f20010019d000005f2011001970000006003000039000700000003001d000000000301004b000005280000c13d00000007010000290000000031010434000300000003001d000000000202004b000005c50000c13d000000000201004b000007080000c13d000000400300043d000b00000003001d000006050100004100000000001304350000000401300039000000060200002900000000002104350000002402300039000000050100002917c315ac0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c500010430000005fb0310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000007030000290000000001130436000000030300036700000001050000310000001f0450018f0000000505500272000005480000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000005400000413d000000000604004b0000050c0000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000050c0000013d000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005620000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f000000000023043500000007020000290000000202200367000000000302043b000000800230008c000007280000413d00000080023002700000062c0430009c000000000203a0190000062c0430009c0000000004000019000000100400203900000008054001bf000005fb0620009c00000000040520190000004005200270000005fb0620009c000000000205201900000004054001bf000005f20620009c00000000040520190000002005200270000005f20620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000005b20000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005aa0000413d000000000600004b000005b40000613d0000000006020433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000007450000013d000000000201004b000009f20000c13d0000060f0100004100000000001004390000000b010000290000000400100443000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000610011001c7000080020200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000000101004b000009ee0000c13d000000400100043d00000044021000390000061903000041000000000032043500000024021000390000001d03000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005f40000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f000000000023043500000007020000290000000202200367000000000202043b000000800320008c000007960000413d00000080032002700000062c0420009c000000000302a0190000062c0420009c0000000004000019000000100400203900000008054001bf000005fb0630009c00000000040520190000004005300270000005fb0630009c000000000305201900000004054001bf000005f20630009c00000000040520190000002005300270000005f20630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000006440000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000063c0000413d000000000600004b000006460000613d0000000006030433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000007b30000013d000000400200043d0000062a0420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006610000413d0000000005020433000000000505004b000002e60000613d000000f805300210000005fa06000041000000000303004b0000000003050019000000000306601900000000050404330000062b05500197000000000335019f0000000000340435000000400300043d000700000003001d00000020043000390000000003010433000000000503004b000006820000613d000000000500001900000000064500190000002005500039000000000715001900000000070704330000000000760435000000000635004b0000067b0000413d000000000143001900000000000104350000000004020433000000000504004b0000068f0000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b000006880000413d000000000114001900000000000104350000000001340019000000070300002900000000001304350000003f01100039000000200200008a000300000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000600000002001d000005fb0220009c0000012b0000213d00000001011001900000012b0000c13d0000000601000029000000400010043f0000062a0110009c0000012b0000213d0000000b0400002900000044014000390000000201100367000000000101043b00000006050000290000004002500039000000400020043f00000020025000390000062e0300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c00000b8d0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000304000029000000000343016f000000400400043d0000000003340019000500000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000002032000390000000504000029000000000334043600000021042000390000000504400272000006f30000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000006eb0000413d000000000400004b000006f50000613d00000005040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062d0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000005020000290000002102200039000000000012043500000bad0000013d000005f2020000410000000304000029000005f20340009c00000000030200190000000003044019000005f20410009c000000000102801900000060011002100000004002300210000000000121019f000017c5000104300000000203300367000005fe0520009c000008040000413d000000400100043d00000044021000390000060403000041000000000032043500000024021000390000000803000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400200043d0000062a0420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007320000413d0000000005020433000000000505004b000002e60000613d000000f805300210000005fa06000041000000000303004b0000000003050019000000000306601900000000050404330000062b05500197000000000335019f00000000003404350000000b03000029000000c4033000390000000203300367000000000303043b000000800430008c00000a2f0000413d00000080043002700000062c0530009c000000000403a0190000062c0530009c0000000005000019000000100500203900000008065001bf000005fb0740009c00000000050620190000004006400270000005fb0740009c000000000406201900000004065001bf000005f20740009c00000000050620190000002006400270000005f20740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000005fb0860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007830000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000077b0000413d000000000700004b000007850000613d0000000007040433000000000707004b000002e60000613d00000000070604330000062b07700197000000f808500210000000000778019f0000062d0770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105400039000000000035043500000a4c0000013d000000400300043d0000062a0430009c0000012b0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007a00000413d0000000005030433000000000505004b000002e60000613d000000f805200210000005fa06000041000000000202004b0000000002050019000000000206601900000000050404330000062b05500197000000000225019f00000000002404350000000b02000029000000a4022000390000000202200367000000000202043b000000800420008c00000b1f0000413d00000080042002700000062c0520009c000000000402a0190000062c0520009c0000000005000019000000100500203900000008065001bf000005fb0740009c00000000050620190000004006400270000005fb0740009c000000000406201900000004065001bf000005f20740009c00000000050620190000002006400270000005f20740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000005fb0860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007f10000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000007e90000413d000000000700004b000007f30000613d0000000007040433000000000707004b000002e60000613d00000000070604330000062b07700197000000f808500210000000000778019f0000062d0770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500000b3c0000013d0000000001410049000005f20110019700000000011303df000000c002200210000006210220019700000633022001c700000000012103af000080100200003917c317be0000040f00000000030100190000006003300270000105f20030019d000005f2033001970003000000010355000000010220019000000a9d0000613d0000003f013000390000062601100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f0430003900000005044002720000082f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000008270000413d000000000400004b000008310000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008410000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000008390000413d000000000604004b000008500000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ca40000c13d0000000004000031000000090200002900000000052400190000000b0200002900000204032000390000000202000367000000000332034f000000000303043b000005fa06000041000000000753004b00000000070000190000000007068019000005fa05500197000005fa08300197000000000958004b0000000006008019000000000558013f000005fa0550009c00000000050700190000000005066019000000000505004b0000010d0000c13d0000000001010433000600000001001d0000000a010000290000000001130019000000000312034f000000000503043b000005fb0350009c0000010d0000213d000000050350021000000000043400490000002006100039000005fa01000041000000000746004b00000000070000190000000007012019000005fa04400197000005fa08600197000000000948004b0000000001008019000000000448013f000005fa0440009c000000000107c019000000000101004b0000010d0000c13d000000400100043d000000200410003900000634055001980000088f0000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000008870000413d000000000200004b000008910000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b00000000030000190000000103004039000005fb0520009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f000005f202000041000005f20340009c0000000003020019000000000304401900000040033002100000000001010433000005f20410009c00000000010280190000006001100210000000000131019f0000000003000414000005f20430009c0000000002034019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d0000000002000031000000090300002900000000053200190000000b0300002900000224043000390000000203000367000000000443034f000000000404043b000005fa06000041000000000754004b00000000070000190000000007068019000005fa05500197000005fa08400197000000000958004b0000000006008019000000000558013f000005fa0550009c00000000050700190000000005066019000000000101043b000900000001001d000000000105004b0000010d0000c13d0000000a010000290000000004140019000000000143034f000000000101043b000005fb0310009c0000010d0000213d00000000021200490000002003400039000005fa04000041000000000523004b00000000050000190000000005042019000005fa02200197000005fa06300197000000000726004b0000000004008019000000000226013f000005fa0220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005f204300197000002c90000413d0000000003000031000000000513004b000002c90000413d0000000204400367000005f20520009c000007160000213d0000000001130049000005f20110019700000000011403df000000c002200210000006210220019700000633022001c700000000012103af000080100200003917c317be0000040f00000000030100190000006003300270000105f20030019d000005f20330019700030000000103550000000102200190000013fa0000613d0000003f013000390000062601100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000009150000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000090d0000413d000000000400004b000009170000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000009270000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000091f0000413d000000000604004b000009360000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ca40000c13d0000000b0a0000290000006402a000390000000203000367000000000523034f0000004402a00039000000000423034f0000002402a00039000000000623034f0000008402a00039000000a407a00039000000c408a00039000000e409a00039000001240aa00039000000000aa3034f000000070b000029000000000bb3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000a02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000b0b043b000000000a0a043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c100039000000090d0000290000000000dc0435000001800c100039000000060d0000290000000000dc0435000001600c1000390000000000ac0435000001400a1000390000000000ba0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000636030000410000000000320435000001c0030000390000000000310435000006370310009c0000012b0000213d000001e003100039000000400030043f000005f203000041000005f20420009c000000000203801900000040022002100000000001010433000005f20410009c00000000010380190000006001100210000000000121019f0000000002000414000005f20420009c0000000002038019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000700000001001d000000400100043d000900000001001d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d00000009040000290000002002400039000000000101043b000006380300004100000000003204350000008003400039000000000013043500000060014000390000063903000041000000000031043500000040014000390000063a030000410000000000310435000000800100003900000000001404350000063b0140009c0000012b0000213d0000000904000029000000a001400039000000400010043f000005f201000041000005f20320009c000000000201801900000040022002100000000003040433000005f20430009c00000000030180190000006003300210000000000223019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d000000000301043b000000400100043d00000042021000390000000704000029000000000042043500000020021000390000063c0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000006150310009c0000012b0000213d0000008003100039000000400030043f000005f203000041000005f20420009c000000000203801900000040022002100000000001010433000005f20410009c00000000010380190000006001100210000000000121019f0000000002000414000005f20420009c0000000002038019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d00000007010000290000000001010433000000000201004b00000a1c0000613d000005fa02000041000000200310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000003010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a1c0000c13d000000400100043d00000064021000390000061703000041000000000032043500000044021000390000061803000041000000000032043500000024021000390000002a03000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000400300043d0000002401300039000000090200002900000000002104350000060b010000410000000000130435000700000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040220008c00000ab80000c13d0000000103000031000000200130008c0000002004000039000000000403401900000aeb0000013d000000400400043d0000062a0540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000a390000413d0000000006040433000000000606004b000002e60000613d000000f806300210000005fa07000041000000000303004b0000000003060019000000000307601900000000060504330000062b06600197000000000336019f00000000003504350000000b03000029000000a4033000390000000203300367000000000303043b000000800530008c00000c220000413d00000080053002700000062c0630009c000000000503a0190000062c0630009c0000000006000019000000100600203900000008076001bf000005fb0850009c00000000060720190000004007500270000005fb0850009c000000000507201900000004076001bf000005f20850009c00000000060720190000002007500270000005f20850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000005fb0970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000a8a0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000a820000413d000000000800004b00000a8c0000613d0000000008050433000000000808004b000002e60000613d00000000080704330000062b08800197000000f809600210000000000889019f0000062d0880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c00000000030020190000002106500039000000000036043500000c3f0000013d0000001f0430018f000000050230027200000aa80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000aa10000413d000000000504004b00000ab60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017c500010430000005f202000041000005f20310009c00000000010280190000000704000029000005f20340009c00000000020440190000004002200210000000c001100210000000000121019f00000611011001c70000000b0200002917c317b40000040f000000070a00002900000000030100190000006003300270000005f203300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000ad70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000acf0000413d000000000705004b00000ae70000613d0000000506600210000000000761034f000000070800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000bfc0000613d0000001f01400039000000600210018f00000007010000290000000001120019000000000221004b00000000020000190000000102004039000005fb0410009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000000200230008c0000010d0000413d00000007020000290000000002020433000000000202004b00000c900000c13d00000044021000390000000a03000029000000000032043500000020021000390000060d03000041000000000032043500000024031000390000000904000029000000000043043500000004030000290000000000310435000006150310009c0000012b0000213d0000008003100039000a00000003001d000000400030043f000006160310009c0000012b0000213d000000c003100039000000400030043f00000006030000290000000a040000290000000000340435000000a0031000390000060e040000410000000000430435000000000301043300000000010004140000000b04000029000000040440008c00000db20000c13d0000000102000039000000010100003100000dc50000013d000000400400043d0000062a0540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000b290000413d0000000006040433000000000606004b000002e60000613d000000f806200210000005fa07000041000000000202004b0000000002060019000000000207601900000000060504330000062b06600197000000000226019f00000000002504350000000b0200002900000064022000390000000202200367000000000202043b000000800520008c00000cb60000413d00000080052002700000062c0620009c000000000502a0190000062c0620009c0000000006000019000000100600203900000008076001bf000005fb0850009c00000000060720190000004007500270000005fb0850009c000000000507201900000004076001bf000005f20850009c00000000060720190000002007500270000005f20850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000005fb0970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000b7a0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000b720000413d000000000800004b00000b7c0000613d0000000008050433000000000808004b000002e60000613d00000000080704330000062b08800197000000f809600210000000000889019f0000062d0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500000cd30000013d000000400200043d000500000002001d0000062a0220009c0000012b0000213d00000005030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000b990000413d00000005030000290000000003030433000000000303004b000002e60000613d000000f803100210000005fa04000041000000000101004b0000000001030019000000000104601900000000030204330000062b03300197000000000113019f0000000000120435000000230100008a0000000b020000290000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000100000004001d0000000004430019000005fa05000041000000000641004b00000000060000190000000006058019000005fa04400197000005fa07100197000000000847004b0000000005008019000000000447013f000005fa0440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000004410019000000000142034f000000000101043b000005fb0510009c0000010d0000213d00000000051300490000002003400039000005fa04000041000000000653004b00000000060000190000000006042019000005fa05500197000005fa07300197000000000857004b0000000004008019000000000557013f000005fa0550009c000000000406c019000000000404004b0000010d0000c13d000000010410008c00000ee40000c13d000000000132034f000000000101043b000000010200008a000005fa03000041000000000221004b00000000020000190000000002032019000005fa01100197000005fa0410009c0000000003008019000005fa01100167000005fa0110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b000010420000c13d000000400100043d000400000001001d0000062a0110009c0000012b0000213d00000004030000290000004001300039000000400010043f00000020013000390000062d02000041000000000021043500000001010000390000000000130435000010420000013d000000400200043d0000001f0430018f000000050330027200000c090000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000c010000413d000000000504004b00000c180000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f2010000410000000103000031000005f20430009c0000000003018019000005f20420009c000000000102401900000040011002100000006002300210000000000112019f000017c500010430000000400500043d0000062a0650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000c2c0000413d0000000007050433000000000707004b000002e60000613d000000f807300210000005fa08000041000000000303004b0000000003070019000000000308601900000000070604330000062b07700197000000000337019f00000000003604350000000b0300002900000064033000390000000203300367000000000303043b000000800630008c00000d340000413d00000080063002700000062c0730009c000000000603a0190000062c0730009c0000000007000019000000100700203900000008087001bf000005fb0960009c00000000070820190000004008600270000005fb0960009c000000000608201900000004087001bf000005f20960009c00000000070820190000002008600270000005f20960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b00000000090000190000000109004039000005fb0a80009c0000012b0000213d00000001099001900000012b0000c13d000000400080043f000000020870003900000000088604360000002109700039000000050990027200000c7d0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b00000c750000413d000000000900004b00000c7f0000613d0000000009060433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062d0990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c00000000030020190000002107600039000000000037043500000d510000013d00000064021000390000061203000041000000000032043500000044021000390000061303000041000000000032043500000024021000390000003603000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000400100043d00000044021000390000063503000041000000000032043500000024021000390000001f03000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400500043d0000062a0650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000cc00000413d0000000007050433000000000707004b000002e60000613d000000f807200210000005fa08000041000000000202004b0000000002070019000000000208601900000000070604330000062b07700197000000000227019f0000000000260435000000400600043d0000062a0260009c0000012b0000213d0000000b0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f00000020076000390000062e0800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c00000e150000413d00000080072002700000062c0820009c000000000702a0190000062c0820009c0000000008000019000000100800203900000008098001bf000005fb0a70009c00000000080920190000004009700270000005fb0a70009c000000000709201900000004098001bf000005f20a70009c00000000080920190000002009700270000005f20a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a004039000005fb0b90009c0000012b0000213d000000010aa001900000012b0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200000d210000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00000d190000413d000000000a00004b00000d230000613d000000000a070433000000000a0a004b000002e60000613d000000000a0904330000062b0aa00197000000f80b800210000000000aab019f0000062d0aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500000e320000013d000000400600043d0000062a0760009c0000012b0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000d3e0000413d0000000008060433000000000808004b000002e60000613d000000f808300210000005fa09000041000000000303004b0000000003080019000000000309601900000000080704330000062b08800197000000000338019f0000000000370435000000400700043d0000062a0370009c0000012b0000213d0000000b0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f00000020087000390000062e090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000f470000413d00000080083002700000062c0930009c000000000803a0190000062c0930009c00000000090000190000001009002039000000080a9001bf000005fb0b80009c00000000090a2019000000400a800270000005fb0b80009c00000000080a2019000000040a9001bf000005f20b80009c00000000090a2019000000200a800270000005f20b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b004039000005fb0ca0009c0000012b0000213d000000010bb001900000012b0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb0027200000d9f0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000d970000413d000000000b00004b00000da10000613d000000000b080433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c900210000000000bbc019f0000062d0bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000f640000013d000005f204000041000005f20520009c00000000020480190000004002200210000005f20530009c00000000030480190000006003300210000000000223019f000005f20310009c0000000001048019000000c001100210000000000112019f0000000b0200002917c317af0000040f000000010220018f00030000000103550000006001100270000105f20010019d000005f2011001970000006003000039000900000003001d000000000301004b00000de50000c13d00000009010000290000000031010434000800000003001d000000000202004b00000f1a0000c13d000000000201004b000011110000c13d000000400300043d000b00000003001d0000060501000041000000000013043500000004013000390000000602000029000000000021043500000024023000390000000a0100002917c315ac0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c500010430000005fb0310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000009030000290000000001130436000000030300036700000001050000310000001f0450018f000000050550027200000e050000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000dfd0000413d000000000604004b00000dc90000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000dc90000013d000000400700043d0000062a0870009c0000012b0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e1f0000413d0000000009070433000000000909004b000002e60000613d000000f809200210000005fa0a000041000000000202004b000000000209001900000000020a601900000000090804330000062b09900197000000000229019f0000000000280435000000400200043d00000020092000390000000008010433000000000a08004b00000e3f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b8a004b00000e380000413d00000000019800190000000000010435000000000128001900000020091000390000000008030433000000000a08004b00000e4e0000613d000000000a000019000000000b9a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b8a004b00000e470000413d00000000039800190000000000030435000000000118001900000020081000390000000003040433000000000903004b00000e5d0000613d0000000009000019000000000a8900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b00000e560000413d00000000048300190000000000040435000000000113001900000020041000390000000003050433000000000803004b00000e6c0000613d000000000800001900000000094800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000938004b00000e650000413d00000000044300190000000000040435000000000113001900000020041000390000000003060433000000000503004b00000e7b0000613d000000000500001900000000084500190000002005500039000000000965001900000000090904330000000000980435000000000835004b00000e740000413d00000000044300190000000000040435000000000113001900000020041000390000000003070433000000000503004b00000e8a0000613d000000000500001900000000064500190000002005500039000000000875001900000000080804330000000000860435000000000635004b00000e830000413d000000000443001900000000000404350000000001210049000000000113001900000000001204350000003f03100039000000200100008a000000000313016f0000000005230019000000000335004b00000000030000190000000103004039000005fb0450009c0000012b0000213d00000001033001900000012b0000c13d000000400050043f000000230300008a0000000b060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b00000000080000310000000009480019000005fa0a000041000000000b96004b000000000b000019000000000b0a8019000005fa09900197000005fa0c600197000000000d9c004b000000000a00801900000000099c013f000005fa0990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000005fb0a60009c0000010d0000213d000000000a6800490000002008900039000005fa09000041000000000ba8004b000000000b000019000000000b092019000005fa0aa00197000005fa0c800197000000000dac004b0000000009008019000000000aac013f000005fa0aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000012700000c13d000000000687034f000000000606043b000000010700008a000005fa08000041000000000776004b00000000070000190000000007082019000005fa06600197000005fa0960009c0000000008008019000005fa06600167000005fa0660009c00000000070860190000006006000039000000000707004b000012ee0000c13d0000062a0650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000062d070000410000000000760435000000010600003900000000006504350000000006050019000012ee0000013d000000380210008c000010250000413d0000002002100270000005f20310009c00000000030100190000000003022019000005f20210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d0000062a0440009c0000012b0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000f020000413d00000004040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062f044001c700000000004304350000000302200210000000f80220008900000000012101cf000000040200002900000021022000390000000000120435000010420000013d000000000201004b00000f310000c13d0000060f0100004100000000001004390000000b010000290000000400100443000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000610011001c7000080020200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000000101004b000005d80000613d00000009010000290000000001010433000000000201004b000000430000613d000005fa02000041000000200310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000008010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a070000613d000000430000013d000000400800043d0000062a0980009c0000012b0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000f510000413d000000000a080433000000000a0a004b000002e60000613d000000f80a300210000005fa0b000041000000000303004b00000000030a001900000000030b6019000000000a0904330000062b0aa0019700000000033a019f0000000000390435000000400300043d000000200a3000390000000009010433000000000b09004b00000f710000613d000000000b000019000000000cab0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000c9b004b00000f6a0000413d0000000001a9001900000000000104350000000001390019000000200a1000390000000009020433000000000b09004b00000f800000613d000000000b000019000000000cab0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000c9b004b00000f790000413d0000000002a900190000000000020435000000000119001900000020091000390000000002040433000000000a02004b00000f8f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c4a0019000000000c0c04330000000000cb0435000000000b2a004b00000f880000413d00000000049200190000000000040435000000000112001900000020041000390000000002050433000000000902004b00000f9e0000613d0000000009000019000000000a4900190000002009900039000000000b590019000000000b0b04330000000000ba0435000000000a29004b00000f970000413d00000000044200190000000000040435000000000112001900000020041000390000000002060433000000000502004b00000fad0000613d000000000500001900000000094500190000002005500039000000000a650019000000000a0a04330000000000a90435000000000925004b00000fa60000413d00000000044200190000000000040435000000000112001900000020041000390000000002070433000000000502004b00000fbc0000613d000000000500001900000000064500190000002005500039000000000975001900000000090904330000000000960435000000000625004b00000fb50000413d00000000044200190000000000040435000000000112001900000020041000390000000002080433000000000502004b00000fcb0000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000625004b00000fc40000413d000000000442001900000000000404350000000001310049000000000112001900000000001304350000003f02100039000000200100008a000000000212016f0000000005320019000000000225004b00000000020000190000000102004039000005fb0450009c0000012b0000213d00000001022001900000012b0000c13d000000400050043f000000230200008a0000000b060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b00000000080000310000000009480019000005fa0a000041000000000b96004b000000000b000019000000000b0a8019000005fa09900197000005fa0c600197000000000d9c004b000000000a00801900000000099c013f000005fa0990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000005fb0a60009c0000010d0000213d000000000a6800490000002008900039000005fa09000041000000000ba8004b000000000b000019000000000b092019000005fa0aa00197000005fa0c800197000000000dac004b0000000009008019000000000aac013f000005fa0aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000012a20000c13d000000000687034f000000000606043b000000010700008a000005fa08000041000000000776004b00000000070000190000000007082019000005fa06600197000005fa0960009c0000000008008019000005fa06600167000005fa0660009c00000000070860190000006006000039000000000707004b000013810000c13d0000062a0650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000062d070000410000000000760435000000010600003900000000006504350000000006050019000013810000013d000000400200043d000400000002001d0000062a0220009c0000012b0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000010310000413d00000004030000290000000003030433000000000303004b000002e60000613d000000f80110021000000000030204330000062b03300197000000000113019f000005fa01100167000000000012043500000060010000390000000b0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b000010b70000c13d0000000203000029000000000432034f000000000300003100000001050000290000000005530019000000000904043b000005fa04000041000000000659004b00000000060000190000000006048019000005fa05500197000005fa07900197000000000857004b0000000004008019000000000557013f000005fa0550009c000000000406c019000000000404004b0000010d0000c13d00000009040000290000000004040433000000070500002900000000050504330000000606000029000000000606043300000005070000290000000007070433000000040800002900000000080804330000000a0a0000290000000009a90019000000000292034f000000000202043b000005fb0a20009c0000010d0000213d00000000032300490000002009900039000005fa0a000041000000000b39004b000000000b000019000000000b0a2019000005fa03300197000005fa09900197000000000c39004b000000000a008019000000000339013f000005fa0330009c00000000030b001900000000030a6019000000000303004b0000010d0000c13d0000000003450019000000000363001900000000037300190000000003830019000000000223001900000000030104330000000002320019000005fb02200197000000380320008c000011590000413d0000002003200270000005f20420009c00000000040200190000000004032019000005f20320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400600043d0000062a0560009c0000012b0000213d000000000343019f0000004004600039000000400040043f0000000204300039000000000446043600000000050000310000000205500367000000000700001900000005087002100000000009840019000000000885034f000000000808043b0000000000890435000000010770003a000010a10000413d0000000005060433000000000505004b000002e60000613d00000000050404330000062b05500197000000f807300210000000000557019f00000631055001c700000000005404350000000303300210000000f80330008900000000023201cf00000021036000390000000000230435000011730000013d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000800210008c0000111c0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000304000029000000000442016f000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000442043600000021053000390000000505500272000010fe0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000010f60000413d000000000500004b000011000000613d0000000005020433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c000000000100201900000021032000390000000000130435000011390000013d000005f2020000410000000804000029000005f20340009c00000000030200190000000003044019000005f20410009c000000000102801900000060011002100000004002300210000000000121019f000017c500010430000000400200043d0000062a0320009c0000012b0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000011260000413d0000000004020433000000000404004b000002e60000613d000000f804100210000005fa05000041000000000101004b0000000001040019000000000105601900000000040304330000062b04400197000000000114019f0000000000130435000000400100043d00000020041000390000000003020433000000000503004b000011460000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000113f0000413d00000000024300190000063f0400004100000000004204350000000202300039000000000021043500000041023000390000000303000029000000000332016f0000000002130019000000000332004b00000000030000190000000103004039000005fb0420009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f00000002020003670000104a0000013d000000400600043d0000062a0360009c0000012b0000213d0000004003600039000000400030043f0000000103000039000000000336043600000000040000310000000204400367000000000500001900000005075002100000000008730019000000000774034f000000000707043b0000000000780435000000010550003a000011630000413d0000000004060433000000000404004b000002e60000613d000000f80220021000000000040304330000062b04400197000000000242019f0000063002200041000000000023043500000000020000310000000103000029000000000532001900000002030003670000000204000029000000000443034f000000000404043b000005fa07000041000000000854004b00000000080000190000000008078019000005fa05500197000005fa09400197000000000a59004b0000000007008019000000000559013f000005fa0550009c00000000050800190000000005076019000000000505004b0000010d0000c13d0000000a050000290000000005540019000000000353034f000000000403043b000005fb0340009c0000010d0000213d00000000024200490000002005500039000005fa03000041000000000725004b00000000070000190000000007032019000005fa02200197000005fa08500197000000000928004b0000000003008019000000000228013f000005fa0220009c00000000020700190000000002036019000000000202004b0000010d0000c13d000000400200043d00000020032000390000000007060433000000000807004b000011ab0000613d000000000800001900000000093800190000002008800039000000000a680019000000000a0a04330000000000a90435000000000978004b000011a40000413d000000000637001900000000000604350000000006270019000000200860003900000009070000290000000007070433000000000907004b000011bc0000613d0000000009000019000000000a8900190000002009900039000000090b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011b40000413d000000000887001900000000000804350000000006670019000000200860003900000007070000290000000007070433000000000907004b000011cd0000613d0000000009000019000000000a8900190000002009900039000000070b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011c50000413d000000000887001900000000000804350000000006670019000000200860003900000006070000290000000007070433000000000907004b000011de0000613d0000000009000019000000000a8900190000002009900039000000060b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011d60000413d000000000887001900000000000804350000000006670019000000200860003900000005070000290000000007070433000000000907004b000011ef0000613d0000000009000019000000000a8900190000002009900039000000050b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011e70000413d000000000887001900000000000804350000000006670019000000200860003900000004070000290000000007070433000000000907004b000012000000613d0000000009000019000000000a8900190000002009900039000000040b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011f80000413d0000000008870019000000000008043500000000066700190000001f0740018f000000200860003900000002055003670000000509400272000012110000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012090000413d000000000a07004b000012200000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000004460019000000200640003900000000000604350000000005010433000000000705004b0000122e0000613d000000000700001900000000086700190000002007700039000000000917001900000000090904330000000000980435000000000857004b000012270000413d000000000165001900000000000104350000000001240049000000000115001900000000001204350000003f011000390000000304000029000000000441016f0000000001240019000000000441004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f000005f201000041000005f20430009c000000000301801900000040033002100000000002020433000005f20420009c00000000020180190000006002200210000000000232019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f00000001012001900000010d0000613d0000000a0100002917c3178d0000040f0000064002000041000000000020043900000008020000290000000400200443000900000001001d0000800a01000039000000240200003917c3159b0000040f0000000902000029000000000112004b0000000001000019000000010100a03917c316500000040f0000000b01000029000001e4021000390000000a0100002917c316680000040f000000000300003117c316940000040f0000064101000041000000400200043d0000000000120435000005f201000041000005f20320009c0000000001024019000000400110021000000642011001c7000017c40001042e000000380760008c000012d40000413d0000002007600270000005f20860009c00000000080600190000000008072019000005f20760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c000000000800001900000001080020390000062a0950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000128b0000413d0000000009050433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062f099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000012ee0000013d000000380760008c000013670000413d0000002007600270000005f20860009c00000000080600190000000008072019000005f20760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c000000000800001900000001080020390000062a0950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000012bd0000413d0000000009050433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062f099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000013810000013d0000062a0750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000012dd0000413d0000000008050433000000000808004b000002e60000613d000000f80660021000000000080704330000062b08800197000000000668019f000005fa0660016700000000006704350000000006050019000000400500043d0000062a0750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000012f80000413d0000000009050433000000000909004b000002e60000613d00000000090704330000062b0990019700000630099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b000005fa0a000041000000000d9c004b000000000d000019000000000d0a8019000005fa09900197000005fa0ec00197000000000f9e004b000000000a00801900000000099e013f000005fa0990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009020433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000005fb0db0009c0000010d0000213d0000000007b70049000000200cc00039000005fa0d000041000000000e7c004b000000000e000019000000000e0d2019000005fa07700197000005fa0cc00197000000000f7c004b000000000d00801900000000077c013f000005fa0770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b7001900000000090504330000000007970019000005fb09700197000000380790008c000014150000413d0000002007900270000005f20890009c000000000709a019000005f20890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d0000062a0b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000013510000413d000000000b070433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c800210000000000bbc019f000006310bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000142e0000013d0000062a0750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000013700000413d0000000008050433000000000808004b000002e60000613d000000f80660021000000000080704330000062b08800197000000000668019f000005fa0660016700000000006704350000000006050019000000400500043d0000062a0750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000138b0000413d0000000009050433000000000909004b000002e60000613d00000000090704330000062b0990019700000630099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b000005fa0a000041000000000d9c004b000000000d000019000000000d0a8019000005fa09900197000005fa0ec00197000000000f9e004b000000000a00801900000000099e013f000005fa0990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009030433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000005fb0db0009c0000010d0000213d0000000007b70049000000200cc00039000005fa0d000041000000000e7c004b000000000e000019000000000e0d2019000005fa07700197000005fa0cc00197000000000f7c004b000000000d00801900000000077c013f000005fa0770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b7001900000000090504330000000007970019000005fb09700197000000380790008c000014d80000413d0000002007900270000005f20890009c000000000709a019000005f20890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d0000062a0b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000013e40000413d000000000b070433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c800210000000000bbc019f000006310bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000014f10000013d0000001f0430018f0000000502300272000014050000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013fe0000413d000000000504004b000014130000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017c500010430000000400700043d0000062a0a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000141e0000413d000000000a070433000000000a0a004b000002e60000613d000000f809900210000000000a0804330000062b0aa001970000000009a9019f00000630099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b000005fa0a000041000000000b83004b000000000b000019000000000b0a8019000005fa08800197000005fa0c300197000000000d8c004b000000000a00801900000000088c013f000005fa0880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000003830019000000000434034f000000000804043b000005fb0480009c0000010d0000213d00000000048900490000002009300039000005fa03000041000000000a49004b000000000a000019000000000a032019000005fa04400197000005fa0b900197000000000c4b004b000000000300801900000000044b013f000005fa0440009c00000000030ac019000000000303004b0000010d0000c13d000000400300043d0000002004300039000006250a0000410000000000a40435000000210b300039000000000a070433000000000c0a004b000014660000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b0000145f0000413d0000000007ba0019000000000007043500000000073a0019000000210b700039000000000a020433000000000c0a004b000014750000613d000000000c000019000000000dbc0019000000200cc00039000000000e2c0019000000000e0e04330000000000ed0435000000000dac004b0000146e0000413d0000000002ba0019000000000002043500000000027a0019000000210a2000390000000007060433000000000b07004b000014840000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b0000147d0000413d0000000006a70019000000000006043500000000022700190000001f0680018f00000021072000390000000209900367000000050a800272000014950000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b0000148d0000413d000000000b06004b000014a40000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000002820019000000210720003900000000000704350000000006050433000000000806004b000014b20000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b000014ab0000413d0000000005760019000000000005043500000000023200490000000002260019000000010520003900000000005304350000004002200039000000000212016f0000000001320019000000000221004b00000000020000190000000102004039000005fb0510009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000005f201000041000005f20240009c0000000002010019000000000204401900000040022002100000000003030433000005f20430009c00000000030180190000006003300210000000000223019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d000000400700043d0000062a0a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000014e10000413d000000000a070433000000000a0a004b000002e60000613d000000f809900210000000000a0804330000062b0aa001970000000009a9019f00000630099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b000005fa0a000041000000000b82004b000000000b000019000000000b0a8019000005fa08800197000005fa0c200197000000000d8c004b000000000a00801900000000088c013f000005fa0880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000002820019000000000424034f000000000804043b000005fb0480009c0000010d0000213d00000000048900490000002009200039000005fa02000041000000000a49004b000000000a000019000000000a022019000005fa04400197000005fa0b900197000000000c4b004b000000000200801900000000044b013f000005fa0440009c00000000020ac019000000000202004b0000010d0000c13d000000400200043d0000002004200039000006320a0000410000000000a40435000000210b200039000000000a070433000000000c0a004b000015290000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000015220000413d0000000007ba0019000000000007043500000000072a0019000000210b700039000000000a030433000000000c0a004b000015380000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b000015310000413d0000000003ba0019000000000003043500000000037a0019000000210a3000390000000007060433000000000b07004b000015470000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000015400000413d0000000006a70019000000000006043500000000033700190000001f0680018f00000021073000390000000209900367000000050a800272000015580000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000015500000413d000000000b06004b000015670000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000003830019000000210730003900000000000704350000000006050433000000000806004b000015750000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b0000156e0000413d0000000005760019000000000005043500000000032300490000000003360019000000010530003900000000005204350000004003300039000000000313016f0000000001230019000000000331004b00000000030000190000000103004039000005fb0510009c0000012b0000213d00000001033001900000012b0000c13d000000400010043f000005f201000041000005f20340009c0000000003010019000000000304401900000040033002100000000002020433000005f20420009c00000000020180190000006002200210000000000232019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d0000000003010019000005f2010000410000000004000414000005f20540009c0000000001044019000000c001100210000000600220021000000000011200190000064301100041000000000203001917c317b40000040f0000000102200190000015aa0000613d000000000101043b000000000001042d0000000001000019000017c50001043000000000030104330000000002320436000000000403004b000015b80000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000015b10000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000403004b000015ce0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000015c70000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d0003000000000002000000040100008a0000000003100031000005fa010000410000005f0230008c00000000020000190000000002012019000005fa04300197000000000504004b0000000001008019000005fa0440009c000000000102c019000000000101004b0000161b0000613d00000002010003670000004402100370000000000202043b000005fb0420009c0000161b0000213d0000000003230049000005fa04000041000002600530008c00000000050000190000000005044019000005fa03300197000000000603004b000000000400a019000005fa0330009c00000000030500190000000003046019000000000303004b0000161b0000c13d0000000003000411000080010330008c000016190000c13d0000000003000412000005fc033001970000000004000410000000000343004b000016190000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b0000161d0000c13d0000000004000415000000030440008a00000020044000c90000000001000414000300000000001d000100000004001d000005f202000041000005f20310009c0000000001028019000000c001100210000080010200003917c317af0000040f000000010300002900030000000103550000006001100270000105f20010019d000000200130011a00000001012001950000000101200190000016350000613d0000000001000019000017c40001042e0000000001000019000017c50001043000000000431200a900000000422300d9000000000112004b0000164a0000c13d0000000004000415000000020440008a00000020044000c90000000001000414000200000000001d000000000203004b0000160a0000613d000005f202000041000005f20410009c0000000001028019000000c00110021000000632011001c700008009020000390000800104000039000000000500001917c317af0000040f0000000003000415000000020330008a00000020033000c9000016120000013d000000400100043d00000064021000390000064403000041000000000032043500000044021000390000064503000041000000000032043500000024021000390000002503000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c5000104300000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000000101004b000016530000613d000000000001042d000000400100043d00000064021000390000064603000041000000000032043500000044021000390000064703000041000000000032043500000024021000390000002203000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000000300003100000000041300490000001f0540008a0000000204000367000000000224034f000000000202043b000005fa06000041000000000752004b00000000070000190000000007064019000005fa05500197000005fa08200197000000000958004b000000000600a019000000000558013f000005fa0550009c00000000050700190000000005066019000000000505004b000016920000613d0000000001120019000000000214034f000000000202043b000005fb0420009c000016920000213d00000000032300490000002001100039000005fa04000041000000000531004b00000000050000190000000005042019000005fa03300197000005fa06100197000000000736004b0000000004008019000000000336013f000005fa0330009c00000000030500190000000003046019000000000303004b000016920000c13d000000000001042d0000000001000019000017c500010430000006480420009c000016c60000813d0000003f04200039000000200500008a000000000554016f000000400400043d0000000005540019000000000645004b00000000060000190000000106004039000005fb0750009c000016c60000213d0000000106600190000016c60000c13d000000400050043f00000000042404360000000005120019000000000335004b000016cc0000213d0000001f0320018f00000002011003670000000505200272000016b40000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000016ac0000413d000000000603004b000016c30000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f000000000015043500000000012400190000000000010435000000000001042d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c5000104300000000001000019000017c5000104300000000001000411000080010110008c000016d20000613d000000000001042d0000063d0100004100000000001004350000000101000039000000040010043f0000063e01000041000017c50001043000000000070200190000000008450019000005f2024001970000000202200367000000000403004b000016f40000613d000000000458004b0000170b0000413d0000000004000031000000000584004b0000170b0000413d000005fe0510009c000017110000813d0000000004840049000005f20440019700000000024203df000000c001100210000006210110019700000649011001c700000000011203af000000000206004b0000000005000019000000010500c03900008009020000390000000004070019000000000600001917c317b90000040f000017060000013d000000000358004b0000170b0000413d0000000003000031000000000483004b0000170b0000413d00000649040000410000063305000041000000000606004b0000000004056019000000c0011002100000062101100197000000000114019f0000000003830049000005f20330019700000000023203df00000000011203af000000000207001917c317b90000040f00030000000103550000006001100270000105f20010019d000000010120018f000000000001042d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000400100043d00000044021000390000060403000041000000000032043500000024021000390000000803000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c5000104300000000102000031000000000101004b0000176c0000613d000006480120009c000017660000813d0000003f01200039000000200300008a000000000331016f000000400100043d0000000003310019000000000413004b00000000040000190000000104004039000005fb0530009c000017660000213d0000000104400190000017660000c13d000000400030043f00000000032104360000001f042000390000000504400272000017440000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000173c0000413d000000000400004b000017460000613d0000000104000031000000000442004b0000178b0000213d00000003050003670000001f0420018f0000000502200272000017560000613d000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000726004b0000174e0000413d000000000604004b000017650000613d0000000502200210000000000525034f00000000022300190000000303400210000000000402043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000320435000000000001042d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c50001043000000003010003670000001f0420018f0000000503200272000017780000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000635004b000017710000413d000000000504004b000017860000613d00000003044002100000000503300210000000000503043300000000054501cf000000000545022f000000000131034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f201000041000005f20320009c00000000010240190000006001100210000017c5000104300000000001000019000017c500010430000000e0031000390000000202000367000000000332034f000000000303043b000005fc03300198000017970000613d0000012001100039000000000112034f000000000101043b000017a80000013d000000a003100039000000000332034f0000006004100039000000000442034f000000000404043b000000000503043b00000000634500a9000000000605004b000017a30000613d00000000655300d9000000000445004b000017a90000c13d0000012001100039000000000112034f000000000101043b000000000131001a000017a90000413d000000000001042d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000017b2002104210000000102000039000000000001042d0000000002000019000000000001042d000017b7002104230000000102000039000000000001042d0000000002000019000000000001042d000017bc002104210000000102000039000000000001042d0000000002000019000000000001042d000017c1002104230000000102000039000000000001042d0000000002000019000000000001042d000017c300000432000017c40001042e000017c5000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000004400000000000000000000000020746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f0000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f19010000000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39202bcce700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000002000002000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706575650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c000000000000000000000000000000000000000000000001000000000000000001000001000000000000000000000000000000000000000000000000000000008f19edac323ff4d08b76da2079015d4dfbe240eda064363680b7748cc46bf8dd", - "deployedBytecode": "0x0004000000000002000b00000000000200000000030100190000006003300270000005f20430019700030000004103550002000000010355000005f20030019d000100000000001f0000008005000039000000400050043f0000000101200190000000390000c13d0000000004000031000000040140008c000000410000413d0000000201000367000000000201043b000000e002200270000005f40320009c000000450000a13d000005f50320009c000000a90000613d000005f60320009c000000ea0000613d000005f70220009c000000a60000c13d000000040240008a000005fa03000041000000200420008c00000000040000190000000004034019000005fa05200197000000000605004b000000000300a019000005fa0550009c000000000304c019000000000303004b0000010d0000c13d0000000401100370000000000101043b000005fb0310009c0000010d0000213d0000000001120049000005fa02000041000002600310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b000000430000613d0000010d0000013d0000000001000416000000000101004b0000010d0000c13d000000200100003900000100001004430000012000000443000005f301000041000017c40001042e000000000104004b000000a60000c13d0000000001000019000017c40001042e000005f80320009c000000eb0000613d000005f90220009c000000a60000c13d000000040240008a000005fa03000041000000600520008c00000000050000190000000005034019000005fa02200197000000000602004b000000000300a019000005fa0220009c00000000020500190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000202043b000005fb0320009c0000010d0000213d00000004052000390000000003540049000005fa06000041000002600730008c00000000070000190000000007064019000005fa03300197000000000803004b000000000600a019000005fa0330009c00000000030700190000000003066019000000000303004b0000010d0000c13d0000000003000411000080010330008c000000430000c13d0000000003000412000005fc063001970000000003000410000000000636004b000000430000c13d0000022406200039000000000661034f0000000007240049000000230770008a000000000606043b000005fa08000041000000000976004b00000000090000190000000009088019000005fa07700197000005fa0a600197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005560019000000000651034f000000000606043b000005fb0760009c0000010d0000213d00000000076400490000002004500039000005fa08000041000000000974004b00000000090000190000000009082019000005fa07700197000005fa0a400197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d000000030760008c000002230000213d0000060501000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000061d01000041000000c40010043f0000061e01000041000000e40010043f0000061c01000041000017c50001043017c316ce0000040f0000000001000019000017c40001042e000000040240008a000005fa03000041000000600620008c00000000060000190000000006034019000005fa02200197000000000702004b000000000300a019000005fa0220009c00000000020600190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000702043b000005fb0270009c0000010d0000213d00000004067000390000000002640049000005fa03000041000002600820008c00000000080000190000000008034019000005fa02200197000000000902004b000000000300a019000005fa0220009c00000000020800190000000002036019000000000202004b0000010d0000c13d0000000002000411000080010220008c000000430000c13d0000000002000412000005fc022001970000000003000410000000000232004b000000430000c13d0000012402700039000000000321034f0000004402700039000000000221034f000000000202043b000005fc02200197000000000303043b000005fd0830009c000001310000413d00000044015000390000060402000041000000000021043500000024015000390000000802000039000000000021043500000605010000410000000000150435000000040150003900000020020000390000000000210435000005f201000041000005f20250009c0000000001054019000000400110021000000606011001c7000017c50001043017c315d50000040f000000040240008a000005fa03000041000000600520008c00000000050000190000000005034019000005fa02200197000000000602004b000000000300a019000005fa0220009c00000000020500190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000202043b000b00000002001d000005fb0220009c0000010d0000213d0000000b020000290000000402200039000a00000002001d0000000002240049000005fa03000041000002600420008c00000000040000190000000004034019000005fa02200197000000000502004b000000000300a019000005fa0220009c00000000020400190000000002036019000000000202004b0000010f0000613d0000000001000019000017c5000104300000002401100370000000000101043b000900000001001d0000000001000411000080010110008c000000430000c13d0000000001000412000005fc011001970000000002000410000800000002001d000000000121004b000000430000c13d0000000002000414000000400100043d00000020031000390000061f0400004100000000004304350000000b030000290000010403300039000700000003001d0000000203300367000000000303043b0000002404100039000000000034043500000024030000390000000000310435000006200310009c0000015e0000413d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c500010430000001c405700039000000000551034f0000000007740049000000230770008a000000000505043b000005fa08000041000000000975004b00000000090000190000000009088019000005fa07700197000005fa0a500197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000006650019000000000161034f000000000501043b000005fb0150009c0000010d0000213d00000000015400490000002004600039000005fa06000041000000000714004b00000000070000190000000007062019000005fa01100197000005fa08400197000000000918004b0000000006008019000000000118013f000005fa0110009c00000000010700190000000001066019000000000101004b0000010d0000c13d0000000001000414000005fe0610009c000002360000413d000000400500043d000000d90000013d0000006003100039000000400030043f0000000004010433000005fe0540009c000001740000413d00000605020000410000000000230435000000a40210003900000604040000410000000000420435000000840210003900000008040000390000000000420435000000640110003900000020020000390000000000210435000005f201000041000005f20230009c0000000001034019000000400110021000000606011001c7000017c500010430000000c0022002100000062102200197000000400110021000000622011000410000062301100197000000000112019f00000060024002100000062402200197000000000121019f00000625011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001917c317af0000040f00030000000103550000006001100270000105f20010019d000005f2041001970000003f014000390000062605100197000000400100043d0000000003150019000000000553004b00000000050000190000000105004039000005fb0630009c0000012b0000213d00000001055001900000012b0000c13d000000400030043f00000000034104360000001f054000390000000505500272000001a30000613d00000000060000310000000206600367000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000019b0000413d000000000500004b000001a50000613d0000000105000031000000000554004b0000010d0000213d00000003060003670000001f0540018f0000000504400272000001b50000613d000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000001ad0000413d000000000705004b000001c40000613d0000000504400210000000000646034f00000000044300190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f000000000054043500000001022001900000025b0000613d0000000901000029000000000101004b000012520000c13d00000002010003670000000a02000029000000000221034f000000000202043b000000000302004b0000028f0000c13d0000000702000029000000000121034f000000000101043b000000800210008c000002cf0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f000000020320003900000009040000290000000003340436000000210420003900000005044002720000020e0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000002060000413d000000000400004b000002100000613d00000009040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062d0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000090200002900000021022000390000000000120435000004260000013d000000000441034f000000000404043b000005ff04400197000006070740009c000002650000c13d000000430460008c000002710000213d0000060501000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000061a01000041000000c40010043f0000061b01000041000000e40010043f0000061c01000041000017c500010430000080060620008c00000000060000190000024a0000c13d000000040650008c00000000060000190000024a0000413d00000001060000390000000207400367000000000707043b000005ff07700197000006000870009c000002490000613d000006010870009c000002490000613d000006020870009c000002490000613d000006030670009c00000000060000190000000106006039000000010660018f17c316d80000040f17c317230000040f0000000002010019000000400100043d000b00000001001d17c315bf0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c40001042e0000000001010433000005f202000041000005f20410009c0000000001028019000005f20430009c000000000203401900000040022002100000006001100210000000000121019f000017c500010430000006080140009c000000430000613d0000060501000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000060901000041000000c40010043f0000060a01000041000017c5000104300000002404500039000000000441034f000000000404043b000b00000004001d000005fc0440009c0000010d0000213d000000e402200039000000000221034f0000004404500039000000000141034f000000000101043b000a00000001001d000000000102043b0000060b02000041000000800020043f000005fc02300197000800000002001d000000840020043f000005fc01100197000900000001001d000000a40010043f00000000010004140000000b02000029000000040220008c000003480000c13d0000000103000031000000200130008c00000020040000390000000004034019000003740000013d000000710320008c000002ec0000c13d000000230200008a0000000b030000290000000004320049000001c402300039000000000221034f000000000302043b0000000002000031000900000004001d0000000004420019000005fa05000041000000000643004b00000000060000190000000006058019000005fa04400197000005fa07300197000000000847004b0000000005008019000000000447013f000005fa0440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000003430019000000000131034f000000000101043b000005fb0410009c0000010d0000213d00000000021200490000002003300039000005fa04000041000000000523004b00000000050000190000000005042019000005fa02200197000005fa06300197000000000726004b0000000004008019000000000226013f000005fa0220009c00000000020500190000000002046019000000000202004b0000010d0000c13d00000000020004140000000004310019000000000114004b00000000010000190000000101004039000005f2033001970000000101100190000002c90000c13d0000000001000031000000000541004b000007130000813d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000400200043d000900000002001d0000062a0220009c0000012b0000213d00000009030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000002db0000413d00000009030000290000000003030433000000000303004b0000041d0000c13d0000063d0100004100000000001004350000003201000039000000040010043f0000063e01000041000017c500010430000000020120008c0000039b0000c13d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005580000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000003350000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000032d0000413d000000000500004b000003370000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000005750000013d000005f202000041000005f20310009c0000000001028019000000c0011002100000060c011001c70000000b0200002917c317b40000040f00000000030100190000006003300270000005f203300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003610000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003590000413d000000000705004b000003700000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000003f70000613d0000001f01400039000000600410018f00000080014001bf000000400010043f000000200230008c0000010d0000413d000000800200043d0000000a03000029000000000232004b000000430000813d000000a0024000390000060d030000410000000000320435000000a40340003900000009050000290000000000530435000000c40340003900000000000304350000004403000039000400000003001d00000000003104350000014003400039000000400030043f00000120034000390000060e05000041000000000053043500000100044001bf0000002003000039000600000003001d000500000004001d0000000000340435000000000301043300000000010004140000000b04000029000000040440008c000004f70000c13d00000001020000390000000101000031000005080000013d000000010120008c000004770000c13d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005ea0000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000003e40000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003dc0000413d000000000500004b000003e60000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000006070000013d000000400200043d0000001f0430018f0000000503300272000004040000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003fc0000413d000000000504004b000004130000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f2010000410000000103000031000005f20430009c0000000003018019000005f20420009c000000000102401900000040011002100000006002300210000000000112019f000017c500010430000000f803100210000005fa04000041000000000101004b0000000001030019000000000104601900000000030204330000062b03300197000000000113019f00000000001204350000000b01000029000000a4011000390000000201100367000000000201043b000000800120008c000004890000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004640000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000045c0000413d000000000500004b000004660000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000004a60000013d000000400100043d00000044021000390000062703000041000000000032043500000024021000390000001703000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000004930000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f00000000002304350000000b0200002900000064022000390000000202200367000000000302043b000000800230008c000006570000413d00000080023002700000062c0430009c000000000203a0190000062c0430009c0000000004000019000000100400203900000008054001bf000005fb0620009c00000000040520190000004005200270000005fb0620009c000000000205201900000004054001bf000005f20620009c00000000040520190000002005200270000005f20620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000004e40000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000004dc0000413d000000000600004b000004e60000613d0000000006020433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000006740000013d000005f204000041000005f20530009c000000000304801900000060033002100000004002200210000000000223019f000005f20310009c0000000001048019000000c001100210000000000112019f0000000b0200002917c317af0000040f000000010220018f00030000000103550000006001100270000105f20010019d000005f2011001970000006003000039000700000003001d000000000301004b000005280000c13d00000007010000290000000031010434000300000003001d000000000202004b000005c50000c13d000000000201004b000007080000c13d000000400300043d000b00000003001d000006050100004100000000001304350000000401300039000000060200002900000000002104350000002402300039000000050100002917c315ac0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c500010430000005fb0310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000007030000290000000001130436000000030300036700000001050000310000001f0450018f0000000505500272000005480000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000005400000413d000000000604004b0000050c0000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000050c0000013d000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005620000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f000000000023043500000007020000290000000202200367000000000302043b000000800230008c000007280000413d00000080023002700000062c0430009c000000000203a0190000062c0430009c0000000004000019000000100400203900000008054001bf000005fb0620009c00000000040520190000004005200270000005fb0620009c000000000205201900000004054001bf000005f20620009c00000000040520190000002005200270000005f20620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000005b20000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005aa0000413d000000000600004b000005b40000613d0000000006020433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000007450000013d000000000201004b000009f20000c13d0000060f0100004100000000001004390000000b010000290000000400100443000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000610011001c7000080020200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000000101004b000009ee0000c13d000000400100043d00000044021000390000061903000041000000000032043500000024021000390000001d03000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005f40000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f000000000023043500000007020000290000000202200367000000000202043b000000800320008c000007960000413d00000080032002700000062c0420009c000000000302a0190000062c0420009c0000000004000019000000100400203900000008054001bf000005fb0630009c00000000040520190000004005300270000005fb0630009c000000000305201900000004054001bf000005f20630009c00000000040520190000002005300270000005f20630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000006440000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000063c0000413d000000000600004b000006460000613d0000000006030433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000007b30000013d000000400200043d0000062a0420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006610000413d0000000005020433000000000505004b000002e60000613d000000f805300210000005fa06000041000000000303004b0000000003050019000000000306601900000000050404330000062b05500197000000000335019f0000000000340435000000400300043d000700000003001d00000020043000390000000003010433000000000503004b000006820000613d000000000500001900000000064500190000002005500039000000000715001900000000070704330000000000760435000000000635004b0000067b0000413d000000000143001900000000000104350000000004020433000000000504004b0000068f0000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b000006880000413d000000000114001900000000000104350000000001340019000000070300002900000000001304350000003f01100039000000200200008a000300000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000600000002001d000005fb0220009c0000012b0000213d00000001011001900000012b0000c13d0000000601000029000000400010043f0000062a0110009c0000012b0000213d0000000b0400002900000044014000390000000201100367000000000101043b00000006050000290000004002500039000000400020043f00000020025000390000062e0300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c00000b8d0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000304000029000000000343016f000000400400043d0000000003340019000500000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000002032000390000000504000029000000000334043600000021042000390000000504400272000006f30000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000006eb0000413d000000000400004b000006f50000613d00000005040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062d0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000005020000290000002102200039000000000012043500000bad0000013d000005f2020000410000000304000029000005f20340009c00000000030200190000000003044019000005f20410009c000000000102801900000060011002100000004002300210000000000121019f000017c5000104300000000203300367000005fe0520009c000008040000413d000000400100043d00000044021000390000060403000041000000000032043500000024021000390000000803000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400200043d0000062a0420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007320000413d0000000005020433000000000505004b000002e60000613d000000f805300210000005fa06000041000000000303004b0000000003050019000000000306601900000000050404330000062b05500197000000000335019f00000000003404350000000b03000029000000c4033000390000000203300367000000000303043b000000800430008c00000a2f0000413d00000080043002700000062c0530009c000000000403a0190000062c0530009c0000000005000019000000100500203900000008065001bf000005fb0740009c00000000050620190000004006400270000005fb0740009c000000000406201900000004065001bf000005f20740009c00000000050620190000002006400270000005f20740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000005fb0860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007830000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000077b0000413d000000000700004b000007850000613d0000000007040433000000000707004b000002e60000613d00000000070604330000062b07700197000000f808500210000000000778019f0000062d0770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105400039000000000035043500000a4c0000013d000000400300043d0000062a0430009c0000012b0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007a00000413d0000000005030433000000000505004b000002e60000613d000000f805200210000005fa06000041000000000202004b0000000002050019000000000206601900000000050404330000062b05500197000000000225019f00000000002404350000000b02000029000000a4022000390000000202200367000000000202043b000000800420008c00000b1f0000413d00000080042002700000062c0520009c000000000402a0190000062c0520009c0000000005000019000000100500203900000008065001bf000005fb0740009c00000000050620190000004006400270000005fb0740009c000000000406201900000004065001bf000005f20740009c00000000050620190000002006400270000005f20740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000005fb0860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007f10000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000007e90000413d000000000700004b000007f30000613d0000000007040433000000000707004b000002e60000613d00000000070604330000062b07700197000000f808500210000000000778019f0000062d0770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500000b3c0000013d0000000001410049000005f20110019700000000011303df000000c002200210000006210220019700000633022001c700000000012103af000080100200003917c317be0000040f00000000030100190000006003300270000105f20030019d000005f2033001970003000000010355000000010220019000000a9d0000613d0000003f013000390000062601100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f0430003900000005044002720000082f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000008270000413d000000000400004b000008310000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008410000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000008390000413d000000000604004b000008500000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ca40000c13d0000000004000031000000090200002900000000052400190000000b0200002900000204032000390000000202000367000000000332034f000000000303043b000005fa06000041000000000753004b00000000070000190000000007068019000005fa05500197000005fa08300197000000000958004b0000000006008019000000000558013f000005fa0550009c00000000050700190000000005066019000000000505004b0000010d0000c13d0000000001010433000600000001001d0000000a010000290000000001130019000000000312034f000000000503043b000005fb0350009c0000010d0000213d000000050350021000000000043400490000002006100039000005fa01000041000000000746004b00000000070000190000000007012019000005fa04400197000005fa08600197000000000948004b0000000001008019000000000448013f000005fa0440009c000000000107c019000000000101004b0000010d0000c13d000000400100043d000000200410003900000634055001980000088f0000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000008870000413d000000000200004b000008910000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b00000000030000190000000103004039000005fb0520009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f000005f202000041000005f20340009c0000000003020019000000000304401900000040033002100000000001010433000005f20410009c00000000010280190000006001100210000000000131019f0000000003000414000005f20430009c0000000002034019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d0000000002000031000000090300002900000000053200190000000b0300002900000224043000390000000203000367000000000443034f000000000404043b000005fa06000041000000000754004b00000000070000190000000007068019000005fa05500197000005fa08400197000000000958004b0000000006008019000000000558013f000005fa0550009c00000000050700190000000005066019000000000101043b000900000001001d000000000105004b0000010d0000c13d0000000a010000290000000004140019000000000143034f000000000101043b000005fb0310009c0000010d0000213d00000000021200490000002003400039000005fa04000041000000000523004b00000000050000190000000005042019000005fa02200197000005fa06300197000000000726004b0000000004008019000000000226013f000005fa0220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005f204300197000002c90000413d0000000003000031000000000513004b000002c90000413d0000000204400367000005f20520009c000007160000213d0000000001130049000005f20110019700000000011403df000000c002200210000006210220019700000633022001c700000000012103af000080100200003917c317be0000040f00000000030100190000006003300270000105f20030019d000005f20330019700030000000103550000000102200190000013fa0000613d0000003f013000390000062601100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000009150000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000090d0000413d000000000400004b000009170000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000009270000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000091f0000413d000000000604004b000009360000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ca40000c13d0000000b0a0000290000006402a000390000000203000367000000000523034f0000004402a00039000000000423034f0000002402a00039000000000623034f0000008402a00039000000a407a00039000000c408a00039000000e409a00039000001240aa00039000000000aa3034f000000070b000029000000000bb3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000a02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000b0b043b000000000a0a043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c100039000000090d0000290000000000dc0435000001800c100039000000060d0000290000000000dc0435000001600c1000390000000000ac0435000001400a1000390000000000ba0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000636030000410000000000320435000001c0030000390000000000310435000006370310009c0000012b0000213d000001e003100039000000400030043f000005f203000041000005f20420009c000000000203801900000040022002100000000001010433000005f20410009c00000000010380190000006001100210000000000121019f0000000002000414000005f20420009c0000000002038019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000700000001001d000000400100043d000900000001001d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d00000009040000290000002002400039000000000101043b000006380300004100000000003204350000008003400039000000000013043500000060014000390000063903000041000000000031043500000040014000390000063a030000410000000000310435000000800100003900000000001404350000063b0140009c0000012b0000213d0000000904000029000000a001400039000000400010043f000005f201000041000005f20320009c000000000201801900000040022002100000000003040433000005f20430009c00000000030180190000006003300210000000000223019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d000000000301043b000000400100043d00000042021000390000000704000029000000000042043500000020021000390000063c0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000006150310009c0000012b0000213d0000008003100039000000400030043f000005f203000041000005f20420009c000000000203801900000040022002100000000001010433000005f20410009c00000000010380190000006001100210000000000121019f0000000002000414000005f20420009c0000000002038019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d00000007010000290000000001010433000000000201004b00000a1c0000613d000005fa02000041000000200310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000003010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a1c0000c13d000000400100043d00000064021000390000061703000041000000000032043500000044021000390000061803000041000000000032043500000024021000390000002a03000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000400300043d0000002401300039000000090200002900000000002104350000060b010000410000000000130435000700000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040220008c00000ab80000c13d0000000103000031000000200130008c0000002004000039000000000403401900000aeb0000013d000000400400043d0000062a0540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000a390000413d0000000006040433000000000606004b000002e60000613d000000f806300210000005fa07000041000000000303004b0000000003060019000000000307601900000000060504330000062b06600197000000000336019f00000000003504350000000b03000029000000a4033000390000000203300367000000000303043b000000800530008c00000c220000413d00000080053002700000062c0630009c000000000503a0190000062c0630009c0000000006000019000000100600203900000008076001bf000005fb0850009c00000000060720190000004007500270000005fb0850009c000000000507201900000004076001bf000005f20850009c00000000060720190000002007500270000005f20850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000005fb0970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000a8a0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000a820000413d000000000800004b00000a8c0000613d0000000008050433000000000808004b000002e60000613d00000000080704330000062b08800197000000f809600210000000000889019f0000062d0880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c00000000030020190000002106500039000000000036043500000c3f0000013d0000001f0430018f000000050230027200000aa80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000aa10000413d000000000504004b00000ab60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017c500010430000005f202000041000005f20310009c00000000010280190000000704000029000005f20340009c00000000020440190000004002200210000000c001100210000000000121019f00000611011001c70000000b0200002917c317b40000040f000000070a00002900000000030100190000006003300270000005f203300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000ad70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000acf0000413d000000000705004b00000ae70000613d0000000506600210000000000761034f000000070800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000bfc0000613d0000001f01400039000000600210018f00000007010000290000000001120019000000000221004b00000000020000190000000102004039000005fb0410009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000000200230008c0000010d0000413d00000007020000290000000002020433000000000202004b00000c900000c13d00000044021000390000000a03000029000000000032043500000020021000390000060d03000041000000000032043500000024031000390000000904000029000000000043043500000004030000290000000000310435000006150310009c0000012b0000213d0000008003100039000a00000003001d000000400030043f000006160310009c0000012b0000213d000000c003100039000000400030043f00000006030000290000000a040000290000000000340435000000a0031000390000060e040000410000000000430435000000000301043300000000010004140000000b04000029000000040440008c00000db20000c13d0000000102000039000000010100003100000dc50000013d000000400400043d0000062a0540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000b290000413d0000000006040433000000000606004b000002e60000613d000000f806200210000005fa07000041000000000202004b0000000002060019000000000207601900000000060504330000062b06600197000000000226019f00000000002504350000000b0200002900000064022000390000000202200367000000000202043b000000800520008c00000cb60000413d00000080052002700000062c0620009c000000000502a0190000062c0620009c0000000006000019000000100600203900000008076001bf000005fb0850009c00000000060720190000004007500270000005fb0850009c000000000507201900000004076001bf000005f20850009c00000000060720190000002007500270000005f20850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000005fb0970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000b7a0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000b720000413d000000000800004b00000b7c0000613d0000000008050433000000000808004b000002e60000613d00000000080704330000062b08800197000000f809600210000000000889019f0000062d0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500000cd30000013d000000400200043d000500000002001d0000062a0220009c0000012b0000213d00000005030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000b990000413d00000005030000290000000003030433000000000303004b000002e60000613d000000f803100210000005fa04000041000000000101004b0000000001030019000000000104601900000000030204330000062b03300197000000000113019f0000000000120435000000230100008a0000000b020000290000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000100000004001d0000000004430019000005fa05000041000000000641004b00000000060000190000000006058019000005fa04400197000005fa07100197000000000847004b0000000005008019000000000447013f000005fa0440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000004410019000000000142034f000000000101043b000005fb0510009c0000010d0000213d00000000051300490000002003400039000005fa04000041000000000653004b00000000060000190000000006042019000005fa05500197000005fa07300197000000000857004b0000000004008019000000000557013f000005fa0550009c000000000406c019000000000404004b0000010d0000c13d000000010410008c00000ee40000c13d000000000132034f000000000101043b000000010200008a000005fa03000041000000000221004b00000000020000190000000002032019000005fa01100197000005fa0410009c0000000003008019000005fa01100167000005fa0110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b000010420000c13d000000400100043d000400000001001d0000062a0110009c0000012b0000213d00000004030000290000004001300039000000400010043f00000020013000390000062d02000041000000000021043500000001010000390000000000130435000010420000013d000000400200043d0000001f0430018f000000050330027200000c090000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000c010000413d000000000504004b00000c180000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f2010000410000000103000031000005f20430009c0000000003018019000005f20420009c000000000102401900000040011002100000006002300210000000000112019f000017c500010430000000400500043d0000062a0650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000c2c0000413d0000000007050433000000000707004b000002e60000613d000000f807300210000005fa08000041000000000303004b0000000003070019000000000308601900000000070604330000062b07700197000000000337019f00000000003604350000000b0300002900000064033000390000000203300367000000000303043b000000800630008c00000d340000413d00000080063002700000062c0730009c000000000603a0190000062c0730009c0000000007000019000000100700203900000008087001bf000005fb0960009c00000000070820190000004008600270000005fb0960009c000000000608201900000004087001bf000005f20960009c00000000070820190000002008600270000005f20960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b00000000090000190000000109004039000005fb0a80009c0000012b0000213d00000001099001900000012b0000c13d000000400080043f000000020870003900000000088604360000002109700039000000050990027200000c7d0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b00000c750000413d000000000900004b00000c7f0000613d0000000009060433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062d0990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c00000000030020190000002107600039000000000037043500000d510000013d00000064021000390000061203000041000000000032043500000044021000390000061303000041000000000032043500000024021000390000003603000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000400100043d00000044021000390000063503000041000000000032043500000024021000390000001f03000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400500043d0000062a0650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000cc00000413d0000000007050433000000000707004b000002e60000613d000000f807200210000005fa08000041000000000202004b0000000002070019000000000208601900000000070604330000062b07700197000000000227019f0000000000260435000000400600043d0000062a0260009c0000012b0000213d0000000b0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f00000020076000390000062e0800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c00000e150000413d00000080072002700000062c0820009c000000000702a0190000062c0820009c0000000008000019000000100800203900000008098001bf000005fb0a70009c00000000080920190000004009700270000005fb0a70009c000000000709201900000004098001bf000005f20a70009c00000000080920190000002009700270000005f20a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a004039000005fb0b90009c0000012b0000213d000000010aa001900000012b0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200000d210000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00000d190000413d000000000a00004b00000d230000613d000000000a070433000000000a0a004b000002e60000613d000000000a0904330000062b0aa00197000000f80b800210000000000aab019f0000062d0aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500000e320000013d000000400600043d0000062a0760009c0000012b0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000d3e0000413d0000000008060433000000000808004b000002e60000613d000000f808300210000005fa09000041000000000303004b0000000003080019000000000309601900000000080704330000062b08800197000000000338019f0000000000370435000000400700043d0000062a0370009c0000012b0000213d0000000b0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f00000020087000390000062e090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000f470000413d00000080083002700000062c0930009c000000000803a0190000062c0930009c00000000090000190000001009002039000000080a9001bf000005fb0b80009c00000000090a2019000000400a800270000005fb0b80009c00000000080a2019000000040a9001bf000005f20b80009c00000000090a2019000000200a800270000005f20b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b004039000005fb0ca0009c0000012b0000213d000000010bb001900000012b0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb0027200000d9f0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000d970000413d000000000b00004b00000da10000613d000000000b080433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c900210000000000bbc019f0000062d0bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000f640000013d000005f204000041000005f20520009c00000000020480190000004002200210000005f20530009c00000000030480190000006003300210000000000223019f000005f20310009c0000000001048019000000c001100210000000000112019f0000000b0200002917c317af0000040f000000010220018f00030000000103550000006001100270000105f20010019d000005f2011001970000006003000039000900000003001d000000000301004b00000de50000c13d00000009010000290000000031010434000800000003001d000000000202004b00000f1a0000c13d000000000201004b000011110000c13d000000400300043d000b00000003001d0000060501000041000000000013043500000004013000390000000602000029000000000021043500000024023000390000000a0100002917c315ac0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c500010430000005fb0310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000009030000290000000001130436000000030300036700000001050000310000001f0450018f000000050550027200000e050000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000dfd0000413d000000000604004b00000dc90000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000dc90000013d000000400700043d0000062a0870009c0000012b0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e1f0000413d0000000009070433000000000909004b000002e60000613d000000f809200210000005fa0a000041000000000202004b000000000209001900000000020a601900000000090804330000062b09900197000000000229019f0000000000280435000000400200043d00000020092000390000000008010433000000000a08004b00000e3f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b8a004b00000e380000413d00000000019800190000000000010435000000000128001900000020091000390000000008030433000000000a08004b00000e4e0000613d000000000a000019000000000b9a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b8a004b00000e470000413d00000000039800190000000000030435000000000118001900000020081000390000000003040433000000000903004b00000e5d0000613d0000000009000019000000000a8900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b00000e560000413d00000000048300190000000000040435000000000113001900000020041000390000000003050433000000000803004b00000e6c0000613d000000000800001900000000094800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000938004b00000e650000413d00000000044300190000000000040435000000000113001900000020041000390000000003060433000000000503004b00000e7b0000613d000000000500001900000000084500190000002005500039000000000965001900000000090904330000000000980435000000000835004b00000e740000413d00000000044300190000000000040435000000000113001900000020041000390000000003070433000000000503004b00000e8a0000613d000000000500001900000000064500190000002005500039000000000875001900000000080804330000000000860435000000000635004b00000e830000413d000000000443001900000000000404350000000001210049000000000113001900000000001204350000003f03100039000000200100008a000000000313016f0000000005230019000000000335004b00000000030000190000000103004039000005fb0450009c0000012b0000213d00000001033001900000012b0000c13d000000400050043f000000230300008a0000000b060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b00000000080000310000000009480019000005fa0a000041000000000b96004b000000000b000019000000000b0a8019000005fa09900197000005fa0c600197000000000d9c004b000000000a00801900000000099c013f000005fa0990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000005fb0a60009c0000010d0000213d000000000a6800490000002008900039000005fa09000041000000000ba8004b000000000b000019000000000b092019000005fa0aa00197000005fa0c800197000000000dac004b0000000009008019000000000aac013f000005fa0aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000012700000c13d000000000687034f000000000606043b000000010700008a000005fa08000041000000000776004b00000000070000190000000007082019000005fa06600197000005fa0960009c0000000008008019000005fa06600167000005fa0660009c00000000070860190000006006000039000000000707004b000012ee0000c13d0000062a0650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000062d070000410000000000760435000000010600003900000000006504350000000006050019000012ee0000013d000000380210008c000010250000413d0000002002100270000005f20310009c00000000030100190000000003022019000005f20210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d0000062a0440009c0000012b0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000f020000413d00000004040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062f044001c700000000004304350000000302200210000000f80220008900000000012101cf000000040200002900000021022000390000000000120435000010420000013d000000000201004b00000f310000c13d0000060f0100004100000000001004390000000b010000290000000400100443000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000610011001c7000080020200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000000101004b000005d80000613d00000009010000290000000001010433000000000201004b000000430000613d000005fa02000041000000200310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000008010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a070000613d000000430000013d000000400800043d0000062a0980009c0000012b0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000f510000413d000000000a080433000000000a0a004b000002e60000613d000000f80a300210000005fa0b000041000000000303004b00000000030a001900000000030b6019000000000a0904330000062b0aa0019700000000033a019f0000000000390435000000400300043d000000200a3000390000000009010433000000000b09004b00000f710000613d000000000b000019000000000cab0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000c9b004b00000f6a0000413d0000000001a9001900000000000104350000000001390019000000200a1000390000000009020433000000000b09004b00000f800000613d000000000b000019000000000cab0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000c9b004b00000f790000413d0000000002a900190000000000020435000000000119001900000020091000390000000002040433000000000a02004b00000f8f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c4a0019000000000c0c04330000000000cb0435000000000b2a004b00000f880000413d00000000049200190000000000040435000000000112001900000020041000390000000002050433000000000902004b00000f9e0000613d0000000009000019000000000a4900190000002009900039000000000b590019000000000b0b04330000000000ba0435000000000a29004b00000f970000413d00000000044200190000000000040435000000000112001900000020041000390000000002060433000000000502004b00000fad0000613d000000000500001900000000094500190000002005500039000000000a650019000000000a0a04330000000000a90435000000000925004b00000fa60000413d00000000044200190000000000040435000000000112001900000020041000390000000002070433000000000502004b00000fbc0000613d000000000500001900000000064500190000002005500039000000000975001900000000090904330000000000960435000000000625004b00000fb50000413d00000000044200190000000000040435000000000112001900000020041000390000000002080433000000000502004b00000fcb0000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000625004b00000fc40000413d000000000442001900000000000404350000000001310049000000000112001900000000001304350000003f02100039000000200100008a000000000212016f0000000005320019000000000225004b00000000020000190000000102004039000005fb0450009c0000012b0000213d00000001022001900000012b0000c13d000000400050043f000000230200008a0000000b060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b00000000080000310000000009480019000005fa0a000041000000000b96004b000000000b000019000000000b0a8019000005fa09900197000005fa0c600197000000000d9c004b000000000a00801900000000099c013f000005fa0990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000005fb0a60009c0000010d0000213d000000000a6800490000002008900039000005fa09000041000000000ba8004b000000000b000019000000000b092019000005fa0aa00197000005fa0c800197000000000dac004b0000000009008019000000000aac013f000005fa0aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000012a20000c13d000000000687034f000000000606043b000000010700008a000005fa08000041000000000776004b00000000070000190000000007082019000005fa06600197000005fa0960009c0000000008008019000005fa06600167000005fa0660009c00000000070860190000006006000039000000000707004b000013810000c13d0000062a0650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000062d070000410000000000760435000000010600003900000000006504350000000006050019000013810000013d000000400200043d000400000002001d0000062a0220009c0000012b0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000010310000413d00000004030000290000000003030433000000000303004b000002e60000613d000000f80110021000000000030204330000062b03300197000000000113019f000005fa01100167000000000012043500000060010000390000000b0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b000010b70000c13d0000000203000029000000000432034f000000000300003100000001050000290000000005530019000000000904043b000005fa04000041000000000659004b00000000060000190000000006048019000005fa05500197000005fa07900197000000000857004b0000000004008019000000000557013f000005fa0550009c000000000406c019000000000404004b0000010d0000c13d00000009040000290000000004040433000000070500002900000000050504330000000606000029000000000606043300000005070000290000000007070433000000040800002900000000080804330000000a0a0000290000000009a90019000000000292034f000000000202043b000005fb0a20009c0000010d0000213d00000000032300490000002009900039000005fa0a000041000000000b39004b000000000b000019000000000b0a2019000005fa03300197000005fa09900197000000000c39004b000000000a008019000000000339013f000005fa0330009c00000000030b001900000000030a6019000000000303004b0000010d0000c13d0000000003450019000000000363001900000000037300190000000003830019000000000223001900000000030104330000000002320019000005fb02200197000000380320008c000011590000413d0000002003200270000005f20420009c00000000040200190000000004032019000005f20320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400600043d0000062a0560009c0000012b0000213d000000000343019f0000004004600039000000400040043f0000000204300039000000000446043600000000050000310000000205500367000000000700001900000005087002100000000009840019000000000885034f000000000808043b0000000000890435000000010770003a000010a10000413d0000000005060433000000000505004b000002e60000613d00000000050404330000062b05500197000000f807300210000000000557019f00000631055001c700000000005404350000000303300210000000f80330008900000000023201cf00000021036000390000000000230435000011730000013d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000800210008c0000111c0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000304000029000000000442016f000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000442043600000021053000390000000505500272000010fe0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000010f60000413d000000000500004b000011000000613d0000000005020433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c000000000100201900000021032000390000000000130435000011390000013d000005f2020000410000000804000029000005f20340009c00000000030200190000000003044019000005f20410009c000000000102801900000060011002100000004002300210000000000121019f000017c500010430000000400200043d0000062a0320009c0000012b0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000011260000413d0000000004020433000000000404004b000002e60000613d000000f804100210000005fa05000041000000000101004b0000000001040019000000000105601900000000040304330000062b04400197000000000114019f0000000000130435000000400100043d00000020041000390000000003020433000000000503004b000011460000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000113f0000413d00000000024300190000063f0400004100000000004204350000000202300039000000000021043500000041023000390000000303000029000000000332016f0000000002130019000000000332004b00000000030000190000000103004039000005fb0420009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f00000002020003670000104a0000013d000000400600043d0000062a0360009c0000012b0000213d0000004003600039000000400030043f0000000103000039000000000336043600000000040000310000000204400367000000000500001900000005075002100000000008730019000000000774034f000000000707043b0000000000780435000000010550003a000011630000413d0000000004060433000000000404004b000002e60000613d000000f80220021000000000040304330000062b04400197000000000242019f0000063002200041000000000023043500000000020000310000000103000029000000000532001900000002030003670000000204000029000000000443034f000000000404043b000005fa07000041000000000854004b00000000080000190000000008078019000005fa05500197000005fa09400197000000000a59004b0000000007008019000000000559013f000005fa0550009c00000000050800190000000005076019000000000505004b0000010d0000c13d0000000a050000290000000005540019000000000353034f000000000403043b000005fb0340009c0000010d0000213d00000000024200490000002005500039000005fa03000041000000000725004b00000000070000190000000007032019000005fa02200197000005fa08500197000000000928004b0000000003008019000000000228013f000005fa0220009c00000000020700190000000002036019000000000202004b0000010d0000c13d000000400200043d00000020032000390000000007060433000000000807004b000011ab0000613d000000000800001900000000093800190000002008800039000000000a680019000000000a0a04330000000000a90435000000000978004b000011a40000413d000000000637001900000000000604350000000006270019000000200860003900000009070000290000000007070433000000000907004b000011bc0000613d0000000009000019000000000a8900190000002009900039000000090b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011b40000413d000000000887001900000000000804350000000006670019000000200860003900000007070000290000000007070433000000000907004b000011cd0000613d0000000009000019000000000a8900190000002009900039000000070b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011c50000413d000000000887001900000000000804350000000006670019000000200860003900000006070000290000000007070433000000000907004b000011de0000613d0000000009000019000000000a8900190000002009900039000000060b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011d60000413d000000000887001900000000000804350000000006670019000000200860003900000005070000290000000007070433000000000907004b000011ef0000613d0000000009000019000000000a8900190000002009900039000000050b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011e70000413d000000000887001900000000000804350000000006670019000000200860003900000004070000290000000007070433000000000907004b000012000000613d0000000009000019000000000a8900190000002009900039000000040b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011f80000413d0000000008870019000000000008043500000000066700190000001f0740018f000000200860003900000002055003670000000509400272000012110000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012090000413d000000000a07004b000012200000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000004460019000000200640003900000000000604350000000005010433000000000705004b0000122e0000613d000000000700001900000000086700190000002007700039000000000917001900000000090904330000000000980435000000000857004b000012270000413d000000000165001900000000000104350000000001240049000000000115001900000000001204350000003f011000390000000304000029000000000441016f0000000001240019000000000441004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f000005f201000041000005f20430009c000000000301801900000040033002100000000002020433000005f20420009c00000000020180190000006002200210000000000232019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f00000001012001900000010d0000613d0000000a0100002917c3178d0000040f0000064002000041000000000020043900000008020000290000000400200443000900000001001d0000800a01000039000000240200003917c3159b0000040f0000000902000029000000000112004b0000000001000019000000010100a03917c316500000040f0000000b01000029000001e4021000390000000a0100002917c316680000040f000000000300003117c316940000040f0000064101000041000000400200043d0000000000120435000005f201000041000005f20320009c0000000001024019000000400110021000000642011001c7000017c40001042e000000380760008c000012d40000413d0000002007600270000005f20860009c00000000080600190000000008072019000005f20760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c000000000800001900000001080020390000062a0950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000128b0000413d0000000009050433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062f099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000012ee0000013d000000380760008c000013670000413d0000002007600270000005f20860009c00000000080600190000000008072019000005f20760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c000000000800001900000001080020390000062a0950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000012bd0000413d0000000009050433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062f099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000013810000013d0000062a0750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000012dd0000413d0000000008050433000000000808004b000002e60000613d000000f80660021000000000080704330000062b08800197000000000668019f000005fa0660016700000000006704350000000006050019000000400500043d0000062a0750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000012f80000413d0000000009050433000000000909004b000002e60000613d00000000090704330000062b0990019700000630099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b000005fa0a000041000000000d9c004b000000000d000019000000000d0a8019000005fa09900197000005fa0ec00197000000000f9e004b000000000a00801900000000099e013f000005fa0990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009020433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000005fb0db0009c0000010d0000213d0000000007b70049000000200cc00039000005fa0d000041000000000e7c004b000000000e000019000000000e0d2019000005fa07700197000005fa0cc00197000000000f7c004b000000000d00801900000000077c013f000005fa0770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b7001900000000090504330000000007970019000005fb09700197000000380790008c000014150000413d0000002007900270000005f20890009c000000000709a019000005f20890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d0000062a0b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000013510000413d000000000b070433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c800210000000000bbc019f000006310bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000142e0000013d0000062a0750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000013700000413d0000000008050433000000000808004b000002e60000613d000000f80660021000000000080704330000062b08800197000000000668019f000005fa0660016700000000006704350000000006050019000000400500043d0000062a0750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000138b0000413d0000000009050433000000000909004b000002e60000613d00000000090704330000062b0990019700000630099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b000005fa0a000041000000000d9c004b000000000d000019000000000d0a8019000005fa09900197000005fa0ec00197000000000f9e004b000000000a00801900000000099e013f000005fa0990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009030433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000005fb0db0009c0000010d0000213d0000000007b70049000000200cc00039000005fa0d000041000000000e7c004b000000000e000019000000000e0d2019000005fa07700197000005fa0cc00197000000000f7c004b000000000d00801900000000077c013f000005fa0770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b7001900000000090504330000000007970019000005fb09700197000000380790008c000014d80000413d0000002007900270000005f20890009c000000000709a019000005f20890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d0000062a0b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000013e40000413d000000000b070433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c800210000000000bbc019f000006310bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000014f10000013d0000001f0430018f0000000502300272000014050000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013fe0000413d000000000504004b000014130000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017c500010430000000400700043d0000062a0a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000141e0000413d000000000a070433000000000a0a004b000002e60000613d000000f809900210000000000a0804330000062b0aa001970000000009a9019f00000630099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b000005fa0a000041000000000b83004b000000000b000019000000000b0a8019000005fa08800197000005fa0c300197000000000d8c004b000000000a00801900000000088c013f000005fa0880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000003830019000000000434034f000000000804043b000005fb0480009c0000010d0000213d00000000048900490000002009300039000005fa03000041000000000a49004b000000000a000019000000000a032019000005fa04400197000005fa0b900197000000000c4b004b000000000300801900000000044b013f000005fa0440009c00000000030ac019000000000303004b0000010d0000c13d000000400300043d0000002004300039000006250a0000410000000000a40435000000210b300039000000000a070433000000000c0a004b000014660000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b0000145f0000413d0000000007ba0019000000000007043500000000073a0019000000210b700039000000000a020433000000000c0a004b000014750000613d000000000c000019000000000dbc0019000000200cc00039000000000e2c0019000000000e0e04330000000000ed0435000000000dac004b0000146e0000413d0000000002ba0019000000000002043500000000027a0019000000210a2000390000000007060433000000000b07004b000014840000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b0000147d0000413d0000000006a70019000000000006043500000000022700190000001f0680018f00000021072000390000000209900367000000050a800272000014950000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b0000148d0000413d000000000b06004b000014a40000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000002820019000000210720003900000000000704350000000006050433000000000806004b000014b20000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b000014ab0000413d0000000005760019000000000005043500000000023200490000000002260019000000010520003900000000005304350000004002200039000000000212016f0000000001320019000000000221004b00000000020000190000000102004039000005fb0510009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000005f201000041000005f20240009c0000000002010019000000000204401900000040022002100000000003030433000005f20430009c00000000030180190000006003300210000000000223019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d000000400700043d0000062a0a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000014e10000413d000000000a070433000000000a0a004b000002e60000613d000000f809900210000000000a0804330000062b0aa001970000000009a9019f00000630099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b000005fa0a000041000000000b82004b000000000b000019000000000b0a8019000005fa08800197000005fa0c200197000000000d8c004b000000000a00801900000000088c013f000005fa0880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000002820019000000000424034f000000000804043b000005fb0480009c0000010d0000213d00000000048900490000002009200039000005fa02000041000000000a49004b000000000a000019000000000a022019000005fa04400197000005fa0b900197000000000c4b004b000000000200801900000000044b013f000005fa0440009c00000000020ac019000000000202004b0000010d0000c13d000000400200043d0000002004200039000006320a0000410000000000a40435000000210b200039000000000a070433000000000c0a004b000015290000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000015220000413d0000000007ba0019000000000007043500000000072a0019000000210b700039000000000a030433000000000c0a004b000015380000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b000015310000413d0000000003ba0019000000000003043500000000037a0019000000210a3000390000000007060433000000000b07004b000015470000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000015400000413d0000000006a70019000000000006043500000000033700190000001f0680018f00000021073000390000000209900367000000050a800272000015580000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000015500000413d000000000b06004b000015670000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000003830019000000210730003900000000000704350000000006050433000000000806004b000015750000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b0000156e0000413d0000000005760019000000000005043500000000032300490000000003360019000000010530003900000000005204350000004003300039000000000313016f0000000001230019000000000331004b00000000030000190000000103004039000005fb0510009c0000012b0000213d00000001033001900000012b0000c13d000000400010043f000005f201000041000005f20340009c0000000003010019000000000304401900000040033002100000000002020433000005f20420009c00000000020180190000006002200210000000000232019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d0000000003010019000005f2010000410000000004000414000005f20540009c0000000001044019000000c001100210000000600220021000000000011200190000064301100041000000000203001917c317b40000040f0000000102200190000015aa0000613d000000000101043b000000000001042d0000000001000019000017c50001043000000000030104330000000002320436000000000403004b000015b80000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000015b10000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000403004b000015ce0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000015c70000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d0003000000000002000000040100008a0000000003100031000005fa010000410000005f0230008c00000000020000190000000002012019000005fa04300197000000000504004b0000000001008019000005fa0440009c000000000102c019000000000101004b0000161b0000613d00000002010003670000004402100370000000000202043b000005fb0420009c0000161b0000213d0000000003230049000005fa04000041000002600530008c00000000050000190000000005044019000005fa03300197000000000603004b000000000400a019000005fa0330009c00000000030500190000000003046019000000000303004b0000161b0000c13d0000000003000411000080010330008c000016190000c13d0000000003000412000005fc033001970000000004000410000000000343004b000016190000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b0000161d0000c13d0000000004000415000000030440008a00000020044000c90000000001000414000300000000001d000100000004001d000005f202000041000005f20310009c0000000001028019000000c001100210000080010200003917c317af0000040f000000010300002900030000000103550000006001100270000105f20010019d000000200130011a00000001012001950000000101200190000016350000613d0000000001000019000017c40001042e0000000001000019000017c50001043000000000431200a900000000422300d9000000000112004b0000164a0000c13d0000000004000415000000020440008a00000020044000c90000000001000414000200000000001d000000000203004b0000160a0000613d000005f202000041000005f20410009c0000000001028019000000c00110021000000632011001c700008009020000390000800104000039000000000500001917c317af0000040f0000000003000415000000020330008a00000020033000c9000016120000013d000000400100043d00000064021000390000064403000041000000000032043500000044021000390000064503000041000000000032043500000024021000390000002503000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c5000104300000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000000101004b000016530000613d000000000001042d000000400100043d00000064021000390000064603000041000000000032043500000044021000390000064703000041000000000032043500000024021000390000002203000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000000300003100000000041300490000001f0540008a0000000204000367000000000224034f000000000202043b000005fa06000041000000000752004b00000000070000190000000007064019000005fa05500197000005fa08200197000000000958004b000000000600a019000000000558013f000005fa0550009c00000000050700190000000005066019000000000505004b000016920000613d0000000001120019000000000214034f000000000202043b000005fb0420009c000016920000213d00000000032300490000002001100039000005fa04000041000000000531004b00000000050000190000000005042019000005fa03300197000005fa06100197000000000736004b0000000004008019000000000336013f000005fa0330009c00000000030500190000000003046019000000000303004b000016920000c13d000000000001042d0000000001000019000017c500010430000006480420009c000016c60000813d0000003f04200039000000200500008a000000000554016f000000400400043d0000000005540019000000000645004b00000000060000190000000106004039000005fb0750009c000016c60000213d0000000106600190000016c60000c13d000000400050043f00000000042404360000000005120019000000000335004b000016cc0000213d0000001f0320018f00000002011003670000000505200272000016b40000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000016ac0000413d000000000603004b000016c30000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f000000000015043500000000012400190000000000010435000000000001042d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c5000104300000000001000019000017c5000104300000000001000411000080010110008c000016d20000613d000000000001042d0000063d0100004100000000001004350000000101000039000000040010043f0000063e01000041000017c50001043000000000070200190000000008450019000005f2024001970000000202200367000000000403004b000016f40000613d000000000458004b0000170b0000413d0000000004000031000000000584004b0000170b0000413d000005fe0510009c000017110000813d0000000004840049000005f20440019700000000024203df000000c001100210000006210110019700000649011001c700000000011203af000000000206004b0000000005000019000000010500c03900008009020000390000000004070019000000000600001917c317b90000040f000017060000013d000000000358004b0000170b0000413d0000000003000031000000000483004b0000170b0000413d00000649040000410000063305000041000000000606004b0000000004056019000000c0011002100000062101100197000000000114019f0000000003830049000005f20330019700000000023203df00000000011203af000000000207001917c317b90000040f00030000000103550000006001100270000105f20010019d000000010120018f000000000001042d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000400100043d00000044021000390000060403000041000000000032043500000024021000390000000803000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c5000104300000000102000031000000000101004b0000176c0000613d000006480120009c000017660000813d0000003f01200039000000200300008a000000000331016f000000400100043d0000000003310019000000000413004b00000000040000190000000104004039000005fb0530009c000017660000213d0000000104400190000017660000c13d000000400030043f00000000032104360000001f042000390000000504400272000017440000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000173c0000413d000000000400004b000017460000613d0000000104000031000000000442004b0000178b0000213d00000003050003670000001f0420018f0000000502200272000017560000613d000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000726004b0000174e0000413d000000000604004b000017650000613d0000000502200210000000000525034f00000000022300190000000303400210000000000402043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000320435000000000001042d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c50001043000000003010003670000001f0420018f0000000503200272000017780000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000635004b000017710000413d000000000504004b000017860000613d00000003044002100000000503300210000000000503043300000000054501cf000000000545022f000000000131034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f201000041000005f20320009c00000000010240190000006001100210000017c5000104300000000001000019000017c500010430000000e0031000390000000202000367000000000332034f000000000303043b000005fc03300198000017970000613d0000012001100039000000000112034f000000000101043b000017a80000013d000000a003100039000000000332034f0000006004100039000000000442034f000000000404043b000000000503043b00000000634500a9000000000605004b000017a30000613d00000000655300d9000000000445004b000017a90000c13d0000012001100039000000000112034f000000000101043b000000000131001a000017a90000413d000000000001042d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000017b2002104210000000102000039000000000001042d0000000002000019000000000001042d000017b7002104230000000102000039000000000001042d0000000002000019000000000001042d000017bc002104210000000102000039000000000001042d0000000002000019000000000001042d000017c1002104230000000102000039000000000001042d0000000002000019000000000001042d000017c300000432000017c40001042e000017c5000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000004400000000000000000000000020746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f0000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f19010000000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39202bcce700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000002000002000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706575650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c000000000000000000000000000000000000000000000001000000000000000001000001000000000000000000000000000000000000000000000000000000008f19edac323ff4d08b76da2079015d4dfbe240eda064363680b7748cc46bf8dd", + "bytecode": "0x0004000000000002000b00000000000200000000030100190000006007300270000004f10670019700030000006103550002000000010355000004f10070019d0000008004000039000000400040043f00000001022001900000002c0000c13d000000040260008c000000340000413d000000000201043b000000e002200270000004f30320009c0000003f0000a13d000004f40320009c000000910000613d000004f50320009c000000c00000613d000004f60220009c000000360000c13d000000040260008a000000200320008c000001220000413d0000000401100370000000000101043b000004f90310009c000001220000213d0000000001120049000004fa02000041000002600310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000002fc0000613d000001220000013d0000000001000416000000000101004b000001220000c13d000000200100003900000100001004430000012000000443000004f201000041000013c00001042e000000000106004b000002fc0000613d0000000001000411000080010110008c000002fc0000c13d000005420100004100000000001004350000000101000039000000040010043f0000054301000041000013c100010430000004f70320009c0000010c0000613d000900000004001d000004f80220009c000000360000c13d000000040260008a000000600220008c000001220000413d0000004402100370000000000302043b000004f90230009c000001220000213d00000004043000390000000005460049000004fa02000041000002600750008c00000000070000190000000007024019000004fa08500197000000000908004b000000000200a019000004fa0880009c000000000207c019000000000202004b000001220000c13d0000000002000411000080010220008c000002fc0000c13d0000000002000412000004fb072001970000000002000410000000000727004b000002fc0000c13d0000022403300039000000000731034f000000000707043b0000001f0550008a000004fa08000041000000000957004b00000000090000190000000009088019000004fa05500197000004fa0a700197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000005470019000000000451034f000000000404043b000004f90740009c000001220000213d00000000074600490000002005500039000004fa08000041000000000975004b00000000090000190000000009082019000004fa07700197000004fa0a500197000000000b7a004b000000000800801900000000077a013f000004fa0770009c000000000809c019000000000708004b000001220000c13d000000030740008c000002520000213d000004ff01000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000052201000041000000c40010043f0000052301000041000002620000013d000000040260008a000000600220008c000001220000413d0000004402100370000000000302043b000004f90230009c000001220000213d00000004023000390000000005260049000004fa04000041000002600850008c00000000080000190000000008044019000004fa09500197000000000a09004b000000000400a019000004fa0990009c000000000408c019000000000404004b000001220000c13d0000000004000411000080010440008c000002fc0000c13d0000000004000412000004fb044001970000000008000410000000000484004b000002fc0000c13d0000004404300039000000000441034f0000012408300039000000000381034f000000000404043b000004fb04400197000000000303043b000005010930009c000001f30000413d000004ff01000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000050b01000041000000c40010043f0000050c01000041000013c100010430000000040360008a000000600230008c000001220000413d0000004402100370000000000202043b000004f90420009c000001220000213d0000000003230049000004fa04000041000002600530008c00000000050000190000000005044019000004fa03300197000000000603004b000000000400a019000004fa0330009c000000000405c019000000000304004b000001220000c13d0000000003000411000080010330008c000002fc0000c13d0000000003000412000004fb033001970000000004000410000000000343004b000002fc0000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b000001db0000c13d00000000040004150000000b0440008a00000020044000c90000000001000414000b00000000001d000900000004001d000004f102000041000004f10310009c0000000001028019000000c001100210000080010200003913bf13ab0000040f000000090300002900030000000103550000006001100270000104f10010019d000000050130027000000001012001950000000101200190000002fc0000c13d000000400100043d0000006402100039000004fd0300004100000000003204350000004402100039000004fe030000410000000000320435000000240210003900000025030000390000000000320435000004ff020000410000000000210435000000040210003900000020030000390000000000320435000004f102000041000004f10310009c0000000001028019000000400110021000000500011001c7000013c100010430000000040260008a000000600220008c000001220000413d0000004402100370000000000202043b000900000002001d000004f90220009c000001220000213d0000000902000029000800040020003d000000080260006a000004fa03000041000002600420008c00000000040000190000000004034019000004fa02200197000000000502004b000000000300a019000004fa0220009c000000000304c019000000000203004b000001240000613d0000000001000019000013c1000104300000002402100370000000000202043b000700000002001d0000000002000411000080010220008c000002fc0000c13d0000000002000412000004fb022001970000000003000410000600000003001d000000000232004b000002fc0000c13d00000000020004140000052403000041000000a00030043f0000000903000029000501040030003d0000000501100360000000000101043b000000a40010043f0000002401000039000000800010043f000000e001000039000000400010043f000000c001200210000005070110019700000525011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001913bf13ab0000040f000300000001035500000000030100190000006003300270000104f10030019d000004f1083001970000003f038000390000050a04300197000000400600043d0000000003640019000000000443004b00000000040000190000000104004039000004f90530009c0000125d0000213d00000001044001900000125d0000c13d000000400030043f000000000786043600000002030003670000000004000031000000000543034f0000001f098000390000000509900272000001660000613d000000000a000019000000050ba00210000000000cb70019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000015e0000413d000000000900004b000001680000613d0000001f0980018f0000000508800272000001740000613d000000000a000019000000050ba00210000000000cb70019000000000bb1034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b0000016c0000413d000000000a09004b000001830000613d0000000508800210000000000181034f00000000088700190000000309900210000000000a080433000000000a9a01cf000000000a9a022f000000000101043b0000010009900089000000000191022f00000000019101cf0000000001a1019f00000000001804350000000101200190000002480000613d000000070100006b000010f20000c13d0000000501000029000001000110008a000000000113034f000000000101043b000000000201004b000002650000c13d0000000501300360000000400900043d000000000101043b000000800210008c000700000009001d0000029c0000413d00000080021002700000052b0610009c000000000201a0190000052b0610009c0000000006000019000000100600203900000008076001bf000004f90820009c000000000706a0190000004006200270000004f90820009c000000000602a01900000004087001bf000004f10260009c000000000807a0190000002007600270000004f10260009c000000000706a01900000002028001bf0000ffff0670008c000000000208a0190000001006700270000000000607a019000000ff0660008c0000000102202039000000200600008a0000004107200039000000000667016f0000000006690019000000000796004b00000000070000190000000107004039000004f90860009c0000125d0000213d00000001077001900000125d0000c13d000000400060043f00000002062000390000000707000029000000000667043600000021072000390000000507700272000001c70000613d00000000080000190000000509800210000000000a960019000000000995034f000000000909043b00000000009a04350000000108800039000000000978004b000001bf0000413d000000000700004b000001c90000613d00000007070000290000000007070433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808200210000000000778019f0000052c0770004100000000007604350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000007020000290000002102200039000002ad0000013d00000000431200a900000000422300d9000000000112004b0000110c0000c13d00000000040004150000000a0440008a00000020044000c90000000001000414000a00000000001d000000000203004b000000e80000613d000004f102000041000004f10410009c0000000001028019000000c001100210000004fc011001c700008009020000390000800104000039000000000500001913bf13ab0000040f00000000030004150000000a0330008a00000020033000c9000000f00000013d000000a008800039000000000881034f000000000808043b0000001f0550008a000004fa09000041000000000a58004b000000000a000019000000000a098019000004fa05500197000004fa0b800197000000000c5b004b000000000900801900000000055b013f000004fa0550009c00000000090ac019000000000509004b000001220000c13d0000000002280019000000000521034f000000000805043b000004f90580009c000001220000213d00000000058600490000002009200039000004fa02000041000000000a59004b000000000a000019000000000a022019000004fa05500197000004fa0b900197000000000c5b004b000000000200801900000000055b013f000004fa0550009c00000000020ac019000000000202004b000001220000c13d0000000002000414000004f10520009c000000b60000213d000080060540008c00000000050000190000022f0000c13d000000040580008c00000000050000190000022f0000413d000000000a91034f0000000105000039000000000a0a043b000005020aa00197000005030ba0009c0000022e0000613d000005040ba0009c0000022e0000613d000005050ba0009c0000022e0000613d0000050605a0009c00000000050000190000000105006039000000010550018f000000000a9800190000000006a6004b0000000006000019000000010600403900000000088a004b00000001066041bf000004f108900197000000000181034f000000000803004b000003580000c13d00000001036001900000110c0000c13d00000508030000410000050906000041000000000505004b000000000603c019000000c0022002100000050702200197000000000226019f0000000003a70049000004f10330019700000000013103df00000000012103af0000000002040019000003630000013d0000000001060433000004f102000041000004f10310009c0000000001028019000004f10370009c000000000702801900000040027002100000006001100210000000000121019f000013c100010430000000000751034f000000000707043b00000502077001970000050d0870009c000002fa0000c13d000000430440008c000003c10000213d000004ff01000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000051f01000041000000c40010043f0000052001000041000000e40010043f0000052101000041000013c100010430000000710210008c000002fe0000c13d0000000902000029000001c401200039000000000113034f0000000002240049000000230220008a000000000101043b000004fa05000041000000000621004b00000000060000190000000006058019000004fa02200197000004fa07100197000000000827004b0000000005008019000000000227013f000004fa0220009c000000000506c019000000000205004b000001220000c13d0000000801100029000000000213034f000000000202043b000004f90520009c000001220000213d00000000052400490000002001100039000004fa06000041000000000751004b00000000070000190000000007062019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d000000000512001a00000000020004140000110c0000413d000000000654004b0000110c0000413d000005320620009c0000069d0000413d000000400100043d00000044021000390000050b03000041000000000032043500000024021000390000000803000039000004bf0000013d000005290290009c0000125d0000213d00000007060000290000004002600039000000400020043f000000010200003a00000000022604360000000006500350000000000606043b000000000062043500000c5c0000613d000000f807100210000004fa08000041000000000101004b000000000807c0190000052a01600197000000000181019f0000000000120435000000400100043d0000000502000029000000600220008a000000000623034f000000000606043b000000800760008c000004420000413d00000080076002700000052b0860009c000000000706a0190000052b0860009c0000000008000019000000100800203900000008098001bf000004f90a70009c000000000908a0190000004008700270000004f90a70009c000000000807a019000000040a9001bf000004f10780009c000000000a09a0190000002009800270000004f10780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008810019000000000918004b00000000090000190000000109004039000004f90a80009c0000125d0000213d00000001099001900000125d0000c13d000000400080043f0000000208700039000000000881043600000021097000390000000509900272000002e80000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002e00000413d000000000900004b000002ea0000613d0000000009010433000000000909004b00000c5c0000613d00000000090804330000052a09900197000000f80a70021000000000099a019f0000052c0990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107100039000004520000013d0000050e0170009c000003e00000c13d0000000001000019000013c00001042e000000020210008c000003e80000c13d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400300043d000000000401043b000000800140008c000004cb0000413d00000080014002700000052b0240009c000000000104a0190000052b0240009c0000000002000019000000100200203900000008052001bf000004f90610009c000000000502a0190000004002100270000004f90610009c000000000201a01900000004015001bf000004f10620009c000000000105a0190000002006200270000004f10520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b00000000020000190000000102004039000004f90610009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000003460000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000033e0000413d000000000700004b000003480000613d0000000007030433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000004de0000013d00000001066001900000110c0000c13d0000000006a70049000004f10660019700000000016103df000000c002200210000005070220019700000508022001c700000000012103af0000800902000039000000000600001913bf13b50000040f000300000001035500000000030100190000006003300270000104f10030019d000004f10330019700000001022001900000049e0000613d0000003f023000390000050a04200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000004f90640009c0000125d0000213d00000001055001900000125d0000c13d000000400040043f00000000043204360000001f053000390000000505500272000003860000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000037e0000413d000000000500004b000003880000613d0000001f0530018f0000000503300272000003940000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000038c0000413d000000000605004b000003a30000613d0000000503300210000000000131034f00000000033400190000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000400100043d00000020030000390000000004310436000000000302043300000000003404350000004004100039000000000503004b000003b30000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b000003ac0000413d000000000243001900000000000204350000005f02300039000000200300008a000000000232016f000004f103000041000004f10420009c0000000002038019000004f10410009c000000000103801900000040011002100000006002200210000000000112019f000013c00001042e0000000404500039000000000541034f000000000505043b000800000005001d000004fb0550009c000001220000213d000001400330008a000000000331034f0000002004400039000000000441034f000000000404043b000700000004001d000000000303043b0000051004000041000000800040043f000004fb02200197000500000002001d000000840020043f000004fb02300197000600000002001d000000a40020043f00000000020004140000000803000029000000040330008c0000052a0000c13d000000000161034f0000000103000031000000200230008c00000000040300190000002004008039000005560000013d000004ff01000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000050f01000041000000bd0000013d000000010110008c000004b90000c13d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400300043d000000000401043b000000800140008c0000057d0000413d00000080014002700000052b0240009c000000000104a0190000052b0240009c0000000002000019000000100200203900000008052001bf000004f90610009c000000000502a0190000004002100270000004f90610009c000000000201a01900000004015001bf000004f10620009c000000000105a0190000002006200270000004f10520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b00000000020000190000000102004039000004f90610009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000004300000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004280000413d000000000700004b000004320000613d0000000007030433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000005900000013d000005290710009c0000125d0000213d0000004007100039000000400070043f000000010700003a00000000077104360000000008500350000000000808043b000000000087043500000c5c0000613d000000f809600210000004fa0a000041000000000606004b000000000a09c0190000052a068001970000000006a6019f0000000000670435000000400220008a000000000623034f000000400200043d000000000606043b000000800760008c000005dc0000413d00000080076002700000052b0860009c000000000706a0190000052b0860009c0000000008000019000000100800203900000008098001bf000004f90a70009c000000000908a0190000004008700270000004f90a70009c000000000807a019000000040a9001bf000004f10780009c000000000a09a0190000002009800270000004f10780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008820019000000000928004b00000000090000190000000109004039000004f90a80009c0000125d0000213d00000001099001900000125d0000c13d000000400080043f00000002087000390000000008820436000000210970003900000005099002720000048c0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000004840000413d000000000900004b0000048e0000613d0000000009020433000000000909004b00000c5c0000613d00000000090804330000052a09900197000000f80a70021000000000099a019f0000052c0990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107200039000005ec0000013d0000001f0430018f0000000502300272000004a90000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004a20000413d000000000504004b000004b70000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013c100010430000000400100043d000000440210003900000526030000410000000000320435000000240210003900000017030000390000000000320435000004ff020000410000000000210435000000040210003900000020030000390000000000320435000004f102000041000004f10310009c000000000102801900000040011002100000051e011001c7000013c100010430000005290130009c0000125d0000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807400210000004fa08000041000000000404004b000000000807c0190000052a04600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008700000413d00000080065002700000052b0750009c000000000605a0190000052b0750009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000005180000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005100000413d000000000800004b0000051a0000613d0000000008040433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000008810000013d000004f101000041000004f10320009c0000000002018019000000c00120021000000511011001c7000000080200002913bf13b00000040f00000000030100190000006003300270000004f103300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005430000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000053b0000413d000000000705004b000005520000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000067a0000613d0000001f02400039000000600520018f00000080025001bf000000400020043f000000200430008c000001220000413d000000800400043d000000070440006c000002fc0000813d000000a00450003900000512060000410000000000640435000000a40650003900000006070000290000000000760435000000c40650003900000000000604350000004406000039000100000006001d00000000006204350000014006500039000000400060043f00000120065000390000051307000041000000000076043500000100065001bf0000002005000039000300000005001d000200000006001d0000000000560435000000000502043300000000020004140000000806000029000000040660008c000008cf0000c13d0000000102000039000004f90430009c0000125d0000213d000008e30000013d000005290130009c0000125d0000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807400210000004fa08000041000000000404004b000000000807c0190000052a04600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000009250000413d00000080065002700000052b0750009c000000000605a0190000052b0750009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000005ca0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005c20000413d000000000800004b000005cc0000613d0000000008040433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000009360000013d000005290720009c0000125d0000213d0000004007200039000000400070043f000000010700003a00000000077204360000000008500350000000000808043b000000000087043500000c5c0000613d000000f809600210000004fa0a000041000000000606004b000000000a09c0190000052a068001970000000006a6019f0000000000670435000000400600043d000500000006001d00000020076000390000000006010433000000000806004b000005fb0000613d000000000800001900000000097800190000002008800039000000000a180019000000000a0a04330000000000a90435000000000968004b000005f40000413d000000000176001900000000000104350000000007020433000000000807004b000006080000613d000000000800001900000000091800190000002008800039000000000a280019000000000a0a04330000000000a90435000000000978004b000006010000413d000000000117001900000000000104350000000001670019000000050600002900000000001604350000003f011000390001002000000092000000010110017f0000000002610019000000000112004b00000000010000190000000101004039000400000002001d000004f90220009c0000125d0000213d00000001011001900000125d0000c13d0000000401000029000000400010043f000005290110009c0000125d0000213d00000009070000290000004401700039000000000113034f000000000101043b00000004080000290000004002800039000000400020043f00000020028000390000052d060000410000000000620435000000150200003900000000002804350000006001100210000000210280003900000000001204350000012401700039000000000213034f000000400600043d000300000006001d000000000202043b000000800620008c00000a2b0000413d00000080062002700000052b0720009c000000000602a0190000052b0720009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000010770017f0000000307700029000000030870006c00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000006660000613d0000000009000019000000050a900210000000000ba70019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b0000065e0000413d000000000800004b000006680000613d00000003080000290000000008080433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000000306000029000000210660003900000a3d0000013d000000400200043d0000001f0430018f0000000505300272000006870000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000067f0000413d000000000604004b000006960000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f101000041000004f10420009c000000000201801900000040012002100000006002300210000000000121019f000013c100010430000004f101100197000000000113034f0000000003540049000004f10330019700000000013103df000000c002200210000005070220019700000509022001c700000000012103af000080100200003913bf13ba0000040f00000000030100190000006003300270000104f10030019d000004f10530019700030000000103550000000102200190000009840000613d0000003f025000390000050a02200197000000400600043d0000000002260019000000000362004b00000000030000190000000103004039000004f90420009c0000125d0000213d00000001033001900000125d0000c13d000000400020043f0000000004560436000000020200036700000000030000310000001f075000390000000507700272000006cb0000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006c30000413d000000000700004b000006cd0000613d0000001f0750018f0000000505500272000006d90000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b000006d10000413d000000000807004b000006e80000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c00000a240000c13d00000009060000290000000001630049000000230510008a000702040060003d0000000701200360000000000101043b000004fa06000041000000000751004b00000000070000190000000007068019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d0000000004040433000400000004001d0000000801100029000000000412034f000000000504043b000004f90450009c000001220000213d000000050450021000000000034300490000002006100039000004fa01000041000000000736004b00000000070000190000000007012019000004fa03300197000004fa08600197000000000938004b0000000001008019000000000338013f000004fa0330009c000000000107c019000000000101004b000001220000c13d000000400100043d00000020031000390000053305500198000007230000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b0000071b0000413d000000000200004b000007250000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b00000000040000190000000104004039000004f90520009c0000125d0000213d00000001044001900000125d0000c13d000000400020043f000004f102000041000004f10430009c000000000302801900000040033002100000000001010433000004f10410009c00000000010280190000006001100210000000000131019f0000000003000414000004f10430009c0000000003028019000000c002300210000000000112019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d0000000002000031000000090320006a000000230530008a000000070300002900000020043000390000000203000367000000000443034f000000000404043b000004fa06000041000000000754004b00000000070000190000000007068019000004fa05500197000004fa08400197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000101043b000700000001001d000000000106004b000001220000c13d0000000801400029000000000413034f000000000404043b000004f90540009c000001220000213d00000000054200490000002001100039000004fa06000041000000000751004b00000000070000190000000007062019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d000000000514001a00000000040004140000110c0000413d000000000652004b0000110c0000413d000004f10640009c000002950000213d000004f101100197000000000113034f0000000002520049000004f10220019700000000012103df000000c002400210000005070220019700000509022001c700000000012103af000080100200003913bf13ba0000040f00000000030100190000006003300270000104f10030019d000004f10330019700030000000103550000000102200190000011920000613d0000003f023000390000050a02200197000000400500043d0000000002250019000000000452004b00000000040000190000000104004039000004f90620009c0000125d0000213d00000001044001900000125d0000c13d000000400020043f000000000235043600000002040003670000001f063000390000000506600272000007a40000613d000000000740036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000079c0000413d000000000600004b000007a60000613d0000001f0630018f0000000503300272000007b20000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b000007aa0000413d000000000706004b000007c10000613d0000000503300210000000000131034f00000000033200190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001304350000000001050433000000200110008c00000a240000c13d000000090c0000290000006401c00039000000000114034f0000004403c00039000000000534034f0000002403c00039000000000634034f0000012403c00039000000000734034f0000000508400360000000e403c00039000000000934034f000000c403c00039000000000a34034f000000a403c00039000000000b34034f0000008403c00039000000000c34034f0000000803400360000000000303043b000000000406043b000000000505043b000000000601043b000000000c0c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a002100039000000070d0000290000000000d204350000018002100039000000040d0000290000000000d2043500000160021000390000000000720435000001400210003900000000008204350000012002100039000000000092043500000100021000390000000000a20435000000e0021000390000000000b20435000000c0021000390000000000c20435000000a0021000390000000000620435000000800210003900000000005204350000006002100039000000000042043500000040021000390000000000320435000000200210003900000535030000410000000000320435000001c0030000390000000000310435000005360310009c0000125d0000213d000001e003100039000000400030043f000004f104000041000004f10320009c000000000204801900000040022002100000000001010433000004f10310009c00000000010480190000006001100210000000000121019f0000000002000414000004f10320009c0000000002048019000000c002200210000000000112019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d000000000101043b000500000001001d000000400100043d000700000001001d000005270100004100000000001004390000000001000414000004f10210009c000004f101008041000000c00110021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d00000007040000290000002002400039000000000101043b0000053703000041000000000032043500000080034000390000000000130435000000600140003900000538030000410000000000310435000000400140003900000539030000410000000000310435000000800100003900000000001404350000053a0140009c0000125d0000213d0000000704000029000000a001400039000000400010043f000004f101000041000004f10320009c000000000201801900000040022002100000000003040433000004f10430009c00000000030180190000006003300210000000000223019f0000000003000414000004f10430009c0000000003018019000000c001300210000000000121019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d000000000301043b000000400100043d00000042021000390000000504000029000000000042043500000020021000390000053b0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000005190310009c0000125d0000213d0000008003100039000000400030043f000004f103000041000004f10420009c000000000203801900000040022002100000000001010433000004f10410009c00000000010380190000006001100210000000000121019f0000000002000414000004f10420009c0000000002038019000000c002200210000000000112019f000010ed0000013d000005290640009c0000125d0000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c5c0000613d000000f808500210000004fa09000041000000000505004b000000000908c0190000052a05700197000000000595019f0000000000560435000000400500043d0000000506000029000000400760008a000000000671034f000000000606043b000000800860008c000009be0000413d00000080086002700000052b0960009c000000000806a0190000052b0960009c00000000090000190000001009002039000000080a9001bf000004f90b80009c000000000a09a0190000004009800270000004f90b80009c000000000908a019000000040ba001bf000004f10890009c000000000b0aa019000000200a900270000004f10890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a004039000004f90b90009c0000125d0000213d000000010aa001900000125d0000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000008bd0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000008b50000413d000000000a00004b000008bf0000613d000000000a050433000000000a0a004b00000c5c0000613d000000000a0904330000052a0aa00197000000f80b800210000000000aab019f0000052c0aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000009cf0000013d000004f101000041000004f10350009c000000000501801900000060035002100000004004400210000000000343019f000004f10420009c0000000002018019000000c001200210000000000113019f000000080200002913bf13ab0000040f000400600000003d000000010220018f000300000001035500000000030100190000006003300270000104f10030019d000004f1033001980000090f0000613d0000003f04300039000000200500008a000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b00000000050000190000000105004039000004f90640009c0000125d0000213d00000001055001900000125d0000c13d000000400040043f0000001f0430018f000000040500002900000000083504360000000503300272000008ff0000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000008f70000413d000900000008001d000000000504004b0000090f0000613d0000000503300210000000000131034f00000009033000290000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000004010000290000000001010433000000000202004b0000099f0000c13d000000000201004b00000a1c0000c13d000000400300043d000900000003001d000004ff0100004100000000001304350000000401300039000000030200002900000000002104350000002402300039000000020100002913bf13970000040f00000009040000290000000001410049000004f102000041000004f10310009c000000000102801900000a200000013d000005290640009c0000125d0000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c5c0000613d000000f808500210000004fa09000041000000000505004b000000000908c0190000052a05700197000000000595019f0000000000560435000000400500043d0000000506000029000000600660008a000000000761034f000000000707043b000000800870008c00000a830000413d00000080087002700000052b0970009c000000000807a0190000052b0970009c00000000090000190000001009002039000000080a9001bf000004f90b80009c000000000a09a0190000004009800270000004f90b80009c000000000908a019000000040ba001bf000004f10890009c000000000b0aa019000000200a900270000004f10890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a004039000004f90b90009c0000125d0000213d000000010aa001900000125d0000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000009720000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000096a0000413d000000000a00004b000009740000613d000000000a050433000000000a0a004b00000c5c0000613d000000000a0904330000052a0aa00197000000f80b800210000000000aab019f0000052c0aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c0000000007002019000000210850003900000a940000013d0000001f0350018f00000005025002720000098f0000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b000009880000413d000000000403004b0000099d0000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f00000000001204350000006001500210000013c100010430000000000201004b00000b440000c13d0000051401000041000000000010043900000008010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c7000080020200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000000101004b00000b400000c13d000000400100043d00000044021000390000051d03000041000000000032043500000024021000390000001d030000390000000000320435000004ff02000041000000000021043500000004021000390000000303000029000004c40000013d000005290850009c0000125d0000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a600210000004fa0b000041000000000606004b000000000b0ac0190000052a069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c00000ae10000413d00000080098002700000052b0a80009c000000000908a0190000052b0a80009c000000000a000019000000100a002039000000080ba001bf000004f90c90009c000000000b0aa019000000400a900270000004f90c90009c000000000a09a019000000040cb001bf000004f109a0009c000000000c0ba019000000200ba00270000004f109a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b004039000004f90ca0009c0000125d0000213d000000010bb001900000125d0000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb0027200000a0a0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000a020000413d000000000b00004b00000a0c0000613d000000000b060433000000000b0b004b00000c5c0000613d000000000b0a04330000052a0bb00197000000f80c900210000000000bbc019f0000052c0bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210960003900000af20000013d000004f102000041000004f10310009c00000000010280190000000904000029000004f10340009c000000000402801900000040024002100000024f0000013d000000400100043d00000044021000390000053403000041000000000032043500000024021000390000001f03000039000004bf0000013d0000000306000029000005290660009c0000125d0000213d00000003070000290000004006700039000000400060043f000000010600003a00000000066704360000000007500350000000000707043b000000000076043500000c5c0000613d000000f808200210000004fa09000041000000000202004b000000000908c0190000052a02700197000000000292019f0000000000260435000000080640006a000000a001100039000000000213034f000000000202043b0000001f0660008a000004fa07600197000004fa08200197000004fa09000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000862004b0000000009004019000004fa0770009c000000000a09c01900000000070a004b000001220000c13d0000000808200029000000000783034f000000000707043b000004f90970009c000001220000213d00000000097400490000002008800039000004fa0a000041000000000b98004b000000000b000019000000000b0a2019000004fa09900197000004fa0c800197000000000d9c004b000000000a00801900000000099c013f000004fa0990009c000000000a0bc01900000000090a004b000001220000c13d000000010970008c00000c890000c13d000000000583034f000000000505043b000000010700008a000004fa08000041000000000775004b00000000070000190000000007082019000004fa05500197000004fa0950009c0000000008008019000004fa05500167000004fa0550009c000000000807c019000200600000003d000000000508004b00000def0000c13d000000400500043d000200000005001d000005290550009c0000125d0000213d00000002080000290000004005800039000000400050043f00000020058000390000052c0700004100000000007504350000000105000039000000000058043500000def0000013d000005290850009c0000125d0000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a700210000004fa0b000041000000000707004b000000000b0ac0190000052a079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c00000b7a0000413d00000080098002700000052b0a80009c000000000908a0190000052b0a80009c000000000a000019000000100a002039000000080ba001bf000004f90c90009c000000000b0aa019000000400a900270000004f90c90009c000000000a09a019000000040cb001bf000004f109a0009c000000000c0ba019000000200ba00270000004f109a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b004039000004f90ca0009c0000125d0000213d000000010bb001900000125d0000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb0027200000acf0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000ac70000413d000000000b00004b00000ad10000613d000000000b070433000000000b0b004b00000c5c0000613d000000000b0a04330000052a0bb00197000000f80c900210000000000bbc019f0000052c0bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210970003900000b8b0000013d000005290960009c0000125d0000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d000000f80b800210000004fa0c000041000000000808004b000000000c0bc0190000052a08a001970000000008c8019f0000000000890435000000400800043d00070040007000920000000709100360000000000909043b000000800a90008c00000c510000413d000000800a9002700000052b0b90009c000000000a09a0190000052b0b90009c000000000b000019000000100b002039000000080cb001bf000004f90da0009c000000000c0ba019000000400ba00270000004f90da0009c000000000b0aa019000000040dc001bf000004f10ab0009c000000000d0ca019000000200cb00270000004f10ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c004039000004f90db0009c0000125d0000213d000000010cc001900000125d0000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000b2d0000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b00000b250000413d000000000700004b00000b2f0000613d0000000007080433000000000707004b00000c5c0000613d00000000070b04330000052a07700197000000f80ca0021000000000077c019f0000052c0770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c00000000090020190000002107800039000000000097043500000d7b0000013d00000004010000290000000001010433000000000201004b00000b670000613d000004fa02000041000000200310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000001220000c13d00000009010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001220000c13d000000000101004b00000b670000c13d000000400100043d00000064021000390000051b03000041000000000032043500000044021000390000051c03000041000000000032043500000024021000390000002a030000390000000000320435000004ff02000041000000000021043500000004021000390000000303000029000001050000013d000000400300043d00000024013000390000000602000029000000000021043500000510010000410000000000130435000900000003001d00000004013000390000000502000029000000000021043500000000010004140000000802000029000000040220008c00000beb0000c13d0000000103000031000000200130008c0000000004030019000000200400803900000c1d0000013d000005290970009c0000125d0000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d000000f80b800210000004fa0c000041000000000808004b000000000c0bc0190000052a08a001970000000008c8019f0000000000890435000000400900043d000005290890009c0000125d0000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a9000390000052d0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000700000006001d000000800a60008c00000cb40000413d0000000706000029000000800a6002700000052b0b60009c000000000a06a0190000052b0b60009c000000000b000019000000100b002039000000080cb001bf000004f90da0009c000000000c0ba019000000400ba00270000004f90da0009c000000000b0aa019000000040dc001bf000004f10ab0009c000000000d0ca019000000200cb00270000004f10ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c004039000004f90db0009c0000125d0000213d000000010cc001900000125d0000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000bd80000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b00000bd00000413d000000000600004b00000bda0000613d0000000006080433000000000606004b00000c5c0000613d00000000060b04330000052a06600197000000f80ca0021000000000066c019f0000052c0660004100000000006b04350000000306a00210000000f806600089000000070a6001ef000000ff0660008c000000000a00201900000021068000390000000000a6043500000cc70000013d000004f102000041000004f10310009c00000000010280190000000904000029000004f10340009c00000000020440190000004002200210000000c001100210000000000121019f00000516011001c7000000080200002913bf13b00000040f000000090a00002900000000030100190000006003300270000004f103300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000c0a0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000c020000413d000000000705004b00000c190000613d0000000506600210000000000761034f00000009066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c600000613d0000001f01400039000000600210018f0000000901200029000000000221004b00000000020000190000000102004039000004f90410009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000200230008c000001220000413d0000004404100039000000240510003900000009020000290000000002020433000000000202004b00000c7d0000c13d000000200210003900000512060000410000000000620435000000060600002900000000006504350000000705000029000000000054043500000001040000290000000000410435000005190410009c0000125d0000213d0000008004100039000900000004001d000000400040043f0000051a0410009c0000125d0000213d000000c004100039000000400040043f000000030400002900000009050000290000000000450435000000a00410003900000513050000410000000000540435000000000401043300000000010004140000000805000029000000040550008c00000f760000c13d0000000102000039000004f90130009c0000125d0000213d00000f8c0000013d000005290780009c0000125d0000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba043500000d740000c13d0000054201000041000000000010043500000032010000390000003c0000013d000000400200043d0000001f0430018f000000050530027200000c6d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000c650000413d000000000604004b00000c7c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000006960000013d000004ff020000410000000000210435000000040210003900000003030000290000000000320435000000360200003900000000002504350000051702000041000000000024043500000064021000390000051803000041000001050000013d000000400800043d000200000008001d000000380870008c00000dde0000413d0000002009700270000004f10870009c000000000907a019000004f10870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000020a000029000005290aa0009c0000125d0000213d000000000898019f000000020a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000005500350000000000505043b000000000059043500000c5c0000613d0000052a05500197000000f80a80021000000000055a019f0000052e055001c700000000005904350000000305800210000000f80550015f00000000055701cf00000002070000290000002107700039000000000057043500000def0000013d000005290680009c0000125d0000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba043500000c5c0000613d000000070d000029000000f806d00210000004fa0c000041000000000d0d004b000000000c06c0190000052a06b001970000000006c6019f00000000006a0435000000400600043d000000200b600039000000000a030433000000000c0a004b00000cd40000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b00000ccd0000413d0000000003ba0019000000000003043500000000036a0019000000200b300039000000000a040433000000000c0a004b00000ce30000613d000000000c000019000000000dbc0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dac004b00000cdc0000413d0000000004ba0019000000000004043500000000033a0019000000200a3000390000000004050433000000000b04004b00000cf20000613d000000000b000019000000000cab0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b00000ceb0000413d0000000005a400190000000000050435000000000334001900000020053000390000000004070433000000000a04004b00000d010000613d000000000a000019000000000b5a0019000000200aa00039000000000c7a0019000000000c0c04330000000000cb0435000000000b4a004b00000cfa0000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000704004b00000d100000613d0000000007000019000000000a5700190000002007700039000000000b970019000000000b0b04330000000000ba0435000000000a47004b00000d090000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000704004b00000d1f0000613d000000000700001900000000095700190000002007700039000000000a870019000000000a0a04330000000000a90435000000000947004b00000d180000413d000000000554001900000000000504350000000003630049000000000334001900000000003604350000003f04300039000000200300008a000000000434016f0000000007640019000000000447004b00000000040000190000000104004039000004f90570009c0000125d0000213d00000001044001900000125d0000c13d000000400070043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000004fa08000041000000000954004b00000000090000190000000009088019000004fa05500197000004fa0a400197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000805400029000000000451034f000000000404043b000004f90840009c000001220000213d00000000084200490000002005500039000004fa09000041000000000a85004b000000000a000019000000000a092019000004fa08800197000004fa0b500197000000000c8b004b000000000900801900000000088b013f000004fa0880009c00000000090ac019000000000809004b000001220000c13d000000010840008c000011ad0000c13d000000000851034f000000000808043b000000010900008a000004fa0a000041000000000998004b000000000900001900000000090a2019000004fa08800197000004fa0b80009c000000000a008019000004fa08800167000004fa0880009c000000000a09c019000000600800003900000000090a004b0000120e0000c13d000005290870009c0000125d0000213d0000004008700039000000400080043f00000020087000390000052c0900004100000000009804350000000108000039000000000087043500000000080700190000120e0000013d000000f807900210000004fa0c000041000000000909004b000000000c07c0190000052a07b001970000000007c7019f00000000007a0435000000400a00043d0000052907a0009c0000125d0000213d000000070c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a000390000052d0b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000700000007001d000000800b70008c00000e500000413d0000000707000029000000800b7002700000052b0c70009c000000000b07a0190000052b0c70009c000000000c000019000000100c002039000000080dc001bf000004f90eb0009c000000000d0ca019000000400cb00270000004f90eb0009c000000000c0ba019000000040ed001bf000004f10bc0009c000000000e0da019000000200dc00270000004f10bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000500000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d004039000004f90ec0009c0000125d0000213d000000010dd001900000125d0000c13d0000004000c0043f0000000507000029000000020c700039000000000cc90436000000210d700039000000050dd0027200000dca0000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b00000dc20000413d000000000700004b00000dcc0000613d0000000007090433000000000707004b00000c5c0000613d00000000070c04330000052a07700197000000050d000029000000f80bd0021000000000077b019f0000052c0770004100000000007c04350000000307d00210000000f807700089000000070b7001ef000000ff0770008c000000000b00201900000021079000390000000000b7043500000e630000013d0000000208000029000005290880009c0000125d0000213d00000002090000290000004008900039000000400080043f000000010800003a00000000088904360000000005500350000000000505043b000000000058043500000c5c0000613d000000f8077002100000052a05500197000000000575019f000004fa055001670000000000580435000000800110008a000000000513034f0000006001000039000000000505043b000000000505004b00000f1f0000c13d000004fa05000041000000000762004b00000000070000190000000007058019000004fa06600197000004fa08200197000000000968004b0000000005008019000000000668013f000004fa0660009c000000000507c019000000000505004b000001220000c13d000000070500002900000000060504330000000505000029000000000705043300000004050000290000000008050433000000030500002900000000090504330000000205000029000000000a0504330000000805200029000000000253034f000000000202043b000004f90b20009c000001220000213d000000000b2400490000002005500039000004fa0c000041000000000db5004b000000000d000019000000000d0c2019000004fa0bb00197000004fa0e500197000000000fbe004b000000000c008019000000000bbe013f000004fa0bb0009c000000000c0dc019000000000b0c004b000001220000c13d0000000006670019000000000686001900000000069600190000000006a60019000000000626001900000000070104330000000006760019000000400700043d000004f906600197000000380860008c000010340000413d0000002009600270000004f10860009c000000000906a019000004f10860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a70009c0000125d0000213d000000000898019f0000004009700039000000400090043f000000000943034f000000020480003a00000000044704360000000009900350000000000909043b000000000094043500000c5c0000613d0000052a09900197000000f80a80021000000000099a019f00000530099001c700000000009404350000000304800210000000f80440015f00000000044601cf00000021067000390000000000460435000010440000013d000005290790009c0000125d0000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb043500000c5c0000613d000000070e000029000000f807e00210000004fa0d000041000000000e0e004b000000000d07c0190000052a07c001970000000007d7019f00000000007b0435000000400700043d000000200c700039000000000b030433000000000d0b004b00000e700000613d000000000d000019000000000ecd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ebd004b00000e690000413d0000000003cb0019000000000003043500000000037b0019000000200c300039000000000b040433000000000d0b004b00000e7f0000613d000000000d000019000000000ecd0019000000200dd00039000000000f4d0019000000000f0f04330000000000fe0435000000000ebd004b00000e780000413d0000000004cb0019000000000004043500000000033b0019000000200b3000390000000004050433000000000c04004b00000e8e0000613d000000000c000019000000000dbc0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000d4c004b00000e870000413d0000000005b400190000000000050435000000000334001900000020053000390000000004060433000000000b04004b00000e9d0000613d000000000b000019000000000c5b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c4b004b00000e960000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000604004b00000eac0000613d0000000006000019000000000b5600190000002006600039000000000c860019000000000c0c04330000000000cb0435000000000b46004b00000ea50000413d000000000554001900000000000504350000000003340019000000200530003900000000040a0433000000000604004b00000ebb0000613d000000000600001900000000085600190000002006600039000000000ba60019000000000b0b04330000000000b80435000000000846004b00000eb40000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000604004b00000eca0000613d000000000600001900000000085600190000002006600039000000000a960019000000000a0a04330000000000a80435000000000846004b00000ec30000413d000000000554001900000000000504350000000003730049000000000334001900000000003704350000003f04300039000000200300008a000000000434016f0000000006740019000000000446004b00000000040000190000000104004039000004f90560009c0000125d0000213d00000001044001900000125d0000c13d000000400060043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000004fa08000041000000000954004b00000000090000190000000009088019000004fa05500197000004fa0a400197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000805400029000000000451034f000000000404043b000004f90840009c000001220000213d00000000084200490000002005500039000004fa09000041000000000a85004b000000000a000019000000000a092019000004fa08800197000004fa0b500197000000000c8b004b000000000900801900000000088b013f000004fa0880009c00000000090ac019000000000809004b000001220000c13d000000010840008c000011d50000c13d000000000851034f000000000808043b000000010900008a000004fa0a000041000000000998004b000000000900001900000000090a2019000004fa08800197000004fa0b80009c000000000a008019000004fa08800167000004fa0880009c000000000a09c019000000600800003900000000090a004b0000125a0000c13d000005290860009c0000125d0000213d0000004008600039000000400080043f00000020086000390000052c0900004100000000009804350000000108000039000000000086043500000000080600190000125a0000013d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400200043d000000000101043b000000800310008c00000fcb0000413d00000080031002700000052b0410009c000000000301a0190000052b0410009c0000000004000019000000100400203900000008054001bf000004f90630009c000000000504a0190000004004300270000004f90630009c000000000403a01900000004035001bf000004f10640009c000000000305a0190000002006400270000004f10540009c000000000604a01900000002053001bf0000ffff0460008c000000000503a0190000001003600270000000000306a019000000ff0330008c00000001055020390000004103500039000000010330017f0000000003320019000000000423004b00000000040000190000000104004039000004f90630009c0000125d0000213d00000001044001900000125d0000c13d000000400030043f00000002035000390000000006320436000000020300036700000000040000310000002107500039000000050770027200000f640000613d000000000843034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f5c0000413d000000000700004b00000f660000613d0000000007020433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000015101cf000000ff0550008c0000000001002019000000210520003900000fde0000013d000004f103000041000004f10520009c00000000020380190000004002200210000004f10540009c00000000040380190000006004400210000000000224019f000004f10410009c0000000001038019000000c001100210000000000112019f000000080200002913bf13ab0000040f000700600000003d000600800000003d000000010220018f00030000000103550000006001100270000104f10010019d000004f10310019800000fb90000613d0000003f01300039000000200400008a000000000141016f000000400400043d0000000001140019000700000004001d000000000441004b00000000040000190000000104004039000004f90510009c0000125d0000213d00000001044001900000125d0000c13d000000400010043f0000001f0130018f000000070400002900000000083404360000000304000367000000050330027200000fa90000613d000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000635004b00000fa10000413d000600000008001d000000000501004b00000fb90000613d0000000503300210000000000434034f00000006033000290000000301100210000000000503043300000000051501cf000000000515022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000151019f000000000013043500000007010000290000000001010433000000000202004b000010030000c13d000000000201004b0000102f0000c13d000000400300043d000800000003001d000004ff0100004100000000001304350000000401300039000000030200002900000000002104350000002402300039000000090100002913bf13970000040f0000000804000029000009200000013d000005290320009c0000125d0000213d0000004003200039000000400030043f000000010300003a000000000532043600000000040000310000000203000367000000000643034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807100210000004fa08000041000000000101004b000000000807c0190000052a01600197000000000181019f0000000000150435000000400100043d00000020061000390000000005020433000000000705004b00000fec0000613d000000000700001900000000086700190000002007700039000000000927001900000000090904330000000000980435000000000857004b00000fe50000413d00000000026500190000053c060000410000000000620435000000020250003900000000002104350000004102500039000000010520017f0000000002150019000000000552004b00000000050000190000000105004039000004f90620009c0000125d0000213d00000001055001900000125d0000c13d0000000906000029000001c405600039000000400020043f000000000253034f0000000005640049000000230650008a000000000202043b00000df50000013d000000000201004b0000101a0000c13d0000051401000041000000000010043900000008010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c7000080020200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000000101004b000009b20000613d00000007010000290000000001010433000000000201004b000002fc0000613d000004fa02000041000000200310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000001220000c13d00000006010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001220000c13d000000000101004b000002fc0000c13d00000b580000013d000004f102000041000004f10310009c0000000001028019000000060400002900000a200000013d000005290870009c0000125d0000213d0000004008700039000000400080043f000000000843034f000000010400003a00000000044704360000000008800350000000000808043b000000000084043500000c5c0000613d0000052a08800197000000f806600210000000000686019f0000052f066000410000000000640435000000400400043d00000020064000390000000008070433000000000908004b000010510000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b0000104a0000413d000000000768001900000000000704350000000007480019000000200970003900000007080000290000000008080433000000000a08004b000010610000613d000000000a000019000000000b9a0019000000200aa00039000000070ca00029000000000c0c04330000000000cb0435000000000b8a004b0000105a0000413d000000000998001900000000000904350000000007780019000000200970003900000005080000290000000008080433000000000a08004b000010710000613d000000000a000019000000000b9a0019000000200aa00039000000050ca00029000000000c0c04330000000000cb0435000000000b8a004b0000106a0000413d000000000998001900000000000904350000000007780019000000200970003900000004080000290000000008080433000000000a08004b000010810000613d000000000a000019000000000b9a0019000000200aa00039000000040ca00029000000000c0c04330000000000cb0435000000000b8a004b0000107a0000413d000000000998001900000000000904350000000007780019000000200970003900000003080000290000000008080433000000000a08004b000010910000613d000000000a000019000000000b9a0019000000200aa00039000000030ca00029000000000c0c04330000000000cb0435000000000b8a004b0000108a0000413d000000000998001900000000000904350000000007780019000000200970003900000002080000290000000008080433000000000a08004b000010a10000613d000000000a000019000000000b9a0019000000200aa00039000000020ca00029000000000c0c04330000000000cb0435000000000b8a004b0000109a0000413d00000000099800190000000000090435000000000553034f00000000037800190000001f0720018f00000020083000390000000509200272000010b20000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000010aa0000413d000000000a07004b000010c10000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000002230019000000200520003900000000000504350000000003010433000000000703004b000010cf0000613d000000000700001900000000085700190000002007700039000000000917001900000000090904330000000000980435000000000837004b000010c80000413d000000000153001900000000000104350000000001420049000000000113001900000000001404350000003f01100039000000010210017f0000000001420019000000000221004b00000000020000190000000102004039000004f90310009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000004f101000041000004f10260009c000000000601801900000040026002100000000003040433000004f10430009c00000000030180190000006003300210000000000223019f0000000003000414000004f10430009c0000000003018019000000c001300210000000000121019f000004fc011001c7000080100200003913bf13b00000040f0000000101200190000001220000613d0000000901000029000000e4041000390000000201000367000000000241034f000000000202043b000004fb02200198000500000004001d000011100000c13d000000800240008a000000000321034f000000400240008a000000000521034f000000000403043b000000000505043b00000000634500a9000000000605004b000011060000613d00000000655300d9000000000445004b0000110c0000c13d0000008002200039000000000121034f000000000101043b000700000031001e0000110c0000413d000011150000013d0000054201000041000000000010043500000011010000390000003c0000013d00000009020000290000012402200039000000000121034f000000000101043b000700000001001d0000053d01000041000000000010043900000006010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c70000800a0200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000070110006b000011310000a13d000000400100043d00000064021000390000054003000041000000000032043500000044021000390000054103000041000000000032043500000024021000390000002203000039000001000000013d000000000001042f0000000003000031000000090130006a000000230410008a000000050100002900000100011000390000000202000367000000000112034f000000000101043b000004fa05000041000000000641004b00000000060000190000000006058019000004fa04400197000004fa07100197000000000847004b0000000005008019000000000447013f000004fa0440009c000000000506c019000000000405004b000001220000c13d0000000804100029000000000142034f000000000101043b000004f90510009c000001220000213d00000000061300490000002005400039000004fa04000041000000000765004b00000000070000190000000007042019000004fa06600197000004fa08500197000000000968004b0000000004008019000000000668013f000004fa0660009c000000000407c019000000000404004b000001220000c13d0000003f04100039000000200600008a000000000664016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000004f90860009c0000125d0000213d00000001077001900000125d0000c13d000000400060043f00000000041404360000000006510019000000000336004b000001220000213d000000000352034f0000001f0210018f0000000505100272000011780000613d000000000600001900000005076002100000000008740019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000011700000413d000000000602004b000011870000613d0000000505500210000000000353034f00000000055400190000000302200210000000000605043300000000062601cf000000000626022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000262019f0000000000250435000000000114001900000000000104350000053e01000041000000400200043d0000000000120435000004f101000041000004f10320009c000000000201801900000040012002100000053f011001c7000013c00001042e0000001f0430018f00000005023002720000119d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000011960000413d000000000504004b000011ab0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013c100010430000000380840008c000011fd0000413d0000002009400270000004f10840009c000000000904a019000004f10840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a70009c0000125d0000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d0000052a0aa00197000000f80b800210000000000aab019f0000052e0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf0000002109700039000000000089043500000000080700190000120e0000013d000000380840008c000012490000413d0000002009400270000004f10840009c000000000904a019000004f10840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a60009c0000125d0000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d0000052a0aa00197000000f80b800210000000000aab019f0000052e0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf0000002109600039000000000089043500000000080600190000125a0000013d000005290870009c0000125d0000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a4002100000052a099001970000000009a9019f000004fa0990016700000000009804350000000008070019000000400700043d000005290970009c0000125d0000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b9043500000c5c0000613d0000052a02b001970000052f0a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d000004f909900197000000380d90008c000012990000413d000000200d900270000004f10c90009c000000000d09a019000004f10c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005290ea0009c0000125d0000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c5c0000613d000000f80bc0021000000000022b019f00000530022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000012a60000013d000005290860009c0000125d0000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a4002100000052a099001970000000009a9019f000004fa0990016700000000009804350000000008060019000000400600043d000005290960009c000012610000a13d0000054201000041000000000010043500000041010000390000003c0000013d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b9043500000c5c0000613d0000052a02b001970000052f0a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d000004f909900197000000380d90008c000013130000413d000000200d900270000004f10c90009c000000000d09a019000004f10c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005290ea0009c0000125d0000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c5c0000613d000000f80bc0021000000000022b019f00000530022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000013200000013d000005290da0009c0000125d0000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c5c0000613d000000f809900210000000000229019f0000052f0220004100000000002d0435000000400200043d0000002009200039000005310b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000012b60000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000012af0000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b060433000000000d0b004b000012c50000613d000000000d000019000000000ecd0019000000200dd00039000000000f6d0019000000000f0f04330000000000fe0435000000000ebd004b000012be0000413d0000000006cb001900000000000604350000000006ab0019000000210b600039000000000a080433000000000c0a004b000012d40000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000012cd0000413d0000000008ba00190000000000080435000000000551034f00000000016a00190000001f0640018f0000002108100039000000050a400272000012e50000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000012dd0000413d000000000b06004b000012f40000613d000000050aa002100000000005a5034f0000000008a800190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004070433000000000604004b000013020000613d000000000600001900000000085600190000002006600039000000000a760019000000000a0a04330000000000a80435000000000846004b000012fb0000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b00000000030000190000000103004039000004f90410009c0000125d0000213d00000001033001900000138c0000613d0000125d0000013d000005290da0009c0000125d0000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c5c0000613d000000f809900210000000000229019f0000052f0220004100000000002d0435000000400200043d0000002009200039000004fc0b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000013300000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013290000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b070433000000000d0b004b0000133f0000613d000000000d000019000000000ecd0019000000200dd00039000000000f7d0019000000000f0f04330000000000fe0435000000000ebd004b000013380000413d0000000007cb001900000000000704350000000007ab0019000000210b700039000000000a080433000000000c0a004b0000134e0000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013470000413d0000000008ba00190000000000080435000000000551034f00000000017a00190000001f0740018f0000002108100039000000050a4002720000135f0000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013570000413d000000000b07004b0000136e0000613d000000050aa002100000000005a5034f0000000008a800190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004060433000000000704004b0000137c0000613d000000000700001900000000085700190000002007700039000000000a670019000000000a0a04330000000000a80435000000000847004b000013750000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b00000000030000190000000103004039000004f90410009c0000125d0000213d00000001033001900000125d0000c13d000000400010043f000004f101000041000004f10390009c000000000901801900000040039002100000000002020433000004f10420009c00000000020180190000006002200210000000000232019f000010e80000013d00000000030104330000000002320436000000000403004b000013a30000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b0000139c0000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000000001042f000013ae002104210000000102000039000000000001042d0000000002000019000000000001042d000013b3002104230000000102000039000000000001042d0000000002000019000000000001042d000013b8002104210000000102000039000000000001042d0000000002000019000000000001042d000013bd002104230000000102000039000000000001042d0000000002000019000000000001042d000013bf00000432000013c00001042e000013c1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706508c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000100000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe04f766572666c6f770000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f77000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000440000000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000000000000000000000006400000000000000000000000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd8000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000024000000a00000000000000000456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39202bcce700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000ab3bba1f1a146e9cd5aea24ccd3c92113a7bc0e36eeda956634489abb70bfa37", + "deployedBytecode": "0x0004000000000002000b00000000000200000000030100190000006007300270000004f10670019700030000006103550002000000010355000004f10070019d0000008004000039000000400040043f00000001022001900000002c0000c13d000000040260008c000000340000413d000000000201043b000000e002200270000004f30320009c0000003f0000a13d000004f40320009c000000910000613d000004f50320009c000000c00000613d000004f60220009c000000360000c13d000000040260008a000000200320008c000001220000413d0000000401100370000000000101043b000004f90310009c000001220000213d0000000001120049000004fa02000041000002600310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000002fc0000613d000001220000013d0000000001000416000000000101004b000001220000c13d000000200100003900000100001004430000012000000443000004f201000041000013c00001042e000000000106004b000002fc0000613d0000000001000411000080010110008c000002fc0000c13d000005420100004100000000001004350000000101000039000000040010043f0000054301000041000013c100010430000004f70320009c0000010c0000613d000900000004001d000004f80220009c000000360000c13d000000040260008a000000600220008c000001220000413d0000004402100370000000000302043b000004f90230009c000001220000213d00000004043000390000000005460049000004fa02000041000002600750008c00000000070000190000000007024019000004fa08500197000000000908004b000000000200a019000004fa0880009c000000000207c019000000000202004b000001220000c13d0000000002000411000080010220008c000002fc0000c13d0000000002000412000004fb072001970000000002000410000000000727004b000002fc0000c13d0000022403300039000000000731034f000000000707043b0000001f0550008a000004fa08000041000000000957004b00000000090000190000000009088019000004fa05500197000004fa0a700197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000005470019000000000451034f000000000404043b000004f90740009c000001220000213d00000000074600490000002005500039000004fa08000041000000000975004b00000000090000190000000009082019000004fa07700197000004fa0a500197000000000b7a004b000000000800801900000000077a013f000004fa0770009c000000000809c019000000000708004b000001220000c13d000000030740008c000002520000213d000004ff01000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000052201000041000000c40010043f0000052301000041000002620000013d000000040260008a000000600220008c000001220000413d0000004402100370000000000302043b000004f90230009c000001220000213d00000004023000390000000005260049000004fa04000041000002600850008c00000000080000190000000008044019000004fa09500197000000000a09004b000000000400a019000004fa0990009c000000000408c019000000000404004b000001220000c13d0000000004000411000080010440008c000002fc0000c13d0000000004000412000004fb044001970000000008000410000000000484004b000002fc0000c13d0000004404300039000000000441034f0000012408300039000000000381034f000000000404043b000004fb04400197000000000303043b000005010930009c000001f30000413d000004ff01000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000050b01000041000000c40010043f0000050c01000041000013c100010430000000040360008a000000600230008c000001220000413d0000004402100370000000000202043b000004f90420009c000001220000213d0000000003230049000004fa04000041000002600530008c00000000050000190000000005044019000004fa03300197000000000603004b000000000400a019000004fa0330009c000000000405c019000000000304004b000001220000c13d0000000003000411000080010330008c000002fc0000c13d0000000003000412000004fb033001970000000004000410000000000343004b000002fc0000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b000001db0000c13d00000000040004150000000b0440008a00000020044000c90000000001000414000b00000000001d000900000004001d000004f102000041000004f10310009c0000000001028019000000c001100210000080010200003913bf13ab0000040f000000090300002900030000000103550000006001100270000104f10010019d000000050130027000000001012001950000000101200190000002fc0000c13d000000400100043d0000006402100039000004fd0300004100000000003204350000004402100039000004fe030000410000000000320435000000240210003900000025030000390000000000320435000004ff020000410000000000210435000000040210003900000020030000390000000000320435000004f102000041000004f10310009c0000000001028019000000400110021000000500011001c7000013c100010430000000040260008a000000600220008c000001220000413d0000004402100370000000000202043b000900000002001d000004f90220009c000001220000213d0000000902000029000800040020003d000000080260006a000004fa03000041000002600420008c00000000040000190000000004034019000004fa02200197000000000502004b000000000300a019000004fa0220009c000000000304c019000000000203004b000001240000613d0000000001000019000013c1000104300000002402100370000000000202043b000700000002001d0000000002000411000080010220008c000002fc0000c13d0000000002000412000004fb022001970000000003000410000600000003001d000000000232004b000002fc0000c13d00000000020004140000052403000041000000a00030043f0000000903000029000501040030003d0000000501100360000000000101043b000000a40010043f0000002401000039000000800010043f000000e001000039000000400010043f000000c001200210000005070110019700000525011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001913bf13ab0000040f000300000001035500000000030100190000006003300270000104f10030019d000004f1083001970000003f038000390000050a04300197000000400600043d0000000003640019000000000443004b00000000040000190000000104004039000004f90530009c0000125d0000213d00000001044001900000125d0000c13d000000400030043f000000000786043600000002030003670000000004000031000000000543034f0000001f098000390000000509900272000001660000613d000000000a000019000000050ba00210000000000cb70019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000015e0000413d000000000900004b000001680000613d0000001f0980018f0000000508800272000001740000613d000000000a000019000000050ba00210000000000cb70019000000000bb1034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b0000016c0000413d000000000a09004b000001830000613d0000000508800210000000000181034f00000000088700190000000309900210000000000a080433000000000a9a01cf000000000a9a022f000000000101043b0000010009900089000000000191022f00000000019101cf0000000001a1019f00000000001804350000000101200190000002480000613d000000070100006b000010f20000c13d0000000501000029000001000110008a000000000113034f000000000101043b000000000201004b000002650000c13d0000000501300360000000400900043d000000000101043b000000800210008c000700000009001d0000029c0000413d00000080021002700000052b0610009c000000000201a0190000052b0610009c0000000006000019000000100600203900000008076001bf000004f90820009c000000000706a0190000004006200270000004f90820009c000000000602a01900000004087001bf000004f10260009c000000000807a0190000002007600270000004f10260009c000000000706a01900000002028001bf0000ffff0670008c000000000208a0190000001006700270000000000607a019000000ff0660008c0000000102202039000000200600008a0000004107200039000000000667016f0000000006690019000000000796004b00000000070000190000000107004039000004f90860009c0000125d0000213d00000001077001900000125d0000c13d000000400060043f00000002062000390000000707000029000000000667043600000021072000390000000507700272000001c70000613d00000000080000190000000509800210000000000a960019000000000995034f000000000909043b00000000009a04350000000108800039000000000978004b000001bf0000413d000000000700004b000001c90000613d00000007070000290000000007070433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808200210000000000778019f0000052c0770004100000000007604350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000007020000290000002102200039000002ad0000013d00000000431200a900000000422300d9000000000112004b0000110c0000c13d00000000040004150000000a0440008a00000020044000c90000000001000414000a00000000001d000000000203004b000000e80000613d000004f102000041000004f10410009c0000000001028019000000c001100210000004fc011001c700008009020000390000800104000039000000000500001913bf13ab0000040f00000000030004150000000a0330008a00000020033000c9000000f00000013d000000a008800039000000000881034f000000000808043b0000001f0550008a000004fa09000041000000000a58004b000000000a000019000000000a098019000004fa05500197000004fa0b800197000000000c5b004b000000000900801900000000055b013f000004fa0550009c00000000090ac019000000000509004b000001220000c13d0000000002280019000000000521034f000000000805043b000004f90580009c000001220000213d00000000058600490000002009200039000004fa02000041000000000a59004b000000000a000019000000000a022019000004fa05500197000004fa0b900197000000000c5b004b000000000200801900000000055b013f000004fa0550009c00000000020ac019000000000202004b000001220000c13d0000000002000414000004f10520009c000000b60000213d000080060540008c00000000050000190000022f0000c13d000000040580008c00000000050000190000022f0000413d000000000a91034f0000000105000039000000000a0a043b000005020aa00197000005030ba0009c0000022e0000613d000005040ba0009c0000022e0000613d000005050ba0009c0000022e0000613d0000050605a0009c00000000050000190000000105006039000000010550018f000000000a9800190000000006a6004b0000000006000019000000010600403900000000088a004b00000001066041bf000004f108900197000000000181034f000000000803004b000003580000c13d00000001036001900000110c0000c13d00000508030000410000050906000041000000000505004b000000000603c019000000c0022002100000050702200197000000000226019f0000000003a70049000004f10330019700000000013103df00000000012103af0000000002040019000003630000013d0000000001060433000004f102000041000004f10310009c0000000001028019000004f10370009c000000000702801900000040027002100000006001100210000000000121019f000013c100010430000000000751034f000000000707043b00000502077001970000050d0870009c000002fa0000c13d000000430440008c000003c10000213d000004ff01000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000051f01000041000000c40010043f0000052001000041000000e40010043f0000052101000041000013c100010430000000710210008c000002fe0000c13d0000000902000029000001c401200039000000000113034f0000000002240049000000230220008a000000000101043b000004fa05000041000000000621004b00000000060000190000000006058019000004fa02200197000004fa07100197000000000827004b0000000005008019000000000227013f000004fa0220009c000000000506c019000000000205004b000001220000c13d0000000801100029000000000213034f000000000202043b000004f90520009c000001220000213d00000000052400490000002001100039000004fa06000041000000000751004b00000000070000190000000007062019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d000000000512001a00000000020004140000110c0000413d000000000654004b0000110c0000413d000005320620009c0000069d0000413d000000400100043d00000044021000390000050b03000041000000000032043500000024021000390000000803000039000004bf0000013d000005290290009c0000125d0000213d00000007060000290000004002600039000000400020043f000000010200003a00000000022604360000000006500350000000000606043b000000000062043500000c5c0000613d000000f807100210000004fa08000041000000000101004b000000000807c0190000052a01600197000000000181019f0000000000120435000000400100043d0000000502000029000000600220008a000000000623034f000000000606043b000000800760008c000004420000413d00000080076002700000052b0860009c000000000706a0190000052b0860009c0000000008000019000000100800203900000008098001bf000004f90a70009c000000000908a0190000004008700270000004f90a70009c000000000807a019000000040a9001bf000004f10780009c000000000a09a0190000002009800270000004f10780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008810019000000000918004b00000000090000190000000109004039000004f90a80009c0000125d0000213d00000001099001900000125d0000c13d000000400080043f0000000208700039000000000881043600000021097000390000000509900272000002e80000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002e00000413d000000000900004b000002ea0000613d0000000009010433000000000909004b00000c5c0000613d00000000090804330000052a09900197000000f80a70021000000000099a019f0000052c0990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107100039000004520000013d0000050e0170009c000003e00000c13d0000000001000019000013c00001042e000000020210008c000003e80000c13d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400300043d000000000401043b000000800140008c000004cb0000413d00000080014002700000052b0240009c000000000104a0190000052b0240009c0000000002000019000000100200203900000008052001bf000004f90610009c000000000502a0190000004002100270000004f90610009c000000000201a01900000004015001bf000004f10620009c000000000105a0190000002006200270000004f10520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b00000000020000190000000102004039000004f90610009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000003460000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000033e0000413d000000000700004b000003480000613d0000000007030433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000004de0000013d00000001066001900000110c0000c13d0000000006a70049000004f10660019700000000016103df000000c002200210000005070220019700000508022001c700000000012103af0000800902000039000000000600001913bf13b50000040f000300000001035500000000030100190000006003300270000104f10030019d000004f10330019700000001022001900000049e0000613d0000003f023000390000050a04200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000004f90640009c0000125d0000213d00000001055001900000125d0000c13d000000400040043f00000000043204360000001f053000390000000505500272000003860000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000037e0000413d000000000500004b000003880000613d0000001f0530018f0000000503300272000003940000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000038c0000413d000000000605004b000003a30000613d0000000503300210000000000131034f00000000033400190000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000400100043d00000020030000390000000004310436000000000302043300000000003404350000004004100039000000000503004b000003b30000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b000003ac0000413d000000000243001900000000000204350000005f02300039000000200300008a000000000232016f000004f103000041000004f10420009c0000000002038019000004f10410009c000000000103801900000040011002100000006002200210000000000112019f000013c00001042e0000000404500039000000000541034f000000000505043b000800000005001d000004fb0550009c000001220000213d000001400330008a000000000331034f0000002004400039000000000441034f000000000404043b000700000004001d000000000303043b0000051004000041000000800040043f000004fb02200197000500000002001d000000840020043f000004fb02300197000600000002001d000000a40020043f00000000020004140000000803000029000000040330008c0000052a0000c13d000000000161034f0000000103000031000000200230008c00000000040300190000002004008039000005560000013d000004ff01000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000050f01000041000000bd0000013d000000010110008c000004b90000c13d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400300043d000000000401043b000000800140008c0000057d0000413d00000080014002700000052b0240009c000000000104a0190000052b0240009c0000000002000019000000100200203900000008052001bf000004f90610009c000000000502a0190000004002100270000004f90610009c000000000201a01900000004015001bf000004f10620009c000000000105a0190000002006200270000004f10520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b00000000020000190000000102004039000004f90610009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000004300000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004280000413d000000000700004b000004320000613d0000000007030433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000005900000013d000005290710009c0000125d0000213d0000004007100039000000400070043f000000010700003a00000000077104360000000008500350000000000808043b000000000087043500000c5c0000613d000000f809600210000004fa0a000041000000000606004b000000000a09c0190000052a068001970000000006a6019f0000000000670435000000400220008a000000000623034f000000400200043d000000000606043b000000800760008c000005dc0000413d00000080076002700000052b0860009c000000000706a0190000052b0860009c0000000008000019000000100800203900000008098001bf000004f90a70009c000000000908a0190000004008700270000004f90a70009c000000000807a019000000040a9001bf000004f10780009c000000000a09a0190000002009800270000004f10780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008820019000000000928004b00000000090000190000000109004039000004f90a80009c0000125d0000213d00000001099001900000125d0000c13d000000400080043f00000002087000390000000008820436000000210970003900000005099002720000048c0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000004840000413d000000000900004b0000048e0000613d0000000009020433000000000909004b00000c5c0000613d00000000090804330000052a09900197000000f80a70021000000000099a019f0000052c0990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107200039000005ec0000013d0000001f0430018f0000000502300272000004a90000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004a20000413d000000000504004b000004b70000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013c100010430000000400100043d000000440210003900000526030000410000000000320435000000240210003900000017030000390000000000320435000004ff020000410000000000210435000000040210003900000020030000390000000000320435000004f102000041000004f10310009c000000000102801900000040011002100000051e011001c7000013c100010430000005290130009c0000125d0000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807400210000004fa08000041000000000404004b000000000807c0190000052a04600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008700000413d00000080065002700000052b0750009c000000000605a0190000052b0750009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000005180000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005100000413d000000000800004b0000051a0000613d0000000008040433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000008810000013d000004f101000041000004f10320009c0000000002018019000000c00120021000000511011001c7000000080200002913bf13b00000040f00000000030100190000006003300270000004f103300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005430000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000053b0000413d000000000705004b000005520000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000067a0000613d0000001f02400039000000600520018f00000080025001bf000000400020043f000000200430008c000001220000413d000000800400043d000000070440006c000002fc0000813d000000a00450003900000512060000410000000000640435000000a40650003900000006070000290000000000760435000000c40650003900000000000604350000004406000039000100000006001d00000000006204350000014006500039000000400060043f00000120065000390000051307000041000000000076043500000100065001bf0000002005000039000300000005001d000200000006001d0000000000560435000000000502043300000000020004140000000806000029000000040660008c000008cf0000c13d0000000102000039000004f90430009c0000125d0000213d000008e30000013d000005290130009c0000125d0000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807400210000004fa08000041000000000404004b000000000807c0190000052a04600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000009250000413d00000080065002700000052b0750009c000000000605a0190000052b0750009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000005ca0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005c20000413d000000000800004b000005cc0000613d0000000008040433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000009360000013d000005290720009c0000125d0000213d0000004007200039000000400070043f000000010700003a00000000077204360000000008500350000000000808043b000000000087043500000c5c0000613d000000f809600210000004fa0a000041000000000606004b000000000a09c0190000052a068001970000000006a6019f0000000000670435000000400600043d000500000006001d00000020076000390000000006010433000000000806004b000005fb0000613d000000000800001900000000097800190000002008800039000000000a180019000000000a0a04330000000000a90435000000000968004b000005f40000413d000000000176001900000000000104350000000007020433000000000807004b000006080000613d000000000800001900000000091800190000002008800039000000000a280019000000000a0a04330000000000a90435000000000978004b000006010000413d000000000117001900000000000104350000000001670019000000050600002900000000001604350000003f011000390001002000000092000000010110017f0000000002610019000000000112004b00000000010000190000000101004039000400000002001d000004f90220009c0000125d0000213d00000001011001900000125d0000c13d0000000401000029000000400010043f000005290110009c0000125d0000213d00000009070000290000004401700039000000000113034f000000000101043b00000004080000290000004002800039000000400020043f00000020028000390000052d060000410000000000620435000000150200003900000000002804350000006001100210000000210280003900000000001204350000012401700039000000000213034f000000400600043d000300000006001d000000000202043b000000800620008c00000a2b0000413d00000080062002700000052b0720009c000000000602a0190000052b0720009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000010770017f0000000307700029000000030870006c00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000006660000613d0000000009000019000000050a900210000000000ba70019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b0000065e0000413d000000000800004b000006680000613d00000003080000290000000008080433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000000306000029000000210660003900000a3d0000013d000000400200043d0000001f0430018f0000000505300272000006870000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000067f0000413d000000000604004b000006960000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f101000041000004f10420009c000000000201801900000040012002100000006002300210000000000121019f000013c100010430000004f101100197000000000113034f0000000003540049000004f10330019700000000013103df000000c002200210000005070220019700000509022001c700000000012103af000080100200003913bf13ba0000040f00000000030100190000006003300270000104f10030019d000004f10530019700030000000103550000000102200190000009840000613d0000003f025000390000050a02200197000000400600043d0000000002260019000000000362004b00000000030000190000000103004039000004f90420009c0000125d0000213d00000001033001900000125d0000c13d000000400020043f0000000004560436000000020200036700000000030000310000001f075000390000000507700272000006cb0000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006c30000413d000000000700004b000006cd0000613d0000001f0750018f0000000505500272000006d90000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b000006d10000413d000000000807004b000006e80000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c00000a240000c13d00000009060000290000000001630049000000230510008a000702040060003d0000000701200360000000000101043b000004fa06000041000000000751004b00000000070000190000000007068019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d0000000004040433000400000004001d0000000801100029000000000412034f000000000504043b000004f90450009c000001220000213d000000050450021000000000034300490000002006100039000004fa01000041000000000736004b00000000070000190000000007012019000004fa03300197000004fa08600197000000000938004b0000000001008019000000000338013f000004fa0330009c000000000107c019000000000101004b000001220000c13d000000400100043d00000020031000390000053305500198000007230000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b0000071b0000413d000000000200004b000007250000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b00000000040000190000000104004039000004f90520009c0000125d0000213d00000001044001900000125d0000c13d000000400020043f000004f102000041000004f10430009c000000000302801900000040033002100000000001010433000004f10410009c00000000010280190000006001100210000000000131019f0000000003000414000004f10430009c0000000003028019000000c002300210000000000112019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d0000000002000031000000090320006a000000230530008a000000070300002900000020043000390000000203000367000000000443034f000000000404043b000004fa06000041000000000754004b00000000070000190000000007068019000004fa05500197000004fa08400197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000101043b000700000001001d000000000106004b000001220000c13d0000000801400029000000000413034f000000000404043b000004f90540009c000001220000213d00000000054200490000002001100039000004fa06000041000000000751004b00000000070000190000000007062019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d000000000514001a00000000040004140000110c0000413d000000000652004b0000110c0000413d000004f10640009c000002950000213d000004f101100197000000000113034f0000000002520049000004f10220019700000000012103df000000c002400210000005070220019700000509022001c700000000012103af000080100200003913bf13ba0000040f00000000030100190000006003300270000104f10030019d000004f10330019700030000000103550000000102200190000011920000613d0000003f023000390000050a02200197000000400500043d0000000002250019000000000452004b00000000040000190000000104004039000004f90620009c0000125d0000213d00000001044001900000125d0000c13d000000400020043f000000000235043600000002040003670000001f063000390000000506600272000007a40000613d000000000740036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000079c0000413d000000000600004b000007a60000613d0000001f0630018f0000000503300272000007b20000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b000007aa0000413d000000000706004b000007c10000613d0000000503300210000000000131034f00000000033200190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001304350000000001050433000000200110008c00000a240000c13d000000090c0000290000006401c00039000000000114034f0000004403c00039000000000534034f0000002403c00039000000000634034f0000012403c00039000000000734034f0000000508400360000000e403c00039000000000934034f000000c403c00039000000000a34034f000000a403c00039000000000b34034f0000008403c00039000000000c34034f0000000803400360000000000303043b000000000406043b000000000505043b000000000601043b000000000c0c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a002100039000000070d0000290000000000d204350000018002100039000000040d0000290000000000d2043500000160021000390000000000720435000001400210003900000000008204350000012002100039000000000092043500000100021000390000000000a20435000000e0021000390000000000b20435000000c0021000390000000000c20435000000a0021000390000000000620435000000800210003900000000005204350000006002100039000000000042043500000040021000390000000000320435000000200210003900000535030000410000000000320435000001c0030000390000000000310435000005360310009c0000125d0000213d000001e003100039000000400030043f000004f104000041000004f10320009c000000000204801900000040022002100000000001010433000004f10310009c00000000010480190000006001100210000000000121019f0000000002000414000004f10320009c0000000002048019000000c002200210000000000112019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d000000000101043b000500000001001d000000400100043d000700000001001d000005270100004100000000001004390000000001000414000004f10210009c000004f101008041000000c00110021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d00000007040000290000002002400039000000000101043b0000053703000041000000000032043500000080034000390000000000130435000000600140003900000538030000410000000000310435000000400140003900000539030000410000000000310435000000800100003900000000001404350000053a0140009c0000125d0000213d0000000704000029000000a001400039000000400010043f000004f101000041000004f10320009c000000000201801900000040022002100000000003040433000004f10430009c00000000030180190000006003300210000000000223019f0000000003000414000004f10430009c0000000003018019000000c001300210000000000121019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d000000000301043b000000400100043d00000042021000390000000504000029000000000042043500000020021000390000053b0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000005190310009c0000125d0000213d0000008003100039000000400030043f000004f103000041000004f10420009c000000000203801900000040022002100000000001010433000004f10410009c00000000010380190000006001100210000000000121019f0000000002000414000004f10420009c0000000002038019000000c002200210000000000112019f000010ed0000013d000005290640009c0000125d0000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c5c0000613d000000f808500210000004fa09000041000000000505004b000000000908c0190000052a05700197000000000595019f0000000000560435000000400500043d0000000506000029000000400760008a000000000671034f000000000606043b000000800860008c000009be0000413d00000080086002700000052b0960009c000000000806a0190000052b0960009c00000000090000190000001009002039000000080a9001bf000004f90b80009c000000000a09a0190000004009800270000004f90b80009c000000000908a019000000040ba001bf000004f10890009c000000000b0aa019000000200a900270000004f10890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a004039000004f90b90009c0000125d0000213d000000010aa001900000125d0000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000008bd0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000008b50000413d000000000a00004b000008bf0000613d000000000a050433000000000a0a004b00000c5c0000613d000000000a0904330000052a0aa00197000000f80b800210000000000aab019f0000052c0aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000009cf0000013d000004f101000041000004f10350009c000000000501801900000060035002100000004004400210000000000343019f000004f10420009c0000000002018019000000c001200210000000000113019f000000080200002913bf13ab0000040f000400600000003d000000010220018f000300000001035500000000030100190000006003300270000104f10030019d000004f1033001980000090f0000613d0000003f04300039000000200500008a000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b00000000050000190000000105004039000004f90640009c0000125d0000213d00000001055001900000125d0000c13d000000400040043f0000001f0430018f000000040500002900000000083504360000000503300272000008ff0000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000008f70000413d000900000008001d000000000504004b0000090f0000613d0000000503300210000000000131034f00000009033000290000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000004010000290000000001010433000000000202004b0000099f0000c13d000000000201004b00000a1c0000c13d000000400300043d000900000003001d000004ff0100004100000000001304350000000401300039000000030200002900000000002104350000002402300039000000020100002913bf13970000040f00000009040000290000000001410049000004f102000041000004f10310009c000000000102801900000a200000013d000005290640009c0000125d0000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c5c0000613d000000f808500210000004fa09000041000000000505004b000000000908c0190000052a05700197000000000595019f0000000000560435000000400500043d0000000506000029000000600660008a000000000761034f000000000707043b000000800870008c00000a830000413d00000080087002700000052b0970009c000000000807a0190000052b0970009c00000000090000190000001009002039000000080a9001bf000004f90b80009c000000000a09a0190000004009800270000004f90b80009c000000000908a019000000040ba001bf000004f10890009c000000000b0aa019000000200a900270000004f10890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a004039000004f90b90009c0000125d0000213d000000010aa001900000125d0000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000009720000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000096a0000413d000000000a00004b000009740000613d000000000a050433000000000a0a004b00000c5c0000613d000000000a0904330000052a0aa00197000000f80b800210000000000aab019f0000052c0aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c0000000007002019000000210850003900000a940000013d0000001f0350018f00000005025002720000098f0000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b000009880000413d000000000403004b0000099d0000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f00000000001204350000006001500210000013c100010430000000000201004b00000b440000c13d0000051401000041000000000010043900000008010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c7000080020200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000000101004b00000b400000c13d000000400100043d00000044021000390000051d03000041000000000032043500000024021000390000001d030000390000000000320435000004ff02000041000000000021043500000004021000390000000303000029000004c40000013d000005290850009c0000125d0000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a600210000004fa0b000041000000000606004b000000000b0ac0190000052a069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c00000ae10000413d00000080098002700000052b0a80009c000000000908a0190000052b0a80009c000000000a000019000000100a002039000000080ba001bf000004f90c90009c000000000b0aa019000000400a900270000004f90c90009c000000000a09a019000000040cb001bf000004f109a0009c000000000c0ba019000000200ba00270000004f109a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b004039000004f90ca0009c0000125d0000213d000000010bb001900000125d0000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb0027200000a0a0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000a020000413d000000000b00004b00000a0c0000613d000000000b060433000000000b0b004b00000c5c0000613d000000000b0a04330000052a0bb00197000000f80c900210000000000bbc019f0000052c0bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210960003900000af20000013d000004f102000041000004f10310009c00000000010280190000000904000029000004f10340009c000000000402801900000040024002100000024f0000013d000000400100043d00000044021000390000053403000041000000000032043500000024021000390000001f03000039000004bf0000013d0000000306000029000005290660009c0000125d0000213d00000003070000290000004006700039000000400060043f000000010600003a00000000066704360000000007500350000000000707043b000000000076043500000c5c0000613d000000f808200210000004fa09000041000000000202004b000000000908c0190000052a02700197000000000292019f0000000000260435000000080640006a000000a001100039000000000213034f000000000202043b0000001f0660008a000004fa07600197000004fa08200197000004fa09000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000862004b0000000009004019000004fa0770009c000000000a09c01900000000070a004b000001220000c13d0000000808200029000000000783034f000000000707043b000004f90970009c000001220000213d00000000097400490000002008800039000004fa0a000041000000000b98004b000000000b000019000000000b0a2019000004fa09900197000004fa0c800197000000000d9c004b000000000a00801900000000099c013f000004fa0990009c000000000a0bc01900000000090a004b000001220000c13d000000010970008c00000c890000c13d000000000583034f000000000505043b000000010700008a000004fa08000041000000000775004b00000000070000190000000007082019000004fa05500197000004fa0950009c0000000008008019000004fa05500167000004fa0550009c000000000807c019000200600000003d000000000508004b00000def0000c13d000000400500043d000200000005001d000005290550009c0000125d0000213d00000002080000290000004005800039000000400050043f00000020058000390000052c0700004100000000007504350000000105000039000000000058043500000def0000013d000005290850009c0000125d0000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a700210000004fa0b000041000000000707004b000000000b0ac0190000052a079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c00000b7a0000413d00000080098002700000052b0a80009c000000000908a0190000052b0a80009c000000000a000019000000100a002039000000080ba001bf000004f90c90009c000000000b0aa019000000400a900270000004f90c90009c000000000a09a019000000040cb001bf000004f109a0009c000000000c0ba019000000200ba00270000004f109a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b004039000004f90ca0009c0000125d0000213d000000010bb001900000125d0000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb0027200000acf0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000ac70000413d000000000b00004b00000ad10000613d000000000b070433000000000b0b004b00000c5c0000613d000000000b0a04330000052a0bb00197000000f80c900210000000000bbc019f0000052c0bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210970003900000b8b0000013d000005290960009c0000125d0000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d000000f80b800210000004fa0c000041000000000808004b000000000c0bc0190000052a08a001970000000008c8019f0000000000890435000000400800043d00070040007000920000000709100360000000000909043b000000800a90008c00000c510000413d000000800a9002700000052b0b90009c000000000a09a0190000052b0b90009c000000000b000019000000100b002039000000080cb001bf000004f90da0009c000000000c0ba019000000400ba00270000004f90da0009c000000000b0aa019000000040dc001bf000004f10ab0009c000000000d0ca019000000200cb00270000004f10ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c004039000004f90db0009c0000125d0000213d000000010cc001900000125d0000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000b2d0000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b00000b250000413d000000000700004b00000b2f0000613d0000000007080433000000000707004b00000c5c0000613d00000000070b04330000052a07700197000000f80ca0021000000000077c019f0000052c0770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c00000000090020190000002107800039000000000097043500000d7b0000013d00000004010000290000000001010433000000000201004b00000b670000613d000004fa02000041000000200310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000001220000c13d00000009010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001220000c13d000000000101004b00000b670000c13d000000400100043d00000064021000390000051b03000041000000000032043500000044021000390000051c03000041000000000032043500000024021000390000002a030000390000000000320435000004ff02000041000000000021043500000004021000390000000303000029000001050000013d000000400300043d00000024013000390000000602000029000000000021043500000510010000410000000000130435000900000003001d00000004013000390000000502000029000000000021043500000000010004140000000802000029000000040220008c00000beb0000c13d0000000103000031000000200130008c0000000004030019000000200400803900000c1d0000013d000005290970009c0000125d0000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d000000f80b800210000004fa0c000041000000000808004b000000000c0bc0190000052a08a001970000000008c8019f0000000000890435000000400900043d000005290890009c0000125d0000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a9000390000052d0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000700000006001d000000800a60008c00000cb40000413d0000000706000029000000800a6002700000052b0b60009c000000000a06a0190000052b0b60009c000000000b000019000000100b002039000000080cb001bf000004f90da0009c000000000c0ba019000000400ba00270000004f90da0009c000000000b0aa019000000040dc001bf000004f10ab0009c000000000d0ca019000000200cb00270000004f10ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c004039000004f90db0009c0000125d0000213d000000010cc001900000125d0000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000bd80000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b00000bd00000413d000000000600004b00000bda0000613d0000000006080433000000000606004b00000c5c0000613d00000000060b04330000052a06600197000000f80ca0021000000000066c019f0000052c0660004100000000006b04350000000306a00210000000f806600089000000070a6001ef000000ff0660008c000000000a00201900000021068000390000000000a6043500000cc70000013d000004f102000041000004f10310009c00000000010280190000000904000029000004f10340009c00000000020440190000004002200210000000c001100210000000000121019f00000516011001c7000000080200002913bf13b00000040f000000090a00002900000000030100190000006003300270000004f103300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000c0a0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000c020000413d000000000705004b00000c190000613d0000000506600210000000000761034f00000009066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c600000613d0000001f01400039000000600210018f0000000901200029000000000221004b00000000020000190000000102004039000004f90410009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000200230008c000001220000413d0000004404100039000000240510003900000009020000290000000002020433000000000202004b00000c7d0000c13d000000200210003900000512060000410000000000620435000000060600002900000000006504350000000705000029000000000054043500000001040000290000000000410435000005190410009c0000125d0000213d0000008004100039000900000004001d000000400040043f0000051a0410009c0000125d0000213d000000c004100039000000400040043f000000030400002900000009050000290000000000450435000000a00410003900000513050000410000000000540435000000000401043300000000010004140000000805000029000000040550008c00000f760000c13d0000000102000039000004f90130009c0000125d0000213d00000f8c0000013d000005290780009c0000125d0000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba043500000d740000c13d0000054201000041000000000010043500000032010000390000003c0000013d000000400200043d0000001f0430018f000000050530027200000c6d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000c650000413d000000000604004b00000c7c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000006960000013d000004ff020000410000000000210435000000040210003900000003030000290000000000320435000000360200003900000000002504350000051702000041000000000024043500000064021000390000051803000041000001050000013d000000400800043d000200000008001d000000380870008c00000dde0000413d0000002009700270000004f10870009c000000000907a019000004f10870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000020a000029000005290aa0009c0000125d0000213d000000000898019f000000020a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000005500350000000000505043b000000000059043500000c5c0000613d0000052a05500197000000f80a80021000000000055a019f0000052e055001c700000000005904350000000305800210000000f80550015f00000000055701cf00000002070000290000002107700039000000000057043500000def0000013d000005290680009c0000125d0000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba043500000c5c0000613d000000070d000029000000f806d00210000004fa0c000041000000000d0d004b000000000c06c0190000052a06b001970000000006c6019f00000000006a0435000000400600043d000000200b600039000000000a030433000000000c0a004b00000cd40000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b00000ccd0000413d0000000003ba0019000000000003043500000000036a0019000000200b300039000000000a040433000000000c0a004b00000ce30000613d000000000c000019000000000dbc0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dac004b00000cdc0000413d0000000004ba0019000000000004043500000000033a0019000000200a3000390000000004050433000000000b04004b00000cf20000613d000000000b000019000000000cab0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b00000ceb0000413d0000000005a400190000000000050435000000000334001900000020053000390000000004070433000000000a04004b00000d010000613d000000000a000019000000000b5a0019000000200aa00039000000000c7a0019000000000c0c04330000000000cb0435000000000b4a004b00000cfa0000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000704004b00000d100000613d0000000007000019000000000a5700190000002007700039000000000b970019000000000b0b04330000000000ba0435000000000a47004b00000d090000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000704004b00000d1f0000613d000000000700001900000000095700190000002007700039000000000a870019000000000a0a04330000000000a90435000000000947004b00000d180000413d000000000554001900000000000504350000000003630049000000000334001900000000003604350000003f04300039000000200300008a000000000434016f0000000007640019000000000447004b00000000040000190000000104004039000004f90570009c0000125d0000213d00000001044001900000125d0000c13d000000400070043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000004fa08000041000000000954004b00000000090000190000000009088019000004fa05500197000004fa0a400197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000805400029000000000451034f000000000404043b000004f90840009c000001220000213d00000000084200490000002005500039000004fa09000041000000000a85004b000000000a000019000000000a092019000004fa08800197000004fa0b500197000000000c8b004b000000000900801900000000088b013f000004fa0880009c00000000090ac019000000000809004b000001220000c13d000000010840008c000011ad0000c13d000000000851034f000000000808043b000000010900008a000004fa0a000041000000000998004b000000000900001900000000090a2019000004fa08800197000004fa0b80009c000000000a008019000004fa08800167000004fa0880009c000000000a09c019000000600800003900000000090a004b0000120e0000c13d000005290870009c0000125d0000213d0000004008700039000000400080043f00000020087000390000052c0900004100000000009804350000000108000039000000000087043500000000080700190000120e0000013d000000f807900210000004fa0c000041000000000909004b000000000c07c0190000052a07b001970000000007c7019f00000000007a0435000000400a00043d0000052907a0009c0000125d0000213d000000070c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a000390000052d0b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000700000007001d000000800b70008c00000e500000413d0000000707000029000000800b7002700000052b0c70009c000000000b07a0190000052b0c70009c000000000c000019000000100c002039000000080dc001bf000004f90eb0009c000000000d0ca019000000400cb00270000004f90eb0009c000000000c0ba019000000040ed001bf000004f10bc0009c000000000e0da019000000200dc00270000004f10bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000500000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d004039000004f90ec0009c0000125d0000213d000000010dd001900000125d0000c13d0000004000c0043f0000000507000029000000020c700039000000000cc90436000000210d700039000000050dd0027200000dca0000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b00000dc20000413d000000000700004b00000dcc0000613d0000000007090433000000000707004b00000c5c0000613d00000000070c04330000052a07700197000000050d000029000000f80bd0021000000000077b019f0000052c0770004100000000007c04350000000307d00210000000f807700089000000070b7001ef000000ff0770008c000000000b00201900000021079000390000000000b7043500000e630000013d0000000208000029000005290880009c0000125d0000213d00000002090000290000004008900039000000400080043f000000010800003a00000000088904360000000005500350000000000505043b000000000058043500000c5c0000613d000000f8077002100000052a05500197000000000575019f000004fa055001670000000000580435000000800110008a000000000513034f0000006001000039000000000505043b000000000505004b00000f1f0000c13d000004fa05000041000000000762004b00000000070000190000000007058019000004fa06600197000004fa08200197000000000968004b0000000005008019000000000668013f000004fa0660009c000000000507c019000000000505004b000001220000c13d000000070500002900000000060504330000000505000029000000000705043300000004050000290000000008050433000000030500002900000000090504330000000205000029000000000a0504330000000805200029000000000253034f000000000202043b000004f90b20009c000001220000213d000000000b2400490000002005500039000004fa0c000041000000000db5004b000000000d000019000000000d0c2019000004fa0bb00197000004fa0e500197000000000fbe004b000000000c008019000000000bbe013f000004fa0bb0009c000000000c0dc019000000000b0c004b000001220000c13d0000000006670019000000000686001900000000069600190000000006a60019000000000626001900000000070104330000000006760019000000400700043d000004f906600197000000380860008c000010340000413d0000002009600270000004f10860009c000000000906a019000004f10860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a70009c0000125d0000213d000000000898019f0000004009700039000000400090043f000000000943034f000000020480003a00000000044704360000000009900350000000000909043b000000000094043500000c5c0000613d0000052a09900197000000f80a80021000000000099a019f00000530099001c700000000009404350000000304800210000000f80440015f00000000044601cf00000021067000390000000000460435000010440000013d000005290790009c0000125d0000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb043500000c5c0000613d000000070e000029000000f807e00210000004fa0d000041000000000e0e004b000000000d07c0190000052a07c001970000000007d7019f00000000007b0435000000400700043d000000200c700039000000000b030433000000000d0b004b00000e700000613d000000000d000019000000000ecd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ebd004b00000e690000413d0000000003cb0019000000000003043500000000037b0019000000200c300039000000000b040433000000000d0b004b00000e7f0000613d000000000d000019000000000ecd0019000000200dd00039000000000f4d0019000000000f0f04330000000000fe0435000000000ebd004b00000e780000413d0000000004cb0019000000000004043500000000033b0019000000200b3000390000000004050433000000000c04004b00000e8e0000613d000000000c000019000000000dbc0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000d4c004b00000e870000413d0000000005b400190000000000050435000000000334001900000020053000390000000004060433000000000b04004b00000e9d0000613d000000000b000019000000000c5b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c4b004b00000e960000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000604004b00000eac0000613d0000000006000019000000000b5600190000002006600039000000000c860019000000000c0c04330000000000cb0435000000000b46004b00000ea50000413d000000000554001900000000000504350000000003340019000000200530003900000000040a0433000000000604004b00000ebb0000613d000000000600001900000000085600190000002006600039000000000ba60019000000000b0b04330000000000b80435000000000846004b00000eb40000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000604004b00000eca0000613d000000000600001900000000085600190000002006600039000000000a960019000000000a0a04330000000000a80435000000000846004b00000ec30000413d000000000554001900000000000504350000000003730049000000000334001900000000003704350000003f04300039000000200300008a000000000434016f0000000006740019000000000446004b00000000040000190000000104004039000004f90560009c0000125d0000213d00000001044001900000125d0000c13d000000400060043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000004fa08000041000000000954004b00000000090000190000000009088019000004fa05500197000004fa0a400197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000805400029000000000451034f000000000404043b000004f90840009c000001220000213d00000000084200490000002005500039000004fa09000041000000000a85004b000000000a000019000000000a092019000004fa08800197000004fa0b500197000000000c8b004b000000000900801900000000088b013f000004fa0880009c00000000090ac019000000000809004b000001220000c13d000000010840008c000011d50000c13d000000000851034f000000000808043b000000010900008a000004fa0a000041000000000998004b000000000900001900000000090a2019000004fa08800197000004fa0b80009c000000000a008019000004fa08800167000004fa0880009c000000000a09c019000000600800003900000000090a004b0000125a0000c13d000005290860009c0000125d0000213d0000004008600039000000400080043f00000020086000390000052c0900004100000000009804350000000108000039000000000086043500000000080600190000125a0000013d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400200043d000000000101043b000000800310008c00000fcb0000413d00000080031002700000052b0410009c000000000301a0190000052b0410009c0000000004000019000000100400203900000008054001bf000004f90630009c000000000504a0190000004004300270000004f90630009c000000000403a01900000004035001bf000004f10640009c000000000305a0190000002006400270000004f10540009c000000000604a01900000002053001bf0000ffff0460008c000000000503a0190000001003600270000000000306a019000000ff0330008c00000001055020390000004103500039000000010330017f0000000003320019000000000423004b00000000040000190000000104004039000004f90630009c0000125d0000213d00000001044001900000125d0000c13d000000400030043f00000002035000390000000006320436000000020300036700000000040000310000002107500039000000050770027200000f640000613d000000000843034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f5c0000413d000000000700004b00000f660000613d0000000007020433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000015101cf000000ff0550008c0000000001002019000000210520003900000fde0000013d000004f103000041000004f10520009c00000000020380190000004002200210000004f10540009c00000000040380190000006004400210000000000224019f000004f10410009c0000000001038019000000c001100210000000000112019f000000080200002913bf13ab0000040f000700600000003d000600800000003d000000010220018f00030000000103550000006001100270000104f10010019d000004f10310019800000fb90000613d0000003f01300039000000200400008a000000000141016f000000400400043d0000000001140019000700000004001d000000000441004b00000000040000190000000104004039000004f90510009c0000125d0000213d00000001044001900000125d0000c13d000000400010043f0000001f0130018f000000070400002900000000083404360000000304000367000000050330027200000fa90000613d000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000635004b00000fa10000413d000600000008001d000000000501004b00000fb90000613d0000000503300210000000000434034f00000006033000290000000301100210000000000503043300000000051501cf000000000515022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000151019f000000000013043500000007010000290000000001010433000000000202004b000010030000c13d000000000201004b0000102f0000c13d000000400300043d000800000003001d000004ff0100004100000000001304350000000401300039000000030200002900000000002104350000002402300039000000090100002913bf13970000040f0000000804000029000009200000013d000005290320009c0000125d0000213d0000004003200039000000400030043f000000010300003a000000000532043600000000040000310000000203000367000000000643034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807100210000004fa08000041000000000101004b000000000807c0190000052a01600197000000000181019f0000000000150435000000400100043d00000020061000390000000005020433000000000705004b00000fec0000613d000000000700001900000000086700190000002007700039000000000927001900000000090904330000000000980435000000000857004b00000fe50000413d00000000026500190000053c060000410000000000620435000000020250003900000000002104350000004102500039000000010520017f0000000002150019000000000552004b00000000050000190000000105004039000004f90620009c0000125d0000213d00000001055001900000125d0000c13d0000000906000029000001c405600039000000400020043f000000000253034f0000000005640049000000230650008a000000000202043b00000df50000013d000000000201004b0000101a0000c13d0000051401000041000000000010043900000008010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c7000080020200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000000101004b000009b20000613d00000007010000290000000001010433000000000201004b000002fc0000613d000004fa02000041000000200310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000001220000c13d00000006010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001220000c13d000000000101004b000002fc0000c13d00000b580000013d000004f102000041000004f10310009c0000000001028019000000060400002900000a200000013d000005290870009c0000125d0000213d0000004008700039000000400080043f000000000843034f000000010400003a00000000044704360000000008800350000000000808043b000000000084043500000c5c0000613d0000052a08800197000000f806600210000000000686019f0000052f066000410000000000640435000000400400043d00000020064000390000000008070433000000000908004b000010510000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b0000104a0000413d000000000768001900000000000704350000000007480019000000200970003900000007080000290000000008080433000000000a08004b000010610000613d000000000a000019000000000b9a0019000000200aa00039000000070ca00029000000000c0c04330000000000cb0435000000000b8a004b0000105a0000413d000000000998001900000000000904350000000007780019000000200970003900000005080000290000000008080433000000000a08004b000010710000613d000000000a000019000000000b9a0019000000200aa00039000000050ca00029000000000c0c04330000000000cb0435000000000b8a004b0000106a0000413d000000000998001900000000000904350000000007780019000000200970003900000004080000290000000008080433000000000a08004b000010810000613d000000000a000019000000000b9a0019000000200aa00039000000040ca00029000000000c0c04330000000000cb0435000000000b8a004b0000107a0000413d000000000998001900000000000904350000000007780019000000200970003900000003080000290000000008080433000000000a08004b000010910000613d000000000a000019000000000b9a0019000000200aa00039000000030ca00029000000000c0c04330000000000cb0435000000000b8a004b0000108a0000413d000000000998001900000000000904350000000007780019000000200970003900000002080000290000000008080433000000000a08004b000010a10000613d000000000a000019000000000b9a0019000000200aa00039000000020ca00029000000000c0c04330000000000cb0435000000000b8a004b0000109a0000413d00000000099800190000000000090435000000000553034f00000000037800190000001f0720018f00000020083000390000000509200272000010b20000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000010aa0000413d000000000a07004b000010c10000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000002230019000000200520003900000000000504350000000003010433000000000703004b000010cf0000613d000000000700001900000000085700190000002007700039000000000917001900000000090904330000000000980435000000000837004b000010c80000413d000000000153001900000000000104350000000001420049000000000113001900000000001404350000003f01100039000000010210017f0000000001420019000000000221004b00000000020000190000000102004039000004f90310009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000004f101000041000004f10260009c000000000601801900000040026002100000000003040433000004f10430009c00000000030180190000006003300210000000000223019f0000000003000414000004f10430009c0000000003018019000000c001300210000000000121019f000004fc011001c7000080100200003913bf13b00000040f0000000101200190000001220000613d0000000901000029000000e4041000390000000201000367000000000241034f000000000202043b000004fb02200198000500000004001d000011100000c13d000000800240008a000000000321034f000000400240008a000000000521034f000000000403043b000000000505043b00000000634500a9000000000605004b000011060000613d00000000655300d9000000000445004b0000110c0000c13d0000008002200039000000000121034f000000000101043b000700000031001e0000110c0000413d000011150000013d0000054201000041000000000010043500000011010000390000003c0000013d00000009020000290000012402200039000000000121034f000000000101043b000700000001001d0000053d01000041000000000010043900000006010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c70000800a0200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000070110006b000011310000a13d000000400100043d00000064021000390000054003000041000000000032043500000044021000390000054103000041000000000032043500000024021000390000002203000039000001000000013d000000000001042f0000000003000031000000090130006a000000230410008a000000050100002900000100011000390000000202000367000000000112034f000000000101043b000004fa05000041000000000641004b00000000060000190000000006058019000004fa04400197000004fa07100197000000000847004b0000000005008019000000000447013f000004fa0440009c000000000506c019000000000405004b000001220000c13d0000000804100029000000000142034f000000000101043b000004f90510009c000001220000213d00000000061300490000002005400039000004fa04000041000000000765004b00000000070000190000000007042019000004fa06600197000004fa08500197000000000968004b0000000004008019000000000668013f000004fa0660009c000000000407c019000000000404004b000001220000c13d0000003f04100039000000200600008a000000000664016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000004f90860009c0000125d0000213d00000001077001900000125d0000c13d000000400060043f00000000041404360000000006510019000000000336004b000001220000213d000000000352034f0000001f0210018f0000000505100272000011780000613d000000000600001900000005076002100000000008740019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000011700000413d000000000602004b000011870000613d0000000505500210000000000353034f00000000055400190000000302200210000000000605043300000000062601cf000000000626022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000262019f0000000000250435000000000114001900000000000104350000053e01000041000000400200043d0000000000120435000004f101000041000004f10320009c000000000201801900000040012002100000053f011001c7000013c00001042e0000001f0430018f00000005023002720000119d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000011960000413d000000000504004b000011ab0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013c100010430000000380840008c000011fd0000413d0000002009400270000004f10840009c000000000904a019000004f10840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a70009c0000125d0000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d0000052a0aa00197000000f80b800210000000000aab019f0000052e0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf0000002109700039000000000089043500000000080700190000120e0000013d000000380840008c000012490000413d0000002009400270000004f10840009c000000000904a019000004f10840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a60009c0000125d0000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d0000052a0aa00197000000f80b800210000000000aab019f0000052e0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf0000002109600039000000000089043500000000080600190000125a0000013d000005290870009c0000125d0000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a4002100000052a099001970000000009a9019f000004fa0990016700000000009804350000000008070019000000400700043d000005290970009c0000125d0000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b9043500000c5c0000613d0000052a02b001970000052f0a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d000004f909900197000000380d90008c000012990000413d000000200d900270000004f10c90009c000000000d09a019000004f10c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005290ea0009c0000125d0000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c5c0000613d000000f80bc0021000000000022b019f00000530022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000012a60000013d000005290860009c0000125d0000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a4002100000052a099001970000000009a9019f000004fa0990016700000000009804350000000008060019000000400600043d000005290960009c000012610000a13d0000054201000041000000000010043500000041010000390000003c0000013d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b9043500000c5c0000613d0000052a02b001970000052f0a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d000004f909900197000000380d90008c000013130000413d000000200d900270000004f10c90009c000000000d09a019000004f10c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005290ea0009c0000125d0000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c5c0000613d000000f80bc0021000000000022b019f00000530022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000013200000013d000005290da0009c0000125d0000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c5c0000613d000000f809900210000000000229019f0000052f0220004100000000002d0435000000400200043d0000002009200039000005310b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000012b60000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000012af0000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b060433000000000d0b004b000012c50000613d000000000d000019000000000ecd0019000000200dd00039000000000f6d0019000000000f0f04330000000000fe0435000000000ebd004b000012be0000413d0000000006cb001900000000000604350000000006ab0019000000210b600039000000000a080433000000000c0a004b000012d40000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000012cd0000413d0000000008ba00190000000000080435000000000551034f00000000016a00190000001f0640018f0000002108100039000000050a400272000012e50000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000012dd0000413d000000000b06004b000012f40000613d000000050aa002100000000005a5034f0000000008a800190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004070433000000000604004b000013020000613d000000000600001900000000085600190000002006600039000000000a760019000000000a0a04330000000000a80435000000000846004b000012fb0000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b00000000030000190000000103004039000004f90410009c0000125d0000213d00000001033001900000138c0000613d0000125d0000013d000005290da0009c0000125d0000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c5c0000613d000000f809900210000000000229019f0000052f0220004100000000002d0435000000400200043d0000002009200039000004fc0b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000013300000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013290000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b070433000000000d0b004b0000133f0000613d000000000d000019000000000ecd0019000000200dd00039000000000f7d0019000000000f0f04330000000000fe0435000000000ebd004b000013380000413d0000000007cb001900000000000704350000000007ab0019000000210b700039000000000a080433000000000c0a004b0000134e0000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013470000413d0000000008ba00190000000000080435000000000551034f00000000017a00190000001f0740018f0000002108100039000000050a4002720000135f0000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013570000413d000000000b07004b0000136e0000613d000000050aa002100000000005a5034f0000000008a800190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004060433000000000704004b0000137c0000613d000000000700001900000000085700190000002007700039000000000a670019000000000a0a04330000000000a80435000000000847004b000013750000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b00000000030000190000000103004039000004f90410009c0000125d0000213d00000001033001900000125d0000c13d000000400010043f000004f101000041000004f10390009c000000000901801900000040039002100000000002020433000004f10420009c00000000020180190000006002200210000000000232019f000010e80000013d00000000030104330000000002320436000000000403004b000013a30000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b0000139c0000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000000001042f000013ae002104210000000102000039000000000001042d0000000002000019000000000001042d000013b3002104230000000102000039000000000001042d0000000002000019000000000001042d000013b8002104210000000102000039000000000001042d0000000002000019000000000001042d000013bd002104230000000102000039000000000001042d0000000002000019000000000001042d000013bf00000432000013c00001042e000013c1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706508c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000100000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe04f766572666c6f770000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f77000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000440000000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000000000000000000000006400000000000000000000000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd8000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000024000000a00000000000000000456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39202bcce700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000ab3bba1f1a146e9cd5aea24ccd3c92113a7bc0e36eeda956634489abb70bfa37", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/EcAdd.yul.zbin b/src/deps/contracts/EcAdd.yul.zbin index d7942db13c9026dbc222195c441d745acd46351a..d24ecc090f5a3109a3421dc49026899c32aca8cc 100644 GIT binary patch literal 4576 zcmc(i3v84{5P)a*fAt99@dl&tR}ck}9EBPmpm&8rfCR6UhY1pkP(kofo*@ljk+%O` zDWo7+6@da81*3@Z0b(MEnpg=4f}#cu0Ybn>Vu%j})Y+ZczwJRGAtp9Cmf78zo!$9n zc7L!z{Ym@@>5Cd{+W_nygl&KAF??Nj8QF}19KF-4ymSoHW&w-KHKOSI` z@)JDQ$lC965rY@8yDLDp8ZQ^VmVJN?dcFX=J@$i$+SrG!rS&TkF*u+^JH8A3fXV`r zgMz5;2Qdb^V1LSvD!-xJiE6uGi#pX01w&v9Ho{42{q!W#3%CVQO!}y&^Kc!cSV0wBF_7W(|W?z>s29AYJW>zYO6zkXdKush=kr>p^0N=Tp-50_?P9S+~f1} zK>H~?@KxN(v&bLem1KX2GPuOY^JX1~_(56oB4mkB+)pv%lKGH6@gZ%BLr$FHV8tj7 zqe%`%Q#?Qx(s@}vor^=`FNP)$Sp|22kX16@34MOF6s07;0We};weHt zNWNx1W|3bZA1s5Mt@jrcG9Q-VIw7P!10yi3Zut1;TT-za2|1oc}MwiN&TBj`^CDa>O+{nF4w zP4lYol2m>#WiF~+=Gx?^%+>l}_0T;0V)zi*T5e^y%&2qNulWV%X5wsIk~njTv-8G| zQ=sjjJc)QEyA5(v-oarGi@B@_?uIf_TC67nmng#2pd)#>{-I7)U|KfRjbm}dQeWpJL=c7l0q z*PTyxvv|Mee#)Z#rko=3a}G(Rjqu_8{W=+OMoM$+n80jl{Hs z8!^U3CXU1d%UBGdl^Vwx6)L_0YZ}EjgA))f$*#m!dSWlWkFGICHEs4 zM0Y(uXiKt%{Pt4gIX=yoF`C~UWwdu#+rvrt1k?UV(PSOFIsH7c7uHLePaK`iusPu#X>THjz}8?wv#>9;BW({HgImciaZ=f0BqA@Ty* zm2tKkC*CE!<5G4F_t#Lr9jR0NS4Vh#m-Eyiu2&fTWlwDvq^^_V8N++VyQ_hx!;N@S z`C@Bs4EG^d%sI$U8qHU{$B=h~1uW*8?up>qxu-lbe4BT||HOUBH|MqDU+1~npRPZg z&&ZRi8zx^&J_Gpt&W>L8ovjj3eQ%|iH^Uu%FKQmcd)3O|4!@*sM?J`HOZ@TtH0M*8 zSNP6T++5901?RWG`@0%*_iyGVz*3SxeKQUi4`old`g>L!XYPa>)9?HM-$QD?q;d7# zD@)XTE2dg;lv8qHNcv7v>z_0{yTtcd{_YI;egrR9pC`CZ zner2yJ2bCg_fW0)6Mw2M1^B*D>ws6t^DUZ>?_>2I1(~N?+^0T|3k`m2`8(sc)Z>W1 zvrDg+-R{4Lhs5j9&OtBu`&~xxBx1_1j6YSe8~?>|f1wC|{gE+vmcB!m7X0 zBZdv_*}ZN=>6>$2t}L4^?mk_7Y~F%HyDHDVab&}qbFB-mVt?5FHQSbT-S^N}!?wOZ ze9@v;Hcnf#`ia`*xwH2CF#Gf^OXQBohj`ZoE~?2{_*jB2K{mG%K5R|YTO~G`nJ1XuBosmOzYgC;+y#$H+Kwfc=gMV zvUWcn>_7Bmcu)=h!SieQ^VV#;X#MZ(H|Z{0csnZB<3;UK|wzi~0PtPT4SrTdYl zR+ycvdyb4BTY_7hz?&j-8bDECd+qnVwuC>{#qq--!x+a@vWyrLvj9OPcVmhw335Cj;~^#IZ@2J8d|E*6tT^NIN1s4$0uv zsK?CnY0ACXj7ssmU&r%7tIFbZrRc*y-CF!F#PQ2GzMuf=Q2U#p-0RIe$~U4GfO5AU z#}L=y2q%ixLEyoyIDZ#Fv#}Eb-^yfnPNm>SI6VU(X`bg)NOA~pgw`u?r{O%Pau?^& zY=HZ4>{*q9S8xP>nlko*n}+2yE+zfo0$hW#av_a&;`1dW_q2w*FR0*sUIXv**780K zG41nYpSOnO-gd@|+M9U4yMyNQe%izZazUEx2Gt_;Rc z_y-v$XcC+z#_W?KG(u`9l9av zS6J-C_mvz!@T-_lPKx92Ea3P%VwWTFcWTM+p4M{aQ80Uge3yJ#zB}7VU*1n~9)c9- z!LfXwCw#A-Am7=(iSu3j`CsvU!vgk4OT5uv;=A6)@y5Im-?hYBSCd>2eit@KzYuwd z?=lbi4vwc&#CON?JrurkKLkA%-{raGyPi#YL06HTC&%Cwo)E(K@=^J&Jmw|#*knW$7oH1x)%8j{(NJnT58W7Z}tdTA+L%5 zt-}AHc0xSvX%CtIu?4)(mp<%oTedooft@f&zw(8l=>zRmlF`v9LW zK?m*Y-7R$^Be>l(pZC(7PunkC&L^ysb0Yo)#z}NB&RG3B&gVhz3id0K5j3AudCUWy zNB&6Oz=~PSXTL^pLdNl*7(EVNEBn(d^(iALj!z!@FrRz2A4?x-p3FGGT)`=qxE&om zZhkxA6f#|WK4jXYU+v|%#o8Dr-p2hVkaKUxGRAS{GY-a;>eIQGajxixH!#jt_NTBz z@+2}?JCYLDq~u?5Jw=OnJ?MJ2%Mt%w>%S8k9_5`Tw%2X4{V_}PSTz(csT0sHt?zSz z=KG~S25jCeKlG;w4;-pzRd4G=CCSgLY<(7;XE?7+9S+ysY>H2D-8EW$UZc^cP?mZp z{g=rj>tCV0RF~}%m)IK4!-VT=E$Keqs>wtQC$`qCH^9Vvx=Tab+%p>k(}2lsRKSIKs#BggE8u+59^igaZ(Qh zc;7Sc1>kUdx)i+B&JjMr%#^*Mb2Z~kSdCQ6pmd81T_kwJMb%b==g zeKdt-7ti%M=6OxX>vf9PSD}phj*vby7GHfRZ(5DO@y6P}i1l$j8a{cle+k#6eJ*x_ z;yAM1s1)D&2oL*_$(Qv9l;P2^>?pK<$nRl0(M+1}mUvh{JzQe^HTMP5D}FoH53vjM ze8w?xpn4Gh@q%jNZ1r0I0mA=yzv!uBK7lVhRKi1iZy+9`y~IQNJ`qeK8Kz5}x$C6g z$a#tNK>LtCw9mfx#p_7!spGyrZajQnFnXXx>N2s4@k->JN#qzWA$SRUe|UoS_5OtY zi(~}nD9z{b9$ANKa|x*nNBT^s+@DLn#yF)}uFH~Bj8h^wC4y7(Jn5V8x!Lg^*MD5% zS1R#~pJbf4;Mn&?>94&9IDV0gp!TyrSRLd~+@6EdXAa0cpmYWMb5+Rxl>U)%N(HA> z{6TyZ@4{e~?*TGG;uPbQWEltJLVY1o5>kG0H%UJ$iktT$;}rKZZ$0DuhR=h-@heMUQeFUx(v-goWuq3?h`eJ|C| zSf2ZMZjt{f`u-BheFYrd$Ma3vd{0$Qibm}>(K_IL`saeD{01|xqanQ>>-EyC7wgX0 z39iR_J<;o?i}cby{j9y$`1BsEUzG2lkuQ1zdS6C;ewy-t_fyI%zBl8j2hrq(2p7qB z8VKzDQ`S56!h;nwDtzBC@jE^256MTxA56EA%{`3lhvd}%N51tr^tcA?e3QRF>+?9K zj9o=P(;+VZr7<2ua;oLFZRh7^=NxZX^4zXn>%M+)*XI2jw+`NabGWba?A;$O_0K-G zb?|uY%w@lr@lm4gyYD`G;hM>3mZ%RdUH7l`EARW~-dmO}t**-6()r6BKi$){UEOrC z^?du?XZrSBdg|R#_1K^Z*){1tIT}zXTKYW^?x(-(wV!40yX>x t#&7ud=jyLya zL@eThWk^M3K^chn6Q@;y{soJr`_lIa2~kw)PnAirb;cP-9V<+G-}%m6BrVe}GdbLQ z&pqedbG~!#xlc$D{S5UFH2N#eE2FTM^TN17oTBCfnHJ*|E!%0*uQrsTd2z*Y;#ozcoumEXyfp3enF?b* z_N#rg-{Ji>@1K7X_B(mnFANiQ-JgM7ZUJ_!!q{I0`ND03T%!QF@dE5JT-en%407W| z*tIc7^1{sp*vDgGZz4H407EZ%gsTqYm?l-&hva8^R`3tyB!q}<%jM#=pK*l ziDO;M7502OU!#tL&GEByh@Ty!^~)I-Zzu>Ux#p=tTIVbIX*E`HQh#f#21U~fDT<0e z4d9b@lUT0i71jt}3JF%d8mC3Z`hlVY_xN9v9~m zYCVd7kHurf6peeCPk0y$jzhSW{mxV-IuP&pTG|)5Mff#QWPis?kvthM7&VF-3DDkT z2m7D-k_qAy+wP%whi?@TU#2qE4Lyn9k{+?{zCpArd&N7)gL=_T^`%z!Y=;~j+?Upe6kyQ6~3bSE+peB&T&)m zqxm@E5*P#I8oI8GfIPh(XT7{G9ptr)H7O2Z%n)Kd)qlsOebQ~Bd*}vTk6fz1avqJN zdrOMbBKtOvgkKqtqHFO{eionHg>lvU$TwL{^2NGQnAdf9W(VT&GN`bBLwveE1j!uy zlE^Vm>{5g)zXkO}*bftbpw=mFs!o%i65tD4x*@+MM^xA=V29fU+^V`9?F%#xU9W(A zVRxv)FDF?b z9P+xbUxz%6!{pI86!uTKP68(pu1Su~b#miIoLA>lYb(ZF2W3Kt5mDS&pRe^=J6Z1l zzb4qPKVJ(uoNwZn7h%lzZTLFlfT^&3lBeri_zdFbGZj`l^l7|%d=AFDKcD?;H-k^d z+hu%kyu*eJ{K`~VQ^2qBs`(kO!dd|TvAjU9TTX%UwVLzKVS5}&@r^by;z zPumfeJ86HNUqU~jXw?4;uZ!gQ+gLvLOF_H@`NDiL z#dhibDDedBPV)YN{ZnEm;?C=VUQZzZ#QrV7v#yWUB=!U6gRXlX=ff7}=R6Cl3b5NM z!0syULna=CT#bv>Iry8YFdu^+g@Z__G4&0~y%SrsX_Na(tc_W((|c*)EM&7k2s6AnypSyP?VE=VhGvYsbTn z{2mSY9a?#hN`8;3Y$3bs8rW;d66L2%Qyv*MXs@ad#3z~0;rh@r8hW_iiuOqu>w0{` zcQKYV$j?Nc} zl%EdXyT0ygT<(L8@g5Bv#<_kMJHWYgb99bC%}0Le^Kv*xob$lFhT@~w%c@@@JXF?K zAwPM4px51aA@aXyZ$8?O#al zmQ$g}9DoZGxDX@x9^`tf{p{=fwvksd4*&G(x@xn3xUPmRoR<$~DK6oX8pK`4#cm}# zD*e8^6Lz_5m$Hxi>B265B;*J=3VhWiK7R>()m(24#*xYP7{GC$&ug(8;yqBw$8WBy?*O;bcYx?UV2IPycovPN8smLnsQ-?r%&S?&8r{3< zivxdmsQIto9faCAMRA3->_?{hT^vZpjmfyt-AVxMGX6;laWQmw}`)kNGBVOg|F^~h~L1v>H{)HK9Xx?BWg6W zT=zAIV^Si8|-vds4$2;Yy#z> zueG{*85#zL6&)|2Tid zC1+x+@5?LF$OERr(0vrg&*u19$oqlu7IHY@Ft7*U)z)~mXiAFReoo)Jvye|d zQ(@1BT#NH3#`$B}rRZFe`#2-U{T%zdtn=Q95ucdN_l1h%7`0Ed9gp+tKKuCL80-7O z(}dzE+3j>nz%>TbI2>D!wZG@j=*|NWfLcO}O5Uf1x*>yM_M zTzA2ZL&iSw`{y3L;jUGO4qraL`|!DcsT(@?K>u~kjlKPcy{C2`_eE?%I4-sL%fX}09+PkDK5_p!!`{huK6ids=gSj+^}Pd)Pt`Og zZoPQX)0IFS`Hza<|Nnca=gpNeKJli{V}A|%C%?O3`L&Z@S$E$u=g=kB@7^?Y(1rg7 DcA)kt literal 9952 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 diff --git a/src/deps/contracts/Ecrecover.yul.zbin b/src/deps/contracts/Ecrecover.yul.zbin index 6ea478387af40eea1b659a5bfcb44d40e0f18ce2..4d29c9a7ecbef85976029ee16dfc91ffdc39da6f 100644 GIT binary patch delta 45 zcmV+|0Mh@U1fT?v!T}qx!#x2YDO}Q!%$fWcy|=uz7}^O&qr30ONE91_nkJ1;zMQVuJ9U85j~ld{!m{h8`g8JTb@I zM3I4EAw&^GP!p<%8LCJR%4dOT0vbBGpHU`|nTdhH5M(+tgw_UH3^E8L;0>hApc)yG zG=k(=m>8JT!RnY;tU)wXzscktMtM#UPZB6-2ITq6Ix;Xcg7hc=&9DU0EKCYuy(}yS z%;}Suv>7cX>oCbP`b_p=l2;XFWMBYl09ww-0(3Ql7f`(s65j_XZZLTwllJ5VOq`SV pFsUeP*|F51p7-ou+3uUK`qn<`{MVZE>?ym7+*vKdlch<0Qvlm~HuwMl literal 800 zcma))zb^z)5Xa}uo1_M*cQ3Y_GQM1%r`QgT;_J4yR3n3@3aF70(1N3&fW{tTZ<~Zq!3mR? zTa8L;ZonO){yNC)^)^vQb%k@f0-<}VQ%*Pmi8Go445zfBT1du}v>`R@CY;NN9(-M2 zXExNe;r(LJQuJ{?3`SVcau~spGO4NzaW2I*PyMW-we}+k9geq-WuF@?tF+uzjeE(eq||8ynhaJP~F{A)B1C< zUW2IR?ghVy-V<&_@GStZ51@0%6dH45Ph=BJ(FvqUL|WiJ^5#Hz5PZ9Vj^`2j-}=Eq vrvG<~BTd)4(0@LC_P?jI?)l@<<^0T7?|%8^>9z6PzN@~!buX?z&W?WpQ_4D4 diff --git a/src/deps/contracts/ImmutableSimulator.json b/src/deps/contracts/ImmutableSimulator.json index 42fbdcb4..c273b163 100644 --- a/src/deps/contracts/ImmutableSimulator.json +++ b/src/deps/contracts/ImmutableSimulator.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "ImmutableSimulator", - "sourceName": "cache-zk/solpp-generated-contracts/ImmutableSimulator.sol", + "sourceName": "contracts-preprocessed/ImmutableSimulator.sol", "abi": [ { "inputs": [ @@ -58,8 +58,8 @@ "type": "function" } ], - "bytecode": "0x0002000000000002000700000000000200010000000103550000006001100270000000390010019d0000008001000039000000400010043f0000000101200190000000380000c13d0000000001000031000000040110008c000000770000413d0000000101000367000000000101043b000000e0011002700000003b0210009c000000400000613d0000003c0110009c000000770000c13d0000000001000416000000000101004b000000770000c13d000000040100008a00000000011000310000003d02000041000000400310008c000000000300001900000000030240190000003d01100197000000000401004b000000000200a0190000003d0110009c00000000010300190000000001026019000000000101004b000000770000c13d00000004010000390000000101100367000000000101043b0000003e0210009c000000770000213d0000000000100435000000200000043f000000000100001900e000c90000040f00000024020000390000000102200367000000000202043b0000000000200435000000200010043f000000000100001900e000c90000040f000000000101041a000000800010043f0000004501000041000000e10001042e0000000001000416000000000101004b000000770000c13d0000002001000039000001000010044300000120000004430000003a01000041000000e10001042e0000000001000416000000000101004b000000770000c13d0000000001000031000000040210008a0000003d03000041000000400420008c000000000400001900000000040340190000003d02200197000000000502004b000000000300a0190000003d0220009c00000000020400190000000002036019000000000202004b000000770000c13d00000001020003670000000403200370000000000303043b000300000003001d0000003e0330009c000000770000213d0000002403200370000000000303043b0000003f0430009c000000770000213d00000023043000390000003d05000041000000000614004b000000000600001900000000060580190000003d071001970000003d04400197000000000874004b0000000005008019000000000474013f0000003d0440009c00000000040600190000000004056019000000000404004b000000770000c13d0000000404300039000000000242034f000000000202043b000200000002001d0000003f0220009c000000770000213d000000240330003900000002020000290000000602200210000100000003001d0000000002320019000000000112004b000000790000a13d0000000001000019000000e2000104300000000001000411000080060110008c000000b40000c13d0000000201000029000000000101004b000000b20000613d00008010040000390000000002000019000700000004001d000500000002001d00000006012002100000000102000029000000000121001900000020021000390000000103000367000000000223034f000000000113034f000000000101043b000600000001001d000000000102043b000400000001001d00000003010000290000000000100435000000200000043f00000039010000410000000002000414000000390320009c0000000001024019000000c00110021000000044011001c7000000000204001900e000db0000040f0000000102200190000000770000613d000000000101043b00000006020000290000000000200435000000200010043f00000039010000410000000002000414000000390320009c0000000001024019000000c00110021000000044011001c7000000070200002900e000db0000040f0000000102200190000000770000613d000000000101043b0000000402000029000000000021041b000000050200002900000001022000390000000201000029000000000112004b0000000704000029000000820000413d0000000001000019000000e10001042e000000400100043d00000064021000390000004003000041000000000032043500000044021000390000004103000041000000000032043500000024021000390000002d030000390000000000320435000000420200004100000000002104350000000402100039000000200300003900000000003204350000003902000041000000390310009c0000000001028019000000400110021000000043011001c7000000e20001043000000039020000410000000003000414000000390430009c0000000003028019000000390410009c00000000010280190000004001100210000000c002300210000000000112019f00000044011001c7000080100200003900e000db0000040f0000000102200190000000d90000613d000000000101043b000000000001042d0000000001000019000000e200010430000000de002104230000000102000039000000000001042d0000000002000019000000000001042d000000e000000432000000e10001042e000000e200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000310ab0898000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff7374656d20636f6e74726163740000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f79657220737908c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000020000000800000000000000000ba4e2ffd1982cc43c10400dea65494b8885fae4d25a39cc204ef5a5a87953deb", - "deployedBytecode": "0x0002000000000002000700000000000200010000000103550000006001100270000000390010019d0000008001000039000000400010043f0000000101200190000000380000c13d0000000001000031000000040110008c000000770000413d0000000101000367000000000101043b000000e0011002700000003b0210009c000000400000613d0000003c0110009c000000770000c13d0000000001000416000000000101004b000000770000c13d000000040100008a00000000011000310000003d02000041000000400310008c000000000300001900000000030240190000003d01100197000000000401004b000000000200a0190000003d0110009c00000000010300190000000001026019000000000101004b000000770000c13d00000004010000390000000101100367000000000101043b0000003e0210009c000000770000213d0000000000100435000000200000043f000000000100001900e000c90000040f00000024020000390000000102200367000000000202043b0000000000200435000000200010043f000000000100001900e000c90000040f000000000101041a000000800010043f0000004501000041000000e10001042e0000000001000416000000000101004b000000770000c13d0000002001000039000001000010044300000120000004430000003a01000041000000e10001042e0000000001000416000000000101004b000000770000c13d0000000001000031000000040210008a0000003d03000041000000400420008c000000000400001900000000040340190000003d02200197000000000502004b000000000300a0190000003d0220009c00000000020400190000000002036019000000000202004b000000770000c13d00000001020003670000000403200370000000000303043b000300000003001d0000003e0330009c000000770000213d0000002403200370000000000303043b0000003f0430009c000000770000213d00000023043000390000003d05000041000000000614004b000000000600001900000000060580190000003d071001970000003d04400197000000000874004b0000000005008019000000000474013f0000003d0440009c00000000040600190000000004056019000000000404004b000000770000c13d0000000404300039000000000242034f000000000202043b000200000002001d0000003f0220009c000000770000213d000000240330003900000002020000290000000602200210000100000003001d0000000002320019000000000112004b000000790000a13d0000000001000019000000e2000104300000000001000411000080060110008c000000b40000c13d0000000201000029000000000101004b000000b20000613d00008010040000390000000002000019000700000004001d000500000002001d00000006012002100000000102000029000000000121001900000020021000390000000103000367000000000223034f000000000113034f000000000101043b000600000001001d000000000102043b000400000001001d00000003010000290000000000100435000000200000043f00000039010000410000000002000414000000390320009c0000000001024019000000c00110021000000044011001c7000000000204001900e000db0000040f0000000102200190000000770000613d000000000101043b00000006020000290000000000200435000000200010043f00000039010000410000000002000414000000390320009c0000000001024019000000c00110021000000044011001c7000000070200002900e000db0000040f0000000102200190000000770000613d000000000101043b0000000402000029000000000021041b000000050200002900000001022000390000000201000029000000000112004b0000000704000029000000820000413d0000000001000019000000e10001042e000000400100043d00000064021000390000004003000041000000000032043500000044021000390000004103000041000000000032043500000024021000390000002d030000390000000000320435000000420200004100000000002104350000000402100039000000200300003900000000003204350000003902000041000000390310009c0000000001028019000000400110021000000043011001c7000000e20001043000000039020000410000000003000414000000390430009c0000000003028019000000390410009c00000000010280190000004001100210000000c002300210000000000112019f00000044011001c7000080100200003900e000db0000040f0000000102200190000000d90000613d000000000101043b000000000001042d0000000001000019000000e200010430000000de002104230000000102000039000000000001042d0000000002000019000000000001042d000000e000000432000000e10001042e000000e200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000310ab0898000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff7374656d20636f6e74726163740000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f79657220737908c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000020000000800000000000000000ba4e2ffd1982cc43c10400dea65494b8885fae4d25a39cc204ef5a5a87953deb", + "bytecode": "0x00010000000000020007000000000002000000000701034f00000000000703550000008001000039000000400010043f000000000107001900000060011002700000002f0110019700000001022001900000002d0000c13d000000040210008c0000005c0000413d000000000207043b000000e002200270000000310320009c000000350000613d000000320220009c0000005c0000c13d0000000002000416000000000202004b0000005c0000c13d000000040110008a000000400110008c0000005c0000413d0000000401700370000000000101043b000000330210009c0000005c0000213d0000000000100435000000200000043f0000000001000019000700000007035300b800a10000040f000000070200035f0000002402200370000000000202043b0000000000200435000000200010043f000000000100001900b800a10000040f000000000101041a000000800010043f0000003b01000041000000b90001042e0000000001000416000000000101004b0000005c0000c13d0000002001000039000001000010044300000120000004430000003001000041000000b90001042e0000000002000416000000000202004b0000005c0000c13d000000040210008a000000400220008c0000005c0000413d0000000402700370000000000202043b000300000002001d000000330220009c0000005c0000213d0000002402700370000000000202043b000000340320009c0000005c0000213d00000023032000390000003504000041000000000513004b000000000500001900000000050480190000003503300197000000000603004b0000000004008019000000350330009c000000000405c019000000000304004b0000005c0000c13d0000000403200039000000000337034f000000000303043b000200000003001d000000340330009c0000005c0000213d000100240020003d000000020200002900000006022002100000000102200029000000000112004b0000005e0000a13d0000000001000019000000ba000104300000000001000411000080060110008c000000950000c13d000000020100006b000000930000613d0000002f0400004100008010050000390000000002000019000700000005001d000500000002001d00000006012002100000000101100029000000200210003900000000022003670000000001100367000000000101043b000600000001001d000000000102043b000400000001001d00000003010000290000000000100435000000200000043f00000000010004140000002f0210009c0000000001048019000000c0011002100000003a011001c7000000000205001900b800b30000040f00000001022001900000005c0000613d000000000101043b00000006020000290000000000200435000000200010043f00000000010004140000002f0210009c0000002f01008041000000c0011002100000003a011001c7000000070200002900b800b30000040f00000001022001900000005c0000613d000000000101043b0000000402000029000000000021041b00000005020000290000000102200039000000020120006c0000002f040000410000000705000029000000670000413d0000000001000019000000b90001042e0000003601000041000000800010043f0000002001000039000000840010043f0000002d01000039000000a40010043f0000003701000041000000c40010043f0000003801000041000000e40010043f0000003901000041000000ba000104300000002f020000410000002f0310009c000000000102801900000000030004140000002f0430009c0000000003028019000000c0023002100000004001100210000000000121019f0000003a011001c7000080100200003900b800b30000040f0000000102200190000000b10000613d000000000101043b000000000001042d0000000001000019000000ba00010430000000b6002104230000000102000039000000000001042d0000000002000019000000000001042d000000b800000432000000b90001042e000000ba00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000310ab089000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f7965722073797374656d20636f6e74726163740000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000000200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000080000000000000000022e0bf7ab6a86468900d37f79d72f447fa3eeb722547333c70544210b6ca771f", + "deployedBytecode": "0x00010000000000020007000000000002000000000701034f00000000000703550000008001000039000000400010043f000000000107001900000060011002700000002f0110019700000001022001900000002d0000c13d000000040210008c0000005c0000413d000000000207043b000000e002200270000000310320009c000000350000613d000000320220009c0000005c0000c13d0000000002000416000000000202004b0000005c0000c13d000000040110008a000000400110008c0000005c0000413d0000000401700370000000000101043b000000330210009c0000005c0000213d0000000000100435000000200000043f0000000001000019000700000007035300b800a10000040f000000070200035f0000002402200370000000000202043b0000000000200435000000200010043f000000000100001900b800a10000040f000000000101041a000000800010043f0000003b01000041000000b90001042e0000000001000416000000000101004b0000005c0000c13d0000002001000039000001000010044300000120000004430000003001000041000000b90001042e0000000002000416000000000202004b0000005c0000c13d000000040210008a000000400220008c0000005c0000413d0000000402700370000000000202043b000300000002001d000000330220009c0000005c0000213d0000002402700370000000000202043b000000340320009c0000005c0000213d00000023032000390000003504000041000000000513004b000000000500001900000000050480190000003503300197000000000603004b0000000004008019000000350330009c000000000405c019000000000304004b0000005c0000c13d0000000403200039000000000337034f000000000303043b000200000003001d000000340330009c0000005c0000213d000100240020003d000000020200002900000006022002100000000102200029000000000112004b0000005e0000a13d0000000001000019000000ba000104300000000001000411000080060110008c000000950000c13d000000020100006b000000930000613d0000002f0400004100008010050000390000000002000019000700000005001d000500000002001d00000006012002100000000101100029000000200210003900000000022003670000000001100367000000000101043b000600000001001d000000000102043b000400000001001d00000003010000290000000000100435000000200000043f00000000010004140000002f0210009c0000000001048019000000c0011002100000003a011001c7000000000205001900b800b30000040f00000001022001900000005c0000613d000000000101043b00000006020000290000000000200435000000200010043f00000000010004140000002f0210009c0000002f01008041000000c0011002100000003a011001c7000000070200002900b800b30000040f00000001022001900000005c0000613d000000000101043b0000000402000029000000000021041b00000005020000290000000102200039000000020120006c0000002f040000410000000705000029000000670000413d0000000001000019000000b90001042e0000003601000041000000800010043f0000002001000039000000840010043f0000002d01000039000000a40010043f0000003701000041000000c40010043f0000003801000041000000e40010043f0000003901000041000000ba000104300000002f020000410000002f0310009c000000000102801900000000030004140000002f0430009c0000000003028019000000c0023002100000004001100210000000000121019f0000003a011001c7000080100200003900b800b30000040f0000000102200190000000b10000613d000000000101043b000000000001042d0000000001000019000000ba00010430000000b6002104230000000102000039000000000001042d0000000002000019000000000001042d000000b800000432000000b90001042e000000ba00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000310ab089000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f7965722073797374656d20636f6e74726163740000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000000200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000080000000000000000022e0bf7ab6a86468900d37f79d72f447fa3eeb722547333c70544210b6ca771f", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/Keccak256.yul.zbin b/src/deps/contracts/Keccak256.yul.zbin index 143dd2afd4d5ef9ba436a1f3c091f2643e6811f1..d17251ffad622c452e50ef7ee58f09b622d11de4 100644 GIT binary patch literal 480 zcmZQzU|?iYV4T3fz#ziFaL^V=Col;x2>@wMp!jqk?Z7O+Q~;#8SPZ~?1|}!Q`9MB5 zGmLKp=JNp69|wvjFhbQc3V_vj7z!{-0mU^81sG0(Xhs1BOCZg_D8!-wrWqN$fwUyl zeg;M`n?aU=k;MQgt^ni%)dNWZ7H1%>z`y{a890CUCuw7_^Ant!4z#@!O2%ma9azJn31q#TrLcfw@{Ni3doV;S^q-EEq%07wx TsMGnoOGL5n#jKLchj#z~6VWhM literal 992 zcmb7BJxg3c6g_v|d+XXgbmL}sO`K&RT8Mcn1`?4dX+jiqn?SnVMkHxeY^>30u zgp`6!{ze2zuu73Xkyfj8$(cKESN8)+rkFGL+^=)*06-up5Ncs!Hi@}lQ9cvJSUDk% z0~ZU#u_%#aVq_AtO^kuM{e zEXPu$-4v@ja}w*GA;Y@AhOw&aS-S6sX+NN%y4;Maw~H5U=@aYbgVr1~8ecN8?ytbQ zOY|4{pYC6q(_Y8d!24k;x}S;Z7+3U{826nB849hU=>NPley)obkcQvb~Sz9(|bYws7)Px4)^^^W=_ ole2gE53?U{evTGi9IWmJ-%gQTzuu_i-_PxQIsCPG`OcpI1+QL3JOBUy diff --git a/src/deps/contracts/KnownCodesStorage.json b/src/deps/contracts/KnownCodesStorage.json index b7633d99..6c4a8f33 100644 --- a/src/deps/contracts/KnownCodesStorage.json +++ b/src/deps/contracts/KnownCodesStorage.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "KnownCodesStorage", - "sourceName": "cache-zk/solpp-generated-contracts/KnownCodesStorage.sol", + "sourceName": "contracts-preprocessed/KnownCodesStorage.sol", "abi": [ { "anonymous": false, @@ -73,8 +73,8 @@ "type": "function" } ], - "bytecode": "0x00030000000000020008000000000002000200000001035500000060011002700000006e0010019d000100000000001f0000008001000039000000400010043f00000001012001900000002e0000c13d0000000001000031000000040110008c000000b60000413d0000000201000367000000000101043b000000e001100270000000700210009c000000360000613d000000710210009c000000a50000613d000000720110009c000000b60000c13d0000000001000416000000000101004b000000b60000c13d000000040100008a00000000011000310000007302000041000000200310008c000000000300001900000000030240190000007301100197000000000401004b000000000200a019000000730110009c00000000010300190000000001026019000000000101004b000000b60000c13d00000004010000390000000201100367000000000101043b000000000101041a000000800010043f0000008801000041000001b20001042e0000000001000416000000000101004b000000b60000c13d0000002001000039000001000010044300000120000004430000006f01000041000001b20001042e0000000001000416000000000101004b000000b60000c13d0000000002000031000000040120008a0000007303000041000000400410008c000000000400001900000000040340190000007301100197000000000501004b000000000300a019000000730110009c00000000010400190000000001036019000000000101004b000000b60000c13d00000002010003670000000403100370000000000403043b000000000304004b0000000003000019000000010300c039000200000004001d000000000334004b000000b60000c13d0000002403100370000000000303043b000000740430009c000000b60000213d00000023043000390000007305000041000000000624004b0000000006000019000000000605801900000073072001970000007304400197000000000874004b0000000005008019000000000474013f000000730440009c00000000040600190000000004056019000000000404004b000000b60000c13d0000000404300039000000000441034f000000000404043b000800000004001d000000740440009c000000b60000213d000000240430003900000008030000290000000503300210000700000004001d0000000003430019000000000223004b000000b60000213d0000000002000411000080010220008c000000fa0000c13d0000000802000029000000000202004b000000f80000613d0000000202000029000000000202004b0000010c0000c13d0000000102000039000500000002001d0000800d02000039000400000002001d0000000302000039000300000002001d0000000004000019000000850000013d00000001044000390000000802000029000000000224004b000000f80000813d000000050240021000000007030000290000000002320019000000000221034f000000000502043b000000000205041a000000000202004b000000810000c13d0000007801500197000000790110009c000001660000c13d000600000004001d0000007a01500198000000c60000613d0000000501000029000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c7000000810400004100000004020000290000000303000029000000000600001901b101a70000040f000000020100036700000001022001900000000604000029000000810000c13d000000b60000013d0000000001000416000000000101004b000000b60000c13d000000040100008a00000000011000310000007302000041000000200310008c000000000300001900000000030240190000007301100197000000000401004b000000000200a019000000730110009c00000000010300190000000001026019000000000101004b000000b80000613d0000000001000019000001b30001043000000004010000390000000201100367000000000501043b00000000010004110000800e0110008c000000d70000c13d000000000105041a000000000101004b000000f80000c13d0000007801500197000000790110009c000001660000c13d0000007a01500198000000e90000c13d000000400100043d00000044021000390000008703000041000000000032043500000076020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b300010430000000400100043d00000044021000390000008303000041000000000032043500000024021000390000001f030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b3000104300000000101000039000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c70000800d0200003900000003030000390000008104000041000000000600001901b101a70000040f0000000101200190000000b60000613d0000000001000019000001b20001042e000000400100043d00000044021000390000007503000041000000000032043500000024021000390000001f030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b3000104300000800802000039000500000002001d0000800202000039000100000002001d0000000004000019000001160000013d00000001044000390000000802000029000000000224004b000000f80000813d000000050240021000000007030000290000000002320019000000000221034f000000000302043b000000000203041a000000000202004b000001120000c13d0000007801300197000000790110009c000001660000c13d000400000004001d000600000003001d0000007a01300198000000c60000613d0000007b010000410000000000100439000000050100002900000004001004430000006e0100004100000000020004140000006e0320009c0000000001024019000000c0011002100000007c011001c7000000010200002901b101ac0000040f00000001022001900000000602000029000000b60000613d000000000101043b000000000101004b000000b60000613d000000400400043d0000007d010000410000000000140435000000040140003900000000002104350000006e0100004100000000020004140000006e0320009c00000000020180190000006e0340009c000300000004001d00000000010440190000004001100210000000c002200210000000000112019f0000007e011001c7000000050200002901b101a70000040f000000000301001900000060033002700001006e0030019d0000006e0430019700000001022001900000017b0000613d00000003020000290000007f0120009c000001a10000813d000000400020043f00000001010000390000000605000029000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c70000800d0200003900000003030000390000008104000041000000020600002901b101a70000040f000000020100036700000001022001900000000404000029000001120000c13d000000b60000013d000000400100043d000000640210003900000084030000410000000000320435000000440210003900000085030000410000000000320435000000240210003900000022030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000086011001c7000001b300010430000000400200043d0000001f0340018f0000000504400272000001880000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001800000413d000000000503004b000001970000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000006e0100004100000001030000310000006e0430009c00000000030180190000006e0420009c000000000102401900000040011002100000006002300210000000000112019f000001b300010430000000820100004100000000001004350000004101000039000000040010043f0000007e01000041000001b300010430000001aa002104210000000102000039000000000001042d0000000002000019000000000001042d000001af002104230000000102000039000000000001042d0000000002000019000000000001042d000001b100000432000001b20001042e000001b300010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000e516761e0000000000000000000000000000000000000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004c6314f08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff43616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000ffff000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000039b34c6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000000000000000000000000000000c94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e6182874e487b710000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520636f6d70726573736f72007368000000000000000000000000000000000000000000000000000000000000496e636f72726563746c7920666f726d61747465642062797465636f646548610000000000000000000000000000000000000084000000000000000000000000436f6465206c656e67746820696e20776f726473206d757374206265206f6464000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000006aca1b77b249f1e5f885db2cd6e516c14e81511f82dd4bd0f8bb4ac27ba50922", - "deployedBytecode": "0x00030000000000020008000000000002000200000001035500000060011002700000006e0010019d000100000000001f0000008001000039000000400010043f00000001012001900000002e0000c13d0000000001000031000000040110008c000000b60000413d0000000201000367000000000101043b000000e001100270000000700210009c000000360000613d000000710210009c000000a50000613d000000720110009c000000b60000c13d0000000001000416000000000101004b000000b60000c13d000000040100008a00000000011000310000007302000041000000200310008c000000000300001900000000030240190000007301100197000000000401004b000000000200a019000000730110009c00000000010300190000000001026019000000000101004b000000b60000c13d00000004010000390000000201100367000000000101043b000000000101041a000000800010043f0000008801000041000001b20001042e0000000001000416000000000101004b000000b60000c13d0000002001000039000001000010044300000120000004430000006f01000041000001b20001042e0000000001000416000000000101004b000000b60000c13d0000000002000031000000040120008a0000007303000041000000400410008c000000000400001900000000040340190000007301100197000000000501004b000000000300a019000000730110009c00000000010400190000000001036019000000000101004b000000b60000c13d00000002010003670000000403100370000000000403043b000000000304004b0000000003000019000000010300c039000200000004001d000000000334004b000000b60000c13d0000002403100370000000000303043b000000740430009c000000b60000213d00000023043000390000007305000041000000000624004b0000000006000019000000000605801900000073072001970000007304400197000000000874004b0000000005008019000000000474013f000000730440009c00000000040600190000000004056019000000000404004b000000b60000c13d0000000404300039000000000441034f000000000404043b000800000004001d000000740440009c000000b60000213d000000240430003900000008030000290000000503300210000700000004001d0000000003430019000000000223004b000000b60000213d0000000002000411000080010220008c000000fa0000c13d0000000802000029000000000202004b000000f80000613d0000000202000029000000000202004b0000010c0000c13d0000000102000039000500000002001d0000800d02000039000400000002001d0000000302000039000300000002001d0000000004000019000000850000013d00000001044000390000000802000029000000000224004b000000f80000813d000000050240021000000007030000290000000002320019000000000221034f000000000502043b000000000205041a000000000202004b000000810000c13d0000007801500197000000790110009c000001660000c13d000600000004001d0000007a01500198000000c60000613d0000000501000029000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c7000000810400004100000004020000290000000303000029000000000600001901b101a70000040f000000020100036700000001022001900000000604000029000000810000c13d000000b60000013d0000000001000416000000000101004b000000b60000c13d000000040100008a00000000011000310000007302000041000000200310008c000000000300001900000000030240190000007301100197000000000401004b000000000200a019000000730110009c00000000010300190000000001026019000000000101004b000000b80000613d0000000001000019000001b30001043000000004010000390000000201100367000000000501043b00000000010004110000800e0110008c000000d70000c13d000000000105041a000000000101004b000000f80000c13d0000007801500197000000790110009c000001660000c13d0000007a01500198000000e90000c13d000000400100043d00000044021000390000008703000041000000000032043500000076020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b300010430000000400100043d00000044021000390000008303000041000000000032043500000024021000390000001f030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b3000104300000000101000039000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c70000800d0200003900000003030000390000008104000041000000000600001901b101a70000040f0000000101200190000000b60000613d0000000001000019000001b20001042e000000400100043d00000044021000390000007503000041000000000032043500000024021000390000001f030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b3000104300000800802000039000500000002001d0000800202000039000100000002001d0000000004000019000001160000013d00000001044000390000000802000029000000000224004b000000f80000813d000000050240021000000007030000290000000002320019000000000221034f000000000302043b000000000203041a000000000202004b000001120000c13d0000007801300197000000790110009c000001660000c13d000400000004001d000600000003001d0000007a01300198000000c60000613d0000007b010000410000000000100439000000050100002900000004001004430000006e0100004100000000020004140000006e0320009c0000000001024019000000c0011002100000007c011001c7000000010200002901b101ac0000040f00000001022001900000000602000029000000b60000613d000000000101043b000000000101004b000000b60000613d000000400400043d0000007d010000410000000000140435000000040140003900000000002104350000006e0100004100000000020004140000006e0320009c00000000020180190000006e0340009c000300000004001d00000000010440190000004001100210000000c002200210000000000112019f0000007e011001c7000000050200002901b101a70000040f000000000301001900000060033002700001006e0030019d0000006e0430019700000001022001900000017b0000613d00000003020000290000007f0120009c000001a10000813d000000400020043f00000001010000390000000605000029000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c70000800d0200003900000003030000390000008104000041000000020600002901b101a70000040f000000020100036700000001022001900000000404000029000001120000c13d000000b60000013d000000400100043d000000640210003900000084030000410000000000320435000000440210003900000085030000410000000000320435000000240210003900000022030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000086011001c7000001b300010430000000400200043d0000001f0340018f0000000504400272000001880000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001800000413d000000000503004b000001970000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000006e0100004100000001030000310000006e0430009c00000000030180190000006e0420009c000000000102401900000040011002100000006002300210000000000112019f000001b300010430000000820100004100000000001004350000004101000039000000040010043f0000007e01000041000001b300010430000001aa002104210000000102000039000000000001042d0000000002000019000000000001042d000001af002104230000000102000039000000000001042d0000000002000019000000000001042d000001b100000432000001b20001042e000001b300010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000e516761e0000000000000000000000000000000000000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004c6314f08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff43616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000ffff000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000039b34c6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000000000000000000000000000000c94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e6182874e487b710000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520636f6d70726573736f72007368000000000000000000000000000000000000000000000000000000000000496e636f72726563746c7920666f726d61747465642062797465636f646548610000000000000000000000000000000000000084000000000000000000000000436f6465206c656e67746820696e20776f726473206d757374206265206f6464000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000006aca1b77b249f1e5f885db2cd6e516c14e81511f82dd4bd0f8bb4ac27ba50922", + "bytecode": "0x0001000000000002000800000000000200000000000103550000008003000039000000400030043f000000000301001900000060033002700000005f033001970000000102200190000000200000c13d000000040230008c000001180000413d000000000201043b000000e002200270000000610420009c000000280000613d000000620420009c0000007f0000613d000000630220009c000001180000c13d0000000002000416000000000202004b000001180000c13d000000040230008a000000200220008c000001180000413d0000000401100370000000000101043b000000000101041a000000800010043f0000007b01000041000001790001042e0000000001000416000000000101004b000001180000c13d0000002001000039000001000010044300000120000004430000006001000041000001790001042e0000000002000416000000000202004b000001180000c13d000000040230008a000000400220008c000001180000413d0000000402100370000000000402043b000000000204004b0000000002000019000000010200c039000200000004001d000000000224004b000001180000c13d0000002402100370000000000202043b000000640420009c000001180000213d00000023042000390000006505000041000000000634004b000000000600001900000000060580190000006504400197000000000704004b0000000005008019000000650440009c000000000506c019000000000405004b000001180000c13d0000000404200039000000000441034f000000000404043b000800000004001d000000640440009c000001180000213d000700240020003d000000080200002900000005022002100000000702200029000000000232004b000001180000213d0000000002000411000080010220008c000000c00000c13d000000080200006b000000be0000613d000000020200006b000000c80000c13d000500010000003d0004800d0000003d000300030000003d0000000004000019000000610000013d0000000104400039000000080240006c000000be0000813d00000005024002100000000702200029000000000221034f000000000502043b000000000205041a000000000202004b0000005e0000c13d00000069015001970000006a0110009c0000011a0000c13d000600000004001d0000006b015001980000012f0000613d0000000501000029000000000015041b00000000010004140000005f0210009c0000005f01008041000000c00110021000000071011001c700000004020000290000000303000029000000720400004100000000060000190178016e0000040f0000000001000367000000010220019000000006040000290000005e0000c13d000001180000013d0000000002000416000000000202004b000001180000c13d000000040230008a000000200220008c000001180000413d0000000401100370000000000501043b00000000010004110000800e0110008c000000990000c13d000000000105041a000000000101004b000000be0000c13d00000069015001970000006a0110009c000000a30000c13d0000006b01500198000000af0000c13d0000006601000041000000800010043f0000002001000039000000840010043f000000a40010043f0000007701000041000000a00000013d0000006601000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000007901000041000000c40010043f00000068010000410000017a000104300000006601000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f0000007501000041000000c40010043f0000007401000041000000e40010043f0000007a010000410000017a000104300000000101000039000000000015041b0000005f0100004100000000020004140000005f0320009c0000000002018019000000c00120021000000071011001c70000800d020000390000000303000039000000720400004100000000060000190178016e0000040f0000000101200190000001180000613d0000000001000019000001790001042e0000006601000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000006701000041000000a00000013d000580080000003d000180020000003d0000000004000019000000cf0000013d0000000104400039000000080240006c000000be0000813d00000005024002100000000702200029000000000221034f000000000302043b000000000203041a000000000202004b000000cc0000c13d00000069013001970000006a0110009c0000011a0000c13d000400000004001d000600000003001d0000006b013001980000012f0000613d0000006c0100004100000000001004390000000501000029000000040010044300000000010004140000005f0210009c0000005f01008041000000c0011002100000006d011001c70000000102000029017801730000040f0000000102200190000001400000613d000000000101043b000000000101004b0000000602000029000001180000613d000000400400043d0000006e0100004100000000001404350000000401400039000000000021043500000000010004140000005f0210009c0000005f0300004100000000010380190000005f0240009c000300000004001d000000000203001900000000020440190000004002200210000000c001100210000000000121019f0000006f011001c700000005020000290178016e0000040f0000000102200190000001410000613d0000000302000029000000700120009c000001670000813d000000400020043f00000001010000390000000605000029000000000015041b00000000010004140000005f0210009c0000005f01008041000000c00110021000000071011001c70000800d020000390000000303000039000000720400004100000002060000290178016e0000040f000000000100036700000001022001900000000404000029000000cc0000c13d00000000010000190000017a00010430000000400100043d000000640210003900000074030000410000000000320435000000440210003900000075030000410000000000320435000000240210003900000022030000390000000000320435000000660200004100000000002104350000000402100039000000200300003900000000003204350000005f020000410000005f0310009c0000000001028019000000400110021000000076011001c70000017a00010430000000400100043d00000044021000390000007703000041000000000032043500000066020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000005f020000410000005f0310009c0000000001028019000000400110021000000078011001c70000017a00010430000000000001042f000000400200043d000000000301001900000060033002700000001f0430018f0000005f033001970000000505300272000001510000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001490000413d000000000604004b000001600000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000005f010000410000005f0420009c000000000201801900000040012002100000006002300210000000000121019f0000017a00010430000000730100004100000000001004350000004101000039000000040010043f0000006f010000410000017a00010430000000000001042f00000171002104210000000102000039000000000001042d0000000002000019000000000001042d00000176002104230000000102000039000000000001042d0000000002000019000000000001042d0000017800000432000001790001042e0000017a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000e516761e0000000000000000000000000000000000000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004c6314f0000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000ffff000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000039b34c6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000000000000000000000000000000c94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e6182874e487b71000000000000000000000000000000000000000000000000000000007368000000000000000000000000000000000000000000000000000000000000496e636f72726563746c7920666f726d61747465642062797465636f646548610000000000000000000000000000000000000084000000000000000000000000436f6465206c656e67746820696e20776f726473206d757374206265206f6464000000000000000000000000000000000000006400000000000000000000000043616c6c61626c65206f6e6c792062792074686520636f6d70726573736f72000000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000002000000080000000000000000046a075a2453a8b9c40d03407cc5596a75c24f2bd59dbd37c3775ff55e4d171f7", + "deployedBytecode": "0x0001000000000002000800000000000200000000000103550000008003000039000000400030043f000000000301001900000060033002700000005f033001970000000102200190000000200000c13d000000040230008c000001180000413d000000000201043b000000e002200270000000610420009c000000280000613d000000620420009c0000007f0000613d000000630220009c000001180000c13d0000000002000416000000000202004b000001180000c13d000000040230008a000000200220008c000001180000413d0000000401100370000000000101043b000000000101041a000000800010043f0000007b01000041000001790001042e0000000001000416000000000101004b000001180000c13d0000002001000039000001000010044300000120000004430000006001000041000001790001042e0000000002000416000000000202004b000001180000c13d000000040230008a000000400220008c000001180000413d0000000402100370000000000402043b000000000204004b0000000002000019000000010200c039000200000004001d000000000224004b000001180000c13d0000002402100370000000000202043b000000640420009c000001180000213d00000023042000390000006505000041000000000634004b000000000600001900000000060580190000006504400197000000000704004b0000000005008019000000650440009c000000000506c019000000000405004b000001180000c13d0000000404200039000000000441034f000000000404043b000800000004001d000000640440009c000001180000213d000700240020003d000000080200002900000005022002100000000702200029000000000232004b000001180000213d0000000002000411000080010220008c000000c00000c13d000000080200006b000000be0000613d000000020200006b000000c80000c13d000500010000003d0004800d0000003d000300030000003d0000000004000019000000610000013d0000000104400039000000080240006c000000be0000813d00000005024002100000000702200029000000000221034f000000000502043b000000000205041a000000000202004b0000005e0000c13d00000069015001970000006a0110009c0000011a0000c13d000600000004001d0000006b015001980000012f0000613d0000000501000029000000000015041b00000000010004140000005f0210009c0000005f01008041000000c00110021000000071011001c700000004020000290000000303000029000000720400004100000000060000190178016e0000040f0000000001000367000000010220019000000006040000290000005e0000c13d000001180000013d0000000002000416000000000202004b000001180000c13d000000040230008a000000200220008c000001180000413d0000000401100370000000000501043b00000000010004110000800e0110008c000000990000c13d000000000105041a000000000101004b000000be0000c13d00000069015001970000006a0110009c000000a30000c13d0000006b01500198000000af0000c13d0000006601000041000000800010043f0000002001000039000000840010043f000000a40010043f0000007701000041000000a00000013d0000006601000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000007901000041000000c40010043f00000068010000410000017a000104300000006601000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f0000007501000041000000c40010043f0000007401000041000000e40010043f0000007a010000410000017a000104300000000101000039000000000015041b0000005f0100004100000000020004140000005f0320009c0000000002018019000000c00120021000000071011001c70000800d020000390000000303000039000000720400004100000000060000190178016e0000040f0000000101200190000001180000613d0000000001000019000001790001042e0000006601000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000006701000041000000a00000013d000580080000003d000180020000003d0000000004000019000000cf0000013d0000000104400039000000080240006c000000be0000813d00000005024002100000000702200029000000000221034f000000000302043b000000000203041a000000000202004b000000cc0000c13d00000069013001970000006a0110009c0000011a0000c13d000400000004001d000600000003001d0000006b013001980000012f0000613d0000006c0100004100000000001004390000000501000029000000040010044300000000010004140000005f0210009c0000005f01008041000000c0011002100000006d011001c70000000102000029017801730000040f0000000102200190000001400000613d000000000101043b000000000101004b0000000602000029000001180000613d000000400400043d0000006e0100004100000000001404350000000401400039000000000021043500000000010004140000005f0210009c0000005f0300004100000000010380190000005f0240009c000300000004001d000000000203001900000000020440190000004002200210000000c001100210000000000121019f0000006f011001c700000005020000290178016e0000040f0000000102200190000001410000613d0000000302000029000000700120009c000001670000813d000000400020043f00000001010000390000000605000029000000000015041b00000000010004140000005f0210009c0000005f01008041000000c00110021000000071011001c70000800d020000390000000303000039000000720400004100000002060000290178016e0000040f000000000100036700000001022001900000000404000029000000cc0000c13d00000000010000190000017a00010430000000400100043d000000640210003900000074030000410000000000320435000000440210003900000075030000410000000000320435000000240210003900000022030000390000000000320435000000660200004100000000002104350000000402100039000000200300003900000000003204350000005f020000410000005f0310009c0000000001028019000000400110021000000076011001c70000017a00010430000000400100043d00000044021000390000007703000041000000000032043500000066020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000005f020000410000005f0310009c0000000001028019000000400110021000000078011001c70000017a00010430000000000001042f000000400200043d000000000301001900000060033002700000001f0430018f0000005f033001970000000505300272000001510000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001490000413d000000000604004b000001600000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000005f010000410000005f0420009c000000000201801900000040012002100000006002300210000000000121019f0000017a00010430000000730100004100000000001004350000004101000039000000040010043f0000006f010000410000017a00010430000000000001042f00000171002104210000000102000039000000000001042d0000000002000019000000000001042d00000176002104230000000102000039000000000001042d0000000002000019000000000001042d0000017800000432000001790001042e0000017a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000e516761e0000000000000000000000000000000000000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004c6314f0000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000ffff000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000039b34c6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000000000000000000000000000000c94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e6182874e487b71000000000000000000000000000000000000000000000000000000007368000000000000000000000000000000000000000000000000000000000000496e636f72726563746c7920666f726d61747465642062797465636f646548610000000000000000000000000000000000000084000000000000000000000000436f6465206c656e67746820696e20776f726473206d757374206265206f6464000000000000000000000000000000000000006400000000000000000000000043616c6c61626c65206f6e6c792062792074686520636f6d70726573736f72000000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000002000000080000000000000000046a075a2453a8b9c40d03407cc5596a75c24f2bd59dbd37c3775ff55e4d171f7", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/L1Messenger.json b/src/deps/contracts/L1Messenger.json index 63cc63f4..d9cf8401 100644 --- a/src/deps/contracts/L1Messenger.json +++ b/src/deps/contracts/L1Messenger.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "L1Messenger", - "sourceName": "cache-zk/solpp-generated-contracts/L1Messenger.sol", + "sourceName": "contracts-preprocessed/L1Messenger.sol", "abi": [ { "anonymous": false, @@ -161,8 +161,8 @@ "type": "function" } ], - "bytecode": "0x0004000000000002000e00000000000200000000030100190000006003300270000002af0430019700030000004103550002000000010355000002af0030019d000100000000001f0000008003000039000000400030043f00000001012001900000004b0000c13d000400000003001d0000000001000031000000040110008c000000bb0000413d0000000201000367000000000101043b000000e001100270000002b10210009c000000530000213d000002b40210009c000000900000613d000002b50110009c000000bb0000c13d0000000001000416000000000101004b000000bb0000c13d000000040100008a0000000001100031000002b602000041000000600310008c00000000030000190000000003024019000002b601100197000000000401004b000000000200a019000002b60110009c00000000010300190000000001026019000000000101004b000000bb0000c13d00000004010000390000000201100367000000000201043b000000000102004b0000000001000019000000010100c039000000000112004b000000bb0000c13d000000400400043d0000000003000411000002f20130009c000001040000413d0000006401400039000002f30200004100000000002104350000004401400039000002f4020000410000000000210435000000240140003900000034020000390000000000210435000002c9010000410000000000140435000000040140003900000020020000390000000000210435000002af01000041000002af0240009c00000000010440190000004001100210000002d2011001c700000aba000104300000000001000416000000000101004b000000bb0000c13d000000200100003900000100001004430000012000000443000002b00100004100000ab90001042e000002b20210009c000000aa0000613d000002b30110009c000000bb0000c13d0000000001000416000000000101004b000000bb0000c13d0000000001000031000000040210008a000002b603000041000000200420008c00000000040000190000000004034019000002b602200197000000000502004b000000000300a019000002b60220009c00000000020400190000000002036019000000000202004b000000bb0000c13d00000002030003670000000402300370000000000202043b000002b70420009c000000bb0000213d0000002304200039000002b605000041000000000614004b00000000060000190000000006058019000002b607100197000002b604400197000000000874004b0000000005008019000000000474013f000002b60440009c00000000040600190000000004056019000000000404004b000000bb0000c13d0000000404200039000000000343034f000000000503043b000002b70350009c000000bb0000213d00000024062000390000000002650019000000000112004b000000bb0000213d000000000700041400000000010004140000000003000031000000000423004b000001940000813d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba000104300000000001000416000000000101004b000000bb0000c13d000000040100008a0000000001100031000002b602000041000000200310008c00000000030000190000000003024019000002b601100197000000000401004b000000000200a019000002b60110009c00000000010300190000000001026019000000000101004b000000bb0000c13d0000000001000411000080040110008c000000fa0000c13d00000004010000390000000201100367000000000101043b0ab8094c0000040f000000000100001900000ab90001042e0000000001000416000000000101004b000000bb0000c13d0000000001000031000000040210008a000002b603000041000000200420008c00000000040000190000000004034019000002b602200197000000000502004b000000000300a019000002b60220009c00000000020400190000000002036019000000000202004b000000bd0000613d000000000100001900000aba0001043000000002020003670000000403200370000000000303043b000002b70430009c000000bb0000213d0000002304300039000002b605000041000000000614004b00000000060000190000000006058019000002b607100197000002b604400197000000000874004b0000000005008019000000000474013f000002b60440009c00000000040600190000000004056019000000000404004b000000bb0000c13d0000000404300039000000000442034f000000000404043b000800000004001d000002b70440009c000000bb0000213d0000002403300039000700000003001d00000008040000290000000003340019000000000113004b000000bb0000213d0000000001000411000080010110008c000001a80000c13d0000000801000029000000040110008c000000bb0000413d0000000701000029000000000112034f000000400300043d000000000201043b000002cc0120009c000003620000413d0000004401300039000002f1020000410000000000210435000000240130003900000014020000390000000000210435000002c9010000410000000000130435000000040130003900000020020000390000000000210435000002af01000041000002af0230009c00000000010340190000004001100210000002ca011001c700000aba00010430000002c901000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f000002f501000041000000c40010043f000002f60100004100000aba00010430000c00000003001d000d00000002001d000002bd010000410000000000140435000002af010000410000000002000414000002af0320009c0000000002018019000002af0340009c00000000010440190000004001100210000000c002200210000000000112019f000002be011001c70000800b02000039000e00000004001d0ab80aae0000040f0000000e0a00002900000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001280000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001200000413d000000000705004b000001370000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000016e0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000002b70410009c000003660000213d0000000102200190000003660000c13d000000400010043f000000200130008c0000000d02000029000000bb0000413d00000000030a04330000ffff0130008c000000bb0000213d000e00000003001d0ab8089d0000040f00000060021000390000000c03000029000000000032043500000040021000390000000e03000029000000000032043500000020021000390000000d030000290000000000320435000000000001043500000024020000390000000202200367000000000202043b0000008003100039000000000023043500000044020000390000000202200367000000000202043b000000a00310003900000000002304350ab808a90000040f000e00000001001d0ab80a920000040f000000400100043d0000000e020000290000000000210435000002af02000041000002af0310009c00000000010280190000004001100210000002c7011001c700000ab90001042e000000400200043d0000001f0430018f00000005033002720000017b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001730000413d000000000504004b0000018a0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000002af0410009c000001ba0000a13d000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002cb03000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000e00000007001d000d00000005001d0000000002230049000002af02200197000c00000006001d000002af03600197000000020330036700000000022303df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000003470000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f043000390000000504400272000001ea0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000001e20000413d000000000400004b000001ec0000613d0000000104000031000000000443004b000000bb0000213d00000003050003670000001f0430018f0000000503300272000001fc0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000001f40000413d000000000604004b0000020b0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000005df0000c13d0000000001020433000b00000001001d00000000020004140000000e01000029000a00000002001d000000000121004b0000008a0000413d0000000201000039000900000001001d000000000301041a000000400100043d00000040021000390000000b040000290000000000420435000000200210003900000000003204350000004003000039000800000003001d0000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b0000000902000029000000000012041b000002bd01000041000000400400043d000900000004001d0000000000140435000002af010000410000000002000414000002af0320009c0000000002018019000002af0340009c00000000010440190000004001100210000000c002200210000000000112019f000002be011001c70000800b020000390ab80aae0000040f000000090a00002900000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000025e0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002560000413d00000000090a0019000000000705004b0000026e0000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000004b20000613d0000001f01400039000000600110018f0000000002910019000000000112004b00000000010000190000000101004039000700000002001d000002b70220009c000003660000213d0000000101100190000003660000c13d0000000701000029000000400010043f000000200130008c000000bb0000413d00000000010904330000ffff0210008c000000bb0000213d0000000702000029000002bf0220009c000003660000213d0000000703000029000000c002300039000000400020043f0000000004000410000002c0024001970000006005300039000500000005001d000000000025043500000020053000390000000102000039000900000002001d000300000005001d0000000000250435000000a0023000390000000b07000029000600000002001d000000000072043500000080023000390000000008000411000400000002001d000000000082043500000000000304350000004002300039000200000002001d0000000000120435000000400200043d000000200320003900000000000304350000002105200039000002c1060000410000000000650435000000f0011002100000002205200039000000000015043500000060014002100000002404200039000000000014043500000058012000390000000000710435000000580100003900000000001204350000003801200039000100000008001d0000000000810435000002c20120009c000003660000213d0000008001200039000000400010043f000002af01000041000002af0430009c000000000301801900000040033002100000000002020433000002af0420009c00000000020180190000006002200210000000000232019f0000000003000414000002af0430009c0000000001034019000000c001100210000000000121019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000008030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b000000000010041b0000000901000029000000000101041a000000010200008a000000000221004b0000008a0000613d00000001011000390000000903000029000000000013041b00000007010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000020100002900000000010104330000ffff0110018f0000004004200039000000000014043500000005010000290000000001010433000002c00110019700000060042000390000000000140435000000040100002900000000010104330000008004200039000000000014043500000006010000290000000001010433000000a0042000390000000000140435000002af01000041000002af0420009c00000000020180190000000005000414000002af0450009c00000000010540190000004002200210000000c001100210000000000121019f000002c3011001c70000800d02000039000002c4040000410ab80aa90000040f0000000d030000290000000101200190000000bb0000613d0000005c023000390000000001000413000002af0310019700000000412300a9000002c502200197000002c50410019700000000422400d9000000000223004b0000000e020000290000008a0000c13d0000000a030000290000000002320049000000a001100039000000000121001a0000008a0000413d000002af0210009c000001960000213d0000000002100420000000400100043d000000000202004b000006e70000c13d0000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f0000000502300272000003520000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000034b0000413d000000000504004b000003600000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000300000002001d000b00000003001d000002cd0130009c0000036c0000a13d000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba000104300000000307000029000000e0067002700000000b02000029000002ce01200041000000400010043f0000080001000039000900000001001d000000000512043600000000010000310000000201100367000000000200001900000005032002100000000004350019000000000331034f000000000303043b00000000003404350000000102200039000008000320008c000003770000413d000a00000005001d0000000402000039000002b90170009c0000000007000019000600000006001d000003e90000813d000d00000002001d000000000100041a000000000117004b000004820000c13d0000000301000029000002d30110009c0000000b030000290000000a0400002900000006050000290000039a0000213d0000000001030433000000000151004b000003e30000a13d00000005015002100000000001410019000002d40200004100000000002104350000000101500039000007ff0250008c00000000050100190000038f0000413d0000004001000039000c00000001001d0000801001000039000600000001001d0000000901000029000500000001001d0000000101100270000900000001001d000000000500001900000000010304330000000102500210000000000321004b000003e30000a13d00000001022001bf000000000121004b000003e30000a13d00000005012002100000000001410019000e00000005001d0000000602500210000000000242001900000000030204330000000002010433000000400100043d00000040041000390000000000240435000000200210003900000000003204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700000006020000290ab80aae0000040f0000000102200190000000bb0000613d0000000b0300002900000000020304330000000e05000029000000000252004b0000000a04000029000003e30000a13d00000005025002100000000002420019000000000101043b000000000012043500000001055000390000000901000029000000000115004b000003a30000413d0000000501000029000000030110008c0000039e0000213d0000000001030433000000000101004b000004d80000c13d000002ef0100004100000000001004350000003201000039000000040010043f000002f00100004100000aba000104300000000401000039000000590200008a000500000002001d0000000007000019000000000600001900000058031000390000000802000029000d00000003001d000000000223004b000000bb0000213d000000070200002900000000022100190000000001000414000002af032001970000000504000029000000000442004b0000008a0000213d00000058022000390000000004000031000000000524004b0000008a0000413d000c00000007001d000e00000006001d0000000203300367000002cf0510009c000001960000813d0000000002240049000002af0220019700000000022303df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000004970000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c0000000e09000029000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000000c0a000029000004300000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004280000413d000000000400004b000004320000613d0000000104000031000000000443004b000000bb0000213d00000003040003670000000505300272000004410000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000004390000413d0000001f03300190000004500000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000005df0000c13d0000000b010000290000000001010433000000000191004b0000000a03000029000003e30000a13d0000000501900210000000000131001900000000020204330000000000210435000000400100043d00000040031000390000000000230435000000400200003900000000022104360000000000a20435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000e0600002900000001022001900000000602000029000000bb0000613d000000000701043b0000000106600039000000000126004b0000000d020000290000000001020019000003ee0000413d000003850000013d000000400100043d0000006402100039000002d00300004100000000003204350000004402100039000002d103000041000000000032043500000024021000390000003c030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba000104300000001f0430018f0000000502300272000004a20000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000049b0000413d000000000504004b000004b00000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000400200043d0000001f0430018f0000000503300272000004bf0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004b70000413d000000000504004b000004ce0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000000050100008a000900000001001d0000000d02000029000000000112004b0000008a0000213d0000000d0100002900000004031000390000000801000029000000000113004b000000bb0000213d0000000a010000290000000001010433000500000001001d00000007010000290000000d0200002900000000011200190000000201100367000000000101043b000002b90210009c0000000007000019000005450000813d0000000201000039000300000001001d000000000101041a000000000117004b000005f10000c13d0000000901000029000000000113004b0000008a0000213d00000004023000390000000801000029000e00000002001d000000000112004b000000bb0000213d000000070100002900000000011300190000000201100367000000000101043b000002b90210009c000b00000000001d000006240000813d0000000301000039000d00000001001d000000000101041a0000000b02000029000000000112004b000006cf0000c13d00000008010000290000000e02000029000000000112004b000003e30000813d00000007010000290000000e0200002900000000011200190000000203000367000000000213034f000000000202043b000002e702200197000002c10220009c0000072e0000c13d00000009020000290000000e04000029000000000224004b0000008a0000213d0000000e0200002900000004022000390000000804000029000000000442004b000000bb0000213d0000000101100039000000000113034f000000000101043b0000000804000029000000000442004b000003e30000813d000000e80110027000000007040000290000000002420019000000000423034f0000000e020000290000000502200039000000000521001a000c00000005001d000000000404043b0000008a0000413d00000008050000290000000c06000029000000000556004b000000bb0000213d0000000c05000029000002ea0550009c000007a60000413d000000400100043d0000004402100039000002ee030000410000000000320435000002c902000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000e001100270000a00000001001d0000000007000019000e00000000001d0000000901000029000000000113004b0000008a0000213d00000004013000390000000802000029000000000221004b000000bb0000213d000000070200002900000000022300190000000202200367000000000202043b000000e002200270000000000612001a0000008a0000413d0000000803000029000000000336004b000000bb0000213d000000070300002900000000033100190000000001000414000000000232001a000002af043001970000008a0000413d0000000003000031000000000523004b0000008a0000413d000d00000007001d000b00000006001d0000000204400367000002af0510009c000001960000213d0000000002230049000002af0220019700000000022403df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000006090000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000000d09000029000005940000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000058c0000413d000000000400004b000005960000613d0000000104000031000000000443004b000000bb0000213d00000003040003670000000505300272000005a50000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b0000059d0000413d0000001f03300190000005b40000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000005df0000c13d0000000002020433000000400100043d00000040031000390000000000230435000000200210003900000000009204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000000b03000029000000bb0000613d000000000701043b0000000e0200002900000001022000390000000a01000029000e00000002001d000000000112004b000005490000413d000004ed0000013d000000400100043d0000004402100039000002d503000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000008402100039000002d60300004100000000003204350000006402100039000002d70300004100000000003204350000004402100039000002d8030000410000000000320435000000240210003900000044030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d9011001c700000aba000104300000001f0430018f0000000502300272000006140000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000060d0000413d000000000504004b000006220000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000e001100270000600000001001d000b00000000001d000a00000000001d00000009010000290000000e02000029000000000112004b0000008a0000213d0000000e0100002900000004011000390000000802000029000000000221004b000000bb0000213d00000007020000290000000e0300002900000000022300190000000202200367000000000202043b000000e003200270000d00000003001d000000000313001a000e00000003001d0000008a0000413d00000008030000290000000e04000029000000000334004b000000bb0000213d000002da03200198000007430000c13d000002dc0320009c000007550000813d000002dd02200198000007670000613d0000000702000029000000000321001900000000010004140000000d02000029000000000232001a000002af043001970000008a0000413d0000000003000031000000000523004b0000008a0000413d0000000204400367000002af0510009c000001960000213d0000000002230049000002af0220019700000000022403df000000c001100210000002b801100197000002b9011001c700000000011203af00000002020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000007790000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000067d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000006750000413d000000000400004b0000067f0000613d0000000104000031000000000443004b000000bb0000213d000000030400036700000005053002720000068e0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006860000413d0000001f033001900000069d0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000007940000c13d0000000001020433000002df011001970000000d02000029000000db02200210000002e002200197000000000112019f000002c1021001c7000000400100043d0000004003100039000000000023043500000020021000390000000b0300002900000000003204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b000b00000001001d0000000a0200002900000001022000390000000601000029000a00000002001d000000000112004b000006280000413d000005010000013d000000400100043d0000008402100039000002e40300004100000000003204350000006402100039000002e50300004100000000003204350000004402100039000002e603000041000000000032043500000024021000390000005e030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d9011001c700000aba00010430000000200200003900000000022104360000000d0500002900000000005204350000001f0350018f00000040021000390000000c0400002900000002044003670000000505500272000006fa0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006f20000413d000000000603004b000007090000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000d03000029000000000232001900000000000204350000005f02300039000000200300008a000000000232016f000002af03000041000002af0410009c00000000010380190000004001100210000002af0420009c00000000020380190000006002200210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c70000800d020000390000000303000039000002c60400004100000001050000290000000b060000290ab80aa90000040f0000000101200190000000bb0000613d000000400100043d0000000b020000290000000000210435000002af02000041000002af0310009c00000000010280190000004001100210000002c7011001c700000ab90001042e000000400100043d0000006402100039000002e80300004100000000003204350000004402100039000002e9030000410000000000320435000000240210003900000027030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba00010430000000400100043d0000004402100039000002db030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002e3030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002e2030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f0000000502300272000007840000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000077d0000413d000000000504004b000007920000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000400100043d0000004402100039000002de030000410000000000320435000000240210003900000019030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000000c0500002900000004055000390000000806000029000000000665004b000000bb0000213d00000007060000290000000c070000290000000006670019000000000363034f000000000703043b000000e00670027000000110836000c9000002b90770009c000007b70000413d00000000876300d9000001100770008c0000008a0000c13d00000000085300190000000807000029000b00000008001d000000000778004b000000bb0000213d000000f804400270000000400900043d00000044079000390000000408000029000000000087043500000024079000390000000000470435000002eb0400004100000000004904350000008404900039000000000034043500000004049000390000000000640435000000070600002900000000076500190000001f0630018f000e00000009001d000000a40590003900000002087003670000000509300272000007da0000613d0000000007000019000000050a700210000000000ba50019000000000aa8034f000000000a0a043b0000000000ab04350000000107700039000000000a97004b000007d20000413d00000007070000290000000007720019000000000206004b000007eb0000613d0000000502900210000000000828034f00000000022500190000000306600210000000000902043300000000096901cf000000000969022f000000000808043b0000010006600089000000000868022f00000000066801cf000000000696019f0000000000620435000000000235001900000000000204350000001f02300039000002ec02200197000000000225001900000000034200490000000e04000029000000640440003900000000003404350000001f0310018f000000000212043600000002047003670000000505100272000008020000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000007fa0000413d000000000603004b000008110000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000312001900000000000304350000001f01100039000002ed011001970000000e0400002900000000014100490000000001210019000002af02000041000002af0340009c000000000302001900000000030440190000004003300210000002af0410009c00000000010280190000006001100210000000000131019f0000000003000414000002af0430009c0000000002034019000000c002200210000000000112019f0000800e020000390ab80aa90000040f00000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000083b0000613d000000000700001900000005087002100000000e090000290000000009890019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000008320000413d000000000705004b0000084b0000613d0000000506600210000000000761034f0000000e0800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000008770000613d0000001f01400039000000600210018f0000000e010000290000000001120019000000000221004b00000000020000190000000102004039000002b70410009c000003660000213d0000000102200190000003660000c13d000000400010043f000000200130008c000000bb0000413d00000008010000290000000b02000029000000000112004b000000000100001900000001010060390000000e020000290000000002020433000e00000002001d0ab809ce0000040f0000000501000029000000000010041d00000007010000290000000c020000290ab809e60000040f0000000102000039000000000012041d00000003010000290000000e03000029000000000031041d000000000000041b000000000002041b000000000001041b0000000d01000029000000000001041b000000000100001900000ab90001042e000000400200043d0000001f0430018f0000000503300272000008840000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000087c0000413d000000000504004b000008930000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000000400100043d000002f70210009c000008a30000813d000000c002100039000000400020043f000000000001042d000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba0001043000070000000000020000000082010434000000f80320021000000040071000390000006006100039000000a005100039000200000001001d0000008002100039000600000002001d0000000004020433000700000005001d0000000005050433000500000006001d0000000006060433000400000007001d0000000007070433000300000008001d0000000008080433000000400100043d00000020021000390000000000320435000002c103000041000000000808004b000000000300601900000021081000390000000000380435000000f00370021000000022071000390000000000370435000000600360021000000024061000390000000000360435000000580310003900000000005304350000003803100039000000000043043500000058030000390000000000310435000002f80310009c000009400000813d0000008003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000093e0000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000040030000390000000000310435000002bb0310009c000009400000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000093e0000613d000000000101043b000000000010041b0000000103000039000000000203041a000000010100008a000000000112004b000009460000613d000100000002001d0000000101200039000000000013041b00000002010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000040100002900000000010104330000ffff0110018f0000004004200039000000000014043500000005010000290000000001010433000002c00110019700000060042000390000000000140435000000060100002900000000010104330000008004200039000000000014043500000007010000290000000001010433000000a0042000390000000000140435000002af01000041000002af0420009c00000000020180190000000004000414000002af0540009c00000000010440190000004002200210000000c001100210000000000121019f000002c3011001c70000800d02000039000002c4040000410ab80aa90000040f00000001012001900000093e0000613d0000000101000029000000000001042d000000000100001900000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba0001043000020000000000020000000302000039000100000002001d000000000302041a000000400500043d0000004002500039000200000001001d00000000001204350000002002500039000000000032043500000040030000390000000000350435000002f90350009c000009a50000813d0000006003500039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001050433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000009a30000613d000000000101043b0000000102000029000000000012041b0000000001000413000002af031001970000000206000029000000e0016002700000ffff0210018f000000050120021000000004041001bf00000000514300a900000000544100d9000000000343004b0000099d0000c13d0000000102200270000000010320003900000007423000c9000000075420011a000000000343004b0000099d0000c13d0000000001210019000002fa0210009c000009ab0000813d00000028011000390000000002100420000000400100043d000000000202004b000009bd0000613d0000000000610435000002af020000410000000003000414000002af0430009c0000000003028019000002af0410009c00000000010280190000004001100210000000c002300210000000000112019f000002fb011001c70000800d020000390000000103000039000002fc040000410ab80aa90000040f0000000101200190000009a30000613d000000000001042d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba00010430000000000100001900000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000000101004b000009d10000613d000000000001042d000000400100043d0000006402100039000002fd0300004100000000003204350000004402100039000002fe03000041000000000032043500000024021000390000002a030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba0001043000000000030004140000000004120019000000000224004b00000000050000190000000105004039000002af02100197000000010150019000000a450000c13d0000000001000031000000000541004b00000a450000413d0000000202200367000002cf0530009c00000a4b0000813d0000000001410049000002af0110019700000000011203df000000c002300210000002b802200197000002b9022001c700000000012103af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af033001970003000000010355000000010220019000000a5d0000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c00000a780000213d000000010440019000000a780000c13d000000400020043f00000000023104360000001f04300039000000050440027200000a1f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000a170000413d000000000400004b00000a210000613d0000000104000031000000000443004b00000a7e0000213d00000003050003670000001f0430018f000000050330027200000a310000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000a290000413d000000000604004b00000a400000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000a800000c13d0000000001020433000000000001042d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba00010430000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f000000050230027200000a680000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000a610000413d000000000504004b00000a760000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000000000100001900000aba00010430000000400100043d0000004402100039000002d503000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba0001043000000078010000390000000001100420000000000101004b00000a970000613d000000000001042d000000400100043d0000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba0001043000000aac002104210000000102000039000000000001042d0000000002000019000000000001042d00000ab1002104230000000102000039000000000001042d0000000002000019000000000001042d00000ab6002104230000000102000039000000000001042d0000000002000019000000000001042d00000ab80000043200000ab90001042e00000aba00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000628b636d00000000000000000000000000000000000000000000000000000000628b636e0000000000000000000000000000000000000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000039b34c6e0000000000000000000000000000000000000000000000000000000056079ac88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff00000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff9f02000000000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f02000000000000000000000000000000000000c000000000000000000000000027fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d00000000000000000000000000000000ffffffffffffffffffffffffffffffff3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce24100000000000000000000000000000000000000200000000000000000000000004661696c656420746f206368617267652067617300000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffeffdf000000000000000000000000000000000000000000000000000000000001002000000000000000000000000000000000000000000000000000000001000000006e6f7420657175616c20746f20636861696e65644c6f677348617368000000007265636f6e7374727563746564436861696e65644c6f677348617368206973200000000000000000000000000000000000000084000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff72abee45b59e344af8a6e520241c4744aff26ed411f4c4b00f8af09adada43ba6b656363616b3235362072657475726e656420696e76616c69642064617461004861736800000000000000000000000000000000000000000000000000000000206973206e6f7420657175616c20746f20636861696e65644d657373616765737265636f6e7374727563746564436861696e65644d657373616765734861736800000000000000000000000000000000000000a40000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000007368612072657475726e656420696e76616c696420646174610000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff06ffffff000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000061696e65644c3142797465636f64657352657665616c44617461486173680000657665616c4461746148617368206973206e6f7420657175616c20746f2063687265636f6e7374727563746564436861696e65644c3142797465636f64657352ff0000000000000000000000000000000000000000000000000000000000000069736d61746368000000000000000000000000000000000000000000000000007374617465206469666620636f6d7072657373696f6e2076657273696f6e206d000000000000000000000000000000000000000000000000000000000007ef416006d8b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffe00000000000000000000000000000000000000000000000000000000001ffffe04c31204d657373656e676572207075626461746120697320746f6f206c6f6e674e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000546f6f206d616e79204c322d3e4c31206c6f677300000000000000000000000000000000000000000000000000000000000000000000000000000000000100006f2062652073797374656d20636f6e747261637400000000000000000000000054686973206d6574686f642072657175697265207468652063616c6c65722074496e617070726f7072696174652063616c6c65720000000000000000000000000000000000000000000000000000000000000064000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffff40000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffffa000000000000000000000000000000000000000000000000000000000ffffffd80200000000000000000000000000000000000020000000000000000000000000480d3c9f727b5e5c1203d4c61fb185d37f08e6b2dc5e9bbf98591b1a7addf57c64617461206172726179000000000000000000000000000000000000000000004578747261206461746120696e2074686520746f74616c4c32546f4c315075620000000000000000000000000000000000000000000000000000000000000000918be26e3402038993f44a7d3e3c4373187a68986a393c0b39192bb13d9ba4c6", - "deployedBytecode": "0x0004000000000002000e00000000000200000000030100190000006003300270000002af0430019700030000004103550002000000010355000002af0030019d000100000000001f0000008003000039000000400030043f00000001012001900000004b0000c13d000400000003001d0000000001000031000000040110008c000000bb0000413d0000000201000367000000000101043b000000e001100270000002b10210009c000000530000213d000002b40210009c000000900000613d000002b50110009c000000bb0000c13d0000000001000416000000000101004b000000bb0000c13d000000040100008a0000000001100031000002b602000041000000600310008c00000000030000190000000003024019000002b601100197000000000401004b000000000200a019000002b60110009c00000000010300190000000001026019000000000101004b000000bb0000c13d00000004010000390000000201100367000000000201043b000000000102004b0000000001000019000000010100c039000000000112004b000000bb0000c13d000000400400043d0000000003000411000002f20130009c000001040000413d0000006401400039000002f30200004100000000002104350000004401400039000002f4020000410000000000210435000000240140003900000034020000390000000000210435000002c9010000410000000000140435000000040140003900000020020000390000000000210435000002af01000041000002af0240009c00000000010440190000004001100210000002d2011001c700000aba000104300000000001000416000000000101004b000000bb0000c13d000000200100003900000100001004430000012000000443000002b00100004100000ab90001042e000002b20210009c000000aa0000613d000002b30110009c000000bb0000c13d0000000001000416000000000101004b000000bb0000c13d0000000001000031000000040210008a000002b603000041000000200420008c00000000040000190000000004034019000002b602200197000000000502004b000000000300a019000002b60220009c00000000020400190000000002036019000000000202004b000000bb0000c13d00000002030003670000000402300370000000000202043b000002b70420009c000000bb0000213d0000002304200039000002b605000041000000000614004b00000000060000190000000006058019000002b607100197000002b604400197000000000874004b0000000005008019000000000474013f000002b60440009c00000000040600190000000004056019000000000404004b000000bb0000c13d0000000404200039000000000343034f000000000503043b000002b70350009c000000bb0000213d00000024062000390000000002650019000000000112004b000000bb0000213d000000000700041400000000010004140000000003000031000000000423004b000001940000813d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba000104300000000001000416000000000101004b000000bb0000c13d000000040100008a0000000001100031000002b602000041000000200310008c00000000030000190000000003024019000002b601100197000000000401004b000000000200a019000002b60110009c00000000010300190000000001026019000000000101004b000000bb0000c13d0000000001000411000080040110008c000000fa0000c13d00000004010000390000000201100367000000000101043b0ab8094c0000040f000000000100001900000ab90001042e0000000001000416000000000101004b000000bb0000c13d0000000001000031000000040210008a000002b603000041000000200420008c00000000040000190000000004034019000002b602200197000000000502004b000000000300a019000002b60220009c00000000020400190000000002036019000000000202004b000000bd0000613d000000000100001900000aba0001043000000002020003670000000403200370000000000303043b000002b70430009c000000bb0000213d0000002304300039000002b605000041000000000614004b00000000060000190000000006058019000002b607100197000002b604400197000000000874004b0000000005008019000000000474013f000002b60440009c00000000040600190000000004056019000000000404004b000000bb0000c13d0000000404300039000000000442034f000000000404043b000800000004001d000002b70440009c000000bb0000213d0000002403300039000700000003001d00000008040000290000000003340019000000000113004b000000bb0000213d0000000001000411000080010110008c000001a80000c13d0000000801000029000000040110008c000000bb0000413d0000000701000029000000000112034f000000400300043d000000000201043b000002cc0120009c000003620000413d0000004401300039000002f1020000410000000000210435000000240130003900000014020000390000000000210435000002c9010000410000000000130435000000040130003900000020020000390000000000210435000002af01000041000002af0230009c00000000010340190000004001100210000002ca011001c700000aba00010430000002c901000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f000002f501000041000000c40010043f000002f60100004100000aba00010430000c00000003001d000d00000002001d000002bd010000410000000000140435000002af010000410000000002000414000002af0320009c0000000002018019000002af0340009c00000000010440190000004001100210000000c002200210000000000112019f000002be011001c70000800b02000039000e00000004001d0ab80aae0000040f0000000e0a00002900000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001280000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001200000413d000000000705004b000001370000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000016e0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000002b70410009c000003660000213d0000000102200190000003660000c13d000000400010043f000000200130008c0000000d02000029000000bb0000413d00000000030a04330000ffff0130008c000000bb0000213d000e00000003001d0ab8089d0000040f00000060021000390000000c03000029000000000032043500000040021000390000000e03000029000000000032043500000020021000390000000d030000290000000000320435000000000001043500000024020000390000000202200367000000000202043b0000008003100039000000000023043500000044020000390000000202200367000000000202043b000000a00310003900000000002304350ab808a90000040f000e00000001001d0ab80a920000040f000000400100043d0000000e020000290000000000210435000002af02000041000002af0310009c00000000010280190000004001100210000002c7011001c700000ab90001042e000000400200043d0000001f0430018f00000005033002720000017b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001730000413d000000000504004b0000018a0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000002af0410009c000001ba0000a13d000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002cb03000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000e00000007001d000d00000005001d0000000002230049000002af02200197000c00000006001d000002af03600197000000020330036700000000022303df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000003470000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f043000390000000504400272000001ea0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000001e20000413d000000000400004b000001ec0000613d0000000104000031000000000443004b000000bb0000213d00000003050003670000001f0430018f0000000503300272000001fc0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000001f40000413d000000000604004b0000020b0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000005df0000c13d0000000001020433000b00000001001d00000000020004140000000e01000029000a00000002001d000000000121004b0000008a0000413d0000000201000039000900000001001d000000000301041a000000400100043d00000040021000390000000b040000290000000000420435000000200210003900000000003204350000004003000039000800000003001d0000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b0000000902000029000000000012041b000002bd01000041000000400400043d000900000004001d0000000000140435000002af010000410000000002000414000002af0320009c0000000002018019000002af0340009c00000000010440190000004001100210000000c002200210000000000112019f000002be011001c70000800b020000390ab80aae0000040f000000090a00002900000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000025e0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002560000413d00000000090a0019000000000705004b0000026e0000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000004b20000613d0000001f01400039000000600110018f0000000002910019000000000112004b00000000010000190000000101004039000700000002001d000002b70220009c000003660000213d0000000101100190000003660000c13d0000000701000029000000400010043f000000200130008c000000bb0000413d00000000010904330000ffff0210008c000000bb0000213d0000000702000029000002bf0220009c000003660000213d0000000703000029000000c002300039000000400020043f0000000004000410000002c0024001970000006005300039000500000005001d000000000025043500000020053000390000000102000039000900000002001d000300000005001d0000000000250435000000a0023000390000000b07000029000600000002001d000000000072043500000080023000390000000008000411000400000002001d000000000082043500000000000304350000004002300039000200000002001d0000000000120435000000400200043d000000200320003900000000000304350000002105200039000002c1060000410000000000650435000000f0011002100000002205200039000000000015043500000060014002100000002404200039000000000014043500000058012000390000000000710435000000580100003900000000001204350000003801200039000100000008001d0000000000810435000002c20120009c000003660000213d0000008001200039000000400010043f000002af01000041000002af0430009c000000000301801900000040033002100000000002020433000002af0420009c00000000020180190000006002200210000000000232019f0000000003000414000002af0430009c0000000001034019000000c001100210000000000121019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000008030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b000000000010041b0000000901000029000000000101041a000000010200008a000000000221004b0000008a0000613d00000001011000390000000903000029000000000013041b00000007010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000020100002900000000010104330000ffff0110018f0000004004200039000000000014043500000005010000290000000001010433000002c00110019700000060042000390000000000140435000000040100002900000000010104330000008004200039000000000014043500000006010000290000000001010433000000a0042000390000000000140435000002af01000041000002af0420009c00000000020180190000000005000414000002af0450009c00000000010540190000004002200210000000c001100210000000000121019f000002c3011001c70000800d02000039000002c4040000410ab80aa90000040f0000000d030000290000000101200190000000bb0000613d0000005c023000390000000001000413000002af0310019700000000412300a9000002c502200197000002c50410019700000000422400d9000000000223004b0000000e020000290000008a0000c13d0000000a030000290000000002320049000000a001100039000000000121001a0000008a0000413d000002af0210009c000001960000213d0000000002100420000000400100043d000000000202004b000006e70000c13d0000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f0000000502300272000003520000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000034b0000413d000000000504004b000003600000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000300000002001d000b00000003001d000002cd0130009c0000036c0000a13d000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba000104300000000307000029000000e0067002700000000b02000029000002ce01200041000000400010043f0000080001000039000900000001001d000000000512043600000000010000310000000201100367000000000200001900000005032002100000000004350019000000000331034f000000000303043b00000000003404350000000102200039000008000320008c000003770000413d000a00000005001d0000000402000039000002b90170009c0000000007000019000600000006001d000003e90000813d000d00000002001d000000000100041a000000000117004b000004820000c13d0000000301000029000002d30110009c0000000b030000290000000a0400002900000006050000290000039a0000213d0000000001030433000000000151004b000003e30000a13d00000005015002100000000001410019000002d40200004100000000002104350000000101500039000007ff0250008c00000000050100190000038f0000413d0000004001000039000c00000001001d0000801001000039000600000001001d0000000901000029000500000001001d0000000101100270000900000001001d000000000500001900000000010304330000000102500210000000000321004b000003e30000a13d00000001022001bf000000000121004b000003e30000a13d00000005012002100000000001410019000e00000005001d0000000602500210000000000242001900000000030204330000000002010433000000400100043d00000040041000390000000000240435000000200210003900000000003204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700000006020000290ab80aae0000040f0000000102200190000000bb0000613d0000000b0300002900000000020304330000000e05000029000000000252004b0000000a04000029000003e30000a13d00000005025002100000000002420019000000000101043b000000000012043500000001055000390000000901000029000000000115004b000003a30000413d0000000501000029000000030110008c0000039e0000213d0000000001030433000000000101004b000004d80000c13d000002ef0100004100000000001004350000003201000039000000040010043f000002f00100004100000aba000104300000000401000039000000590200008a000500000002001d0000000007000019000000000600001900000058031000390000000802000029000d00000003001d000000000223004b000000bb0000213d000000070200002900000000022100190000000001000414000002af032001970000000504000029000000000442004b0000008a0000213d00000058022000390000000004000031000000000524004b0000008a0000413d000c00000007001d000e00000006001d0000000203300367000002cf0510009c000001960000813d0000000002240049000002af0220019700000000022303df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000004970000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c0000000e09000029000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000000c0a000029000004300000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004280000413d000000000400004b000004320000613d0000000104000031000000000443004b000000bb0000213d00000003040003670000000505300272000004410000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000004390000413d0000001f03300190000004500000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000005df0000c13d0000000b010000290000000001010433000000000191004b0000000a03000029000003e30000a13d0000000501900210000000000131001900000000020204330000000000210435000000400100043d00000040031000390000000000230435000000400200003900000000022104360000000000a20435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000e0600002900000001022001900000000602000029000000bb0000613d000000000701043b0000000106600039000000000126004b0000000d020000290000000001020019000003ee0000413d000003850000013d000000400100043d0000006402100039000002d00300004100000000003204350000004402100039000002d103000041000000000032043500000024021000390000003c030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba000104300000001f0430018f0000000502300272000004a20000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000049b0000413d000000000504004b000004b00000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000400200043d0000001f0430018f0000000503300272000004bf0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004b70000413d000000000504004b000004ce0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000000050100008a000900000001001d0000000d02000029000000000112004b0000008a0000213d0000000d0100002900000004031000390000000801000029000000000113004b000000bb0000213d0000000a010000290000000001010433000500000001001d00000007010000290000000d0200002900000000011200190000000201100367000000000101043b000002b90210009c0000000007000019000005450000813d0000000201000039000300000001001d000000000101041a000000000117004b000005f10000c13d0000000901000029000000000113004b0000008a0000213d00000004023000390000000801000029000e00000002001d000000000112004b000000bb0000213d000000070100002900000000011300190000000201100367000000000101043b000002b90210009c000b00000000001d000006240000813d0000000301000039000d00000001001d000000000101041a0000000b02000029000000000112004b000006cf0000c13d00000008010000290000000e02000029000000000112004b000003e30000813d00000007010000290000000e0200002900000000011200190000000203000367000000000213034f000000000202043b000002e702200197000002c10220009c0000072e0000c13d00000009020000290000000e04000029000000000224004b0000008a0000213d0000000e0200002900000004022000390000000804000029000000000442004b000000bb0000213d0000000101100039000000000113034f000000000101043b0000000804000029000000000442004b000003e30000813d000000e80110027000000007040000290000000002420019000000000423034f0000000e020000290000000502200039000000000521001a000c00000005001d000000000404043b0000008a0000413d00000008050000290000000c06000029000000000556004b000000bb0000213d0000000c05000029000002ea0550009c000007a60000413d000000400100043d0000004402100039000002ee030000410000000000320435000002c902000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000e001100270000a00000001001d0000000007000019000e00000000001d0000000901000029000000000113004b0000008a0000213d00000004013000390000000802000029000000000221004b000000bb0000213d000000070200002900000000022300190000000202200367000000000202043b000000e002200270000000000612001a0000008a0000413d0000000803000029000000000336004b000000bb0000213d000000070300002900000000033100190000000001000414000000000232001a000002af043001970000008a0000413d0000000003000031000000000523004b0000008a0000413d000d00000007001d000b00000006001d0000000204400367000002af0510009c000001960000213d0000000002230049000002af0220019700000000022403df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000006090000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000000d09000029000005940000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000058c0000413d000000000400004b000005960000613d0000000104000031000000000443004b000000bb0000213d00000003040003670000000505300272000005a50000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b0000059d0000413d0000001f03300190000005b40000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000005df0000c13d0000000002020433000000400100043d00000040031000390000000000230435000000200210003900000000009204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000000b03000029000000bb0000613d000000000701043b0000000e0200002900000001022000390000000a01000029000e00000002001d000000000112004b000005490000413d000004ed0000013d000000400100043d0000004402100039000002d503000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000008402100039000002d60300004100000000003204350000006402100039000002d70300004100000000003204350000004402100039000002d8030000410000000000320435000000240210003900000044030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d9011001c700000aba000104300000001f0430018f0000000502300272000006140000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000060d0000413d000000000504004b000006220000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000e001100270000600000001001d000b00000000001d000a00000000001d00000009010000290000000e02000029000000000112004b0000008a0000213d0000000e0100002900000004011000390000000802000029000000000221004b000000bb0000213d00000007020000290000000e0300002900000000022300190000000202200367000000000202043b000000e003200270000d00000003001d000000000313001a000e00000003001d0000008a0000413d00000008030000290000000e04000029000000000334004b000000bb0000213d000002da03200198000007430000c13d000002dc0320009c000007550000813d000002dd02200198000007670000613d0000000702000029000000000321001900000000010004140000000d02000029000000000232001a000002af043001970000008a0000413d0000000003000031000000000523004b0000008a0000413d0000000204400367000002af0510009c000001960000213d0000000002230049000002af0220019700000000022403df000000c001100210000002b801100197000002b9011001c700000000011203af00000002020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000007790000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000067d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000006750000413d000000000400004b0000067f0000613d0000000104000031000000000443004b000000bb0000213d000000030400036700000005053002720000068e0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006860000413d0000001f033001900000069d0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000007940000c13d0000000001020433000002df011001970000000d02000029000000db02200210000002e002200197000000000112019f000002c1021001c7000000400100043d0000004003100039000000000023043500000020021000390000000b0300002900000000003204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b000b00000001001d0000000a0200002900000001022000390000000601000029000a00000002001d000000000112004b000006280000413d000005010000013d000000400100043d0000008402100039000002e40300004100000000003204350000006402100039000002e50300004100000000003204350000004402100039000002e603000041000000000032043500000024021000390000005e030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d9011001c700000aba00010430000000200200003900000000022104360000000d0500002900000000005204350000001f0350018f00000040021000390000000c0400002900000002044003670000000505500272000006fa0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006f20000413d000000000603004b000007090000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000d03000029000000000232001900000000000204350000005f02300039000000200300008a000000000232016f000002af03000041000002af0410009c00000000010380190000004001100210000002af0420009c00000000020380190000006002200210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c70000800d020000390000000303000039000002c60400004100000001050000290000000b060000290ab80aa90000040f0000000101200190000000bb0000613d000000400100043d0000000b020000290000000000210435000002af02000041000002af0310009c00000000010280190000004001100210000002c7011001c700000ab90001042e000000400100043d0000006402100039000002e80300004100000000003204350000004402100039000002e9030000410000000000320435000000240210003900000027030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba00010430000000400100043d0000004402100039000002db030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002e3030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002e2030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f0000000502300272000007840000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000077d0000413d000000000504004b000007920000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000400100043d0000004402100039000002de030000410000000000320435000000240210003900000019030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000000c0500002900000004055000390000000806000029000000000665004b000000bb0000213d00000007060000290000000c070000290000000006670019000000000363034f000000000703043b000000e00670027000000110836000c9000002b90770009c000007b70000413d00000000876300d9000001100770008c0000008a0000c13d00000000085300190000000807000029000b00000008001d000000000778004b000000bb0000213d000000f804400270000000400900043d00000044079000390000000408000029000000000087043500000024079000390000000000470435000002eb0400004100000000004904350000008404900039000000000034043500000004049000390000000000640435000000070600002900000000076500190000001f0630018f000e00000009001d000000a40590003900000002087003670000000509300272000007da0000613d0000000007000019000000050a700210000000000ba50019000000000aa8034f000000000a0a043b0000000000ab04350000000107700039000000000a97004b000007d20000413d00000007070000290000000007720019000000000206004b000007eb0000613d0000000502900210000000000828034f00000000022500190000000306600210000000000902043300000000096901cf000000000969022f000000000808043b0000010006600089000000000868022f00000000066801cf000000000696019f0000000000620435000000000235001900000000000204350000001f02300039000002ec02200197000000000225001900000000034200490000000e04000029000000640440003900000000003404350000001f0310018f000000000212043600000002047003670000000505100272000008020000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000007fa0000413d000000000603004b000008110000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000312001900000000000304350000001f01100039000002ed011001970000000e0400002900000000014100490000000001210019000002af02000041000002af0340009c000000000302001900000000030440190000004003300210000002af0410009c00000000010280190000006001100210000000000131019f0000000003000414000002af0430009c0000000002034019000000c002200210000000000112019f0000800e020000390ab80aa90000040f00000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000083b0000613d000000000700001900000005087002100000000e090000290000000009890019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000008320000413d000000000705004b0000084b0000613d0000000506600210000000000761034f0000000e0800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000008770000613d0000001f01400039000000600210018f0000000e010000290000000001120019000000000221004b00000000020000190000000102004039000002b70410009c000003660000213d0000000102200190000003660000c13d000000400010043f000000200130008c000000bb0000413d00000008010000290000000b02000029000000000112004b000000000100001900000001010060390000000e020000290000000002020433000e00000002001d0ab809ce0000040f0000000501000029000000000010041d00000007010000290000000c020000290ab809e60000040f0000000102000039000000000012041d00000003010000290000000e03000029000000000031041d000000000000041b000000000002041b000000000001041b0000000d01000029000000000001041b000000000100001900000ab90001042e000000400200043d0000001f0430018f0000000503300272000008840000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000087c0000413d000000000504004b000008930000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000000400100043d000002f70210009c000008a30000813d000000c002100039000000400020043f000000000001042d000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba0001043000070000000000020000000082010434000000f80320021000000040071000390000006006100039000000a005100039000200000001001d0000008002100039000600000002001d0000000004020433000700000005001d0000000005050433000500000006001d0000000006060433000400000007001d0000000007070433000300000008001d0000000008080433000000400100043d00000020021000390000000000320435000002c103000041000000000808004b000000000300601900000021081000390000000000380435000000f00370021000000022071000390000000000370435000000600360021000000024061000390000000000360435000000580310003900000000005304350000003803100039000000000043043500000058030000390000000000310435000002f80310009c000009400000813d0000008003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000093e0000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000040030000390000000000310435000002bb0310009c000009400000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000093e0000613d000000000101043b000000000010041b0000000103000039000000000203041a000000010100008a000000000112004b000009460000613d000100000002001d0000000101200039000000000013041b00000002010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000040100002900000000010104330000ffff0110018f0000004004200039000000000014043500000005010000290000000001010433000002c00110019700000060042000390000000000140435000000060100002900000000010104330000008004200039000000000014043500000007010000290000000001010433000000a0042000390000000000140435000002af01000041000002af0420009c00000000020180190000000004000414000002af0540009c00000000010440190000004002200210000000c001100210000000000121019f000002c3011001c70000800d02000039000002c4040000410ab80aa90000040f00000001012001900000093e0000613d0000000101000029000000000001042d000000000100001900000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba0001043000020000000000020000000302000039000100000002001d000000000302041a000000400500043d0000004002500039000200000001001d00000000001204350000002002500039000000000032043500000040030000390000000000350435000002f90350009c000009a50000813d0000006003500039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001050433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000009a30000613d000000000101043b0000000102000029000000000012041b0000000001000413000002af031001970000000206000029000000e0016002700000ffff0210018f000000050120021000000004041001bf00000000514300a900000000544100d9000000000343004b0000099d0000c13d0000000102200270000000010320003900000007423000c9000000075420011a000000000343004b0000099d0000c13d0000000001210019000002fa0210009c000009ab0000813d00000028011000390000000002100420000000400100043d000000000202004b000009bd0000613d0000000000610435000002af020000410000000003000414000002af0430009c0000000003028019000002af0410009c00000000010280190000004001100210000000c002300210000000000112019f000002fb011001c70000800d020000390000000103000039000002fc040000410ab80aa90000040f0000000101200190000009a30000613d000000000001042d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba00010430000000000100001900000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000000101004b000009d10000613d000000000001042d000000400100043d0000006402100039000002fd0300004100000000003204350000004402100039000002fe03000041000000000032043500000024021000390000002a030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba0001043000000000030004140000000004120019000000000224004b00000000050000190000000105004039000002af02100197000000010150019000000a450000c13d0000000001000031000000000541004b00000a450000413d0000000202200367000002cf0530009c00000a4b0000813d0000000001410049000002af0110019700000000011203df000000c002300210000002b802200197000002b9022001c700000000012103af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af033001970003000000010355000000010220019000000a5d0000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c00000a780000213d000000010440019000000a780000c13d000000400020043f00000000023104360000001f04300039000000050440027200000a1f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000a170000413d000000000400004b00000a210000613d0000000104000031000000000443004b00000a7e0000213d00000003050003670000001f0430018f000000050330027200000a310000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000a290000413d000000000604004b00000a400000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000a800000c13d0000000001020433000000000001042d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba00010430000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f000000050230027200000a680000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000a610000413d000000000504004b00000a760000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000000000100001900000aba00010430000000400100043d0000004402100039000002d503000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba0001043000000078010000390000000001100420000000000101004b00000a970000613d000000000001042d000000400100043d0000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba0001043000000aac002104210000000102000039000000000001042d0000000002000019000000000001042d00000ab1002104230000000102000039000000000001042d0000000002000019000000000001042d00000ab6002104230000000102000039000000000001042d0000000002000019000000000001042d00000ab80000043200000ab90001042e00000aba00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000628b636d00000000000000000000000000000000000000000000000000000000628b636e0000000000000000000000000000000000000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000039b34c6e0000000000000000000000000000000000000000000000000000000056079ac88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff00000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff9f02000000000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f02000000000000000000000000000000000000c000000000000000000000000027fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d00000000000000000000000000000000ffffffffffffffffffffffffffffffff3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce24100000000000000000000000000000000000000200000000000000000000000004661696c656420746f206368617267652067617300000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffeffdf000000000000000000000000000000000000000000000000000000000001002000000000000000000000000000000000000000000000000000000001000000006e6f7420657175616c20746f20636861696e65644c6f677348617368000000007265636f6e7374727563746564436861696e65644c6f677348617368206973200000000000000000000000000000000000000084000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff72abee45b59e344af8a6e520241c4744aff26ed411f4c4b00f8af09adada43ba6b656363616b3235362072657475726e656420696e76616c69642064617461004861736800000000000000000000000000000000000000000000000000000000206973206e6f7420657175616c20746f20636861696e65644d657373616765737265636f6e7374727563746564436861696e65644d657373616765734861736800000000000000000000000000000000000000a40000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000007368612072657475726e656420696e76616c696420646174610000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff06ffffff000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000061696e65644c3142797465636f64657352657665616c44617461486173680000657665616c4461746148617368206973206e6f7420657175616c20746f2063687265636f6e7374727563746564436861696e65644c3142797465636f64657352ff0000000000000000000000000000000000000000000000000000000000000069736d61746368000000000000000000000000000000000000000000000000007374617465206469666620636f6d7072657373696f6e2076657273696f6e206d000000000000000000000000000000000000000000000000000000000007ef416006d8b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffe00000000000000000000000000000000000000000000000000000000001ffffe04c31204d657373656e676572207075626461746120697320746f6f206c6f6e674e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000546f6f206d616e79204c322d3e4c31206c6f677300000000000000000000000000000000000000000000000000000000000000000000000000000000000100006f2062652073797374656d20636f6e747261637400000000000000000000000054686973206d6574686f642072657175697265207468652063616c6c65722074496e617070726f7072696174652063616c6c65720000000000000000000000000000000000000000000000000000000000000064000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffff40000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffffa000000000000000000000000000000000000000000000000000000000ffffffd80200000000000000000000000000000000000020000000000000000000000000480d3c9f727b5e5c1203d4c61fb185d37f08e6b2dc5e9bbf98591b1a7addf57c64617461206172726179000000000000000000000000000000000000000000004578747261206461746120696e2074686520746f74616c4c32546f4c315075620000000000000000000000000000000000000000000000000000000000000000918be26e3402038993f44a7d3e3c4373187a68986a393c0b39192bb13d9ba4c6", + "bytecode": "0x0002000000000002000e0000000000020001000000010355000000000301001900000060053002700000023c0050019d0000008004000039000000400040043f0000023c035001970000000102200190000000310000c13d000000040230008c000001250000413d000000000201043b000000e0022002700000023e0620009c000000390000213d000002410420009c000000710000613d000002420220009c000001250000c13d0000000002000416000000000202004b000001250000c13d000000040230008a000000600220008c000001250000413d0000000401100370000000000301043b000000000103004b0000000001000019000000010100c039000000000113004b000001250000c13d0000000002000411000002810120009c000000ec0000413d0000025701000041000000800010043f0000002001000039000000840010043f0000003401000039000000a40010043f0000028301000041000000c40010043f0000028401000041000000e40010043f0000028501000041000008ec000104300000000001000416000000000101004b000001250000c13d0000002001000039000001000010044300000120000004430000023d01000041000008eb0001042e0000023f0620009c000000ae0000613d000002400220009c000001250000c13d0000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000402100370000000000202043b000002430620009c000001250000213d00000023062000390000024407000041000000000836004b000000000800001900000000080780190000024406600197000000000906004b0000000007008019000002440660009c000000000708c019000000000607004b000001250000c13d0000000406200039000000000661034f000000000706043b000002430670009c000001250000213d00000024082000390000000002870019000000000323004b000001250000413d00000000090004140000000003000414000002450630009c0000014a0000413d000000440140003900000259020000410000000000210435000000240140003900000008020000390000000000210435000002570100004100000000001404350000000401400039000000200200003900000000002104350000023c010000410000023c0240009c0000000004018019000000400140021000000258011001c7000008ec000104300000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000002000411000080040220008c000000e20000c13d0000000401100370000000000201043b0000000301000039000d00000001001d000000000101041a000000a00010043f000e00000002001d000000c00020043f0000004001000039000000800010043f000000e001000039000000400010043f0000023c0100004100000000020004140000023c0320009c0000000002018019000000c00120021000000287011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b0000000d02000029000000000012041b00000000010004130000023c031001970000000e06000029000000e0016002700000ffff0210018f000000050120021000000004041001bf00000000514300a900000000544100d9000000000343004b0000019d0000c13d0000000102200270000000010320003900000007423000c9000000075420011a000000000343004b0000019d0000c13d0000000001210019000002880210009c000001df0000413d000000400100043d00000044021000390000025903000041000000000032043500000024021000390000000803000039000005ee0000013d0000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000402100370000000000202043b000002430420009c000001250000213d00000023042000390000024405000041000000000634004b000000000600001900000000060580190000024404400197000000000704004b0000000005008019000002440440009c000000000506c019000000000405004b000001250000c13d0000000404200039000000000541034f000000000505043b000b00000005001d000002430550009c000001250000213d0000002402200039000a00000002001d0000000b02200029000000000232004b000001250000213d0000000002000411000080010220008c000001a30000c13d0000000b02000029000000040220008c000001250000413d0000002002400039000000000221034f000000000402043b0000025c0240009c0000029b0000413d0000025701000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000028001000041000000e90000013d0000025701000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000028601000041000000c40010043f0000025b01000041000008ec00010430000e00000003001d000d00000002001d0000024b01000041000000800010043f0000023c0100004100000000020004140000023c0320009c0000000002018019000000c00120021000000282011001c70000800b0200003908ea08e00000040f000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000010a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001020000413d000000000705004b000001190000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000001270000613d0000001f01400039000000600210018f00000080082001bf000000400080043f000000200130008c0000000e05000029000001250000413d000000800100043d0000ffff0310008c000001ab0000a13d0000000001000019000008ec00010430000000400200043d0000001f0430018f0000000505300272000001340000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000012c0000413d000000000604004b000001430000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000023c010000410000023c0420009c000000000201801900000040012002100000006002300210000000000121019f000008ec00010430000e00000009001d000d00000007001d000c00000008001d0000023c04800197000000000141034f00000000022500490000023c0220019700000000012103df000000c002300210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000001ea0000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f053000390000000505500272000001780000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001700000413d000000000500004b0000017a0000613d0000001f0530018f00000005033002720000000e09000029000001870000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000017f0000413d000000000605004b000001960000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c000005e80000c13d00000000040404330000000002000414000000000129004b000003ad0000813d0000027e0100004100000000001004350000001101000039000000040010043f0000027f01000041000008ec000104300000025701000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000025a01000041000000e90000013d0000014003200039000000400030043f0000000000080435000000a003200039000b00000003001d00000000005304350000024f04000041000000000305004b0000000004006019000000e003200039000e00000003001d0000000d090000290000000000930435000000c003200039000900000003001d000000000013043500000001030003670000002405300370000000000505043b000001200720003900000100022001bf000a00000002001d00000000005204350000004402300370000000000602043b000c00000007001d00000000006704350000000002080433000000f807200210000000400200043d0000002003200039000000000073043500000021072000390000000000470435000000f00110021000000022042000390000000000140435000000600190021000000024042000390000000000140435000000580120003900000000006104350000003801200039000000000051043500000058010000390000000000120435000002500120009c000002050000a13d0000027e0100004100000000001004350000004101000039000001a00000013d00000028011000390000000002100420000000400100043d000000000202004b000002880000c13d00000044021000390000025603000041000000000032043500000024021000390000001403000039000005ee0000013d0000001f0430018f0000000502300272000001f50000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000001ee0000413d000000000504004b000002030000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec000104300000008001200039000000400010043f0000023c010000410000023c0430009c0000000003018019000000400330021000000000020204330000023c0420009c00000000020180190000006002200210000000000232019f00000000030004140000023c0430009c0000000003018019000000c001300210000000000121019f0000024a011001c70000801002000039000d00000008001d08ea08e00000040f0000000102200190000001250000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000040030000390000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c030000410000023c0420009c0000000002038019000000400220021000000000010104330000023c0410009c00000000010380190000006001100210000000000121019f00000000020004140000023c0420009c0000000002038019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b000000000010041b0000000103000039000000000203041a000000010100008a000800000002001d000000000112004b0000019d0000613d00000008010000290000000101100039000000000013041b0000000d010000290000000001010433000000ff0110018f000000400200043d00000000011204360000000b040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000090100002900000000010104330000ffff0110018f000000400420003900000000001404350000000e0100002900000000010104330000024e01100197000000600420003900000000001404350000000a010000290000000001010433000000800420003900000000001404350000000c010000290000000001010433000000a00420003900000000001404350000023c050000410000023c0120009c000000000205801900000000010004140000023c0410009c00000000010580190000004002200210000000c001100210000000000121019f00000251011001c70000800d02000039000002520400004108ea08db0000040f0000000101200190000001250000613d00000078010000390000000003100420000000400100043d0000023c0210009c0000023c0200004100000000020140190000004002200210000000000303004b000005020000c13d0000004403100039000002560400004100000000004304350000002403100039000000140400003900000000004304350000025703000041000000000031043500000004011000390000002003000039000000000031043500000258012001c7000008ec0001043000000000006104350000023c0200004100000000030004140000023c0430009c00000000030280190000023c0410009c00000000010280190000004001100210000000c002300210000000000112019f00000289011001c70000800d0200003900000001030000390000028a0400004108ea08db0000040f0000000101200190000001250000613d0000000001000019000008eb0001042e000000000131034f000600000004001d000000e0064002700000025d02000041000000400020043f0000080002000039000700000002001d000000800020043f000000a00200003900000000030000190000000504300210000000000441034f000000000404043b00000000024204360000000103300039000008000430008c000002a50000413d00000004020000390000000601000029000002470110009c00000000080000190000030a0000813d000000000100041a000000000118004b000003980000c13d000d00000002001d0000000601000029000002610110009c000002c20000213d0000026201000041000000800200043d000000000262004b000003060000a13d0000000502600210000000a0022000390000000000120435000007ff0260008c0000000106600039000002b90000413d000900400000003d000880100000003d0000000701000029000600000001001d000700010010027800000000040000190000000101400210000000800200043d000000000312004b000003060000a13d00000001011001bf000000000212004b000003060000a13d0000000501100210000000a0011000390000000002010433000e00000004001d0000000601400210000000a001100039000c00000001001d0000000003010433000000400100043d000000400410003900000000002404350000002002100039000000000032043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000000080200002908ea08e00000040f0000000102200190000001250000613d000000800200043d0000000e04000029000000000242004b000003060000a13d00000005024002100000000c02200069000000000101043b00000000001204350000000104400039000000070140006c000002c80000413d0000000601000029000000030110008c000002c40000213d000000800100043d000000000101004b000005060000c13d0000027e0100004100000000001004350000003201000039000001a00000013d0000000401000039000900590000009200000000070000190000000008000019000800000006001d0000005803100039000d00000003001d0000000b0230006c000001250000213d0000000a0210002900000000010004140000023c03200197000000090420006c0000019d0000213d00000058022000390000000004000031000000000524004b0000019d0000413d000c00000008001d000e00000007001d00000001033003670000023c0510009c000000a70000213d00000000022400490000023c0220019700000000022303df000000c001100210000002460110019700000247011001c700000000011203af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000004ca0000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f0530003900000005055002720000034a0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003420000413d000000000500004b0000034c0000613d0000000505300272000003570000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000034f0000413d0000001f03300190000003660000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f00000000001504350000000001020433000000200110008c0000000e030000290000000c05000029000005e80000c13d000000800100043d000000000131004b000003060000a13d00000000020404330000000501300210000000a0011000390000000000210435000000400100043d00000040031000390000000000230435000000400200003900000000022104360000000000520435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f000000010220019000000008060000290000000e07000029000001250000613d000000000801043b0000000107700039000000000167004b0000000d0200002900000000010200190000030f0000413d000002b10000013d000000400100043d00000064021000390000025e03000041000000000032043500000044021000390000025f03000041000000000032043500000024021000390000003c030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000260011001c7000008ec00010430000800000002001d0000000201000039000b00000001001d000000000301041a000000400100043d0000004002100039000a00000004001d0000000000420435000000200210003900000000003204350000004003000039000900000003001d0000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c040000410000023c0320009c0000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b0000000b02000029000000000012041b0000024b01000041000000400400043d000b00000004001d000000000014043500000000010004140000023c0210009c0000023c0300004100000000010380190000023c0240009c00000000030440190000004002300210000000c001100210000000000121019f0000024c011001c70000800b0200003908ea08e00000040f0000000b0a000029000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003f70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003ef0000413d00000000090a0019000000000705004b000004070000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000004e50000613d0000001f01400039000000600110018f0000000002910019000000000112004b00000000010000190000000101004039000700000002001d000002430220009c000001db0000213d0000000101100190000001db0000c13d0000000701000029000000400010043f000000200130008c000001250000413d00000000010904330000ffff0210008c000001250000213d00000007020000290000024d0220009c000001db0000213d0000000703000029000000c002300039000000400020043f00000000040004100000024e024001970000006005300039000500000005001d000000000025043500000020053000390000000102000039000b00000002001d000300000005001d0000000000250435000000a0023000390000000a07000029000600000002001d000000000072043500000080023000390000000008000411000400000002001d000000000082043500000000000304350000004002300039000200000002001d0000000000120435000000400200043d0000002003200039000000000003043500000021052000390000024f060000410000000000650435000000f0011002100000002205200039000000000015043500000060014002100000002404200039000000000014043500000058012000390000000000710435000000580100003900000000001204350000003801200039000100000008001d0000000000810435000002500120009c000001db0000213d0000008001200039000000400010043f0000023c010000410000023c0430009c0000000003018019000000400330021000000000020204330000023c0420009c00000000020180190000006002200210000000000232019f00000000030004140000023c0430009c0000000003018019000000c001300210000000000121019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c030000410000023c0420009c0000000002038019000000400220021000000000010104330000023c0410009c00000000010380190000006001100210000000000121019f00000000020004140000023c0420009c0000000002038019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b000000000010041b0000000b01000029000000000101041a000000010200008a000000000221004b0000019d0000613d00000001011000390000000b03000029000000000013041b00000007010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000020100002900000000010104330000ffff0110018f00000040042000390000000000140435000000050100002900000000010104330000024e0110019700000060042000390000000000140435000000040100002900000000010104330000008004200039000000000014043500000006010000290000000001010433000000a00420003900000000001404350000023c010000410000023c0420009c000000000201801900000000050004140000023c0450009c00000000050180190000004001200210000000c002500210000000000112019f00000251011001c70000800d02000039000002520400004108ea08db0000040f00000001012001900000000d01000029000001250000613d0000005c0210003900000000010004130000023c0310019700000000412300a90000025302200197000002530410019700000000422400d9000000000223004b00000008030000290000019d0000c13d0000000e02300069000000a001100039000000000121001a0000019d0000413d000002450210009c000006c80000413d000000400400043d000000600000013d0000001f0430018f0000000502300272000004d50000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004ce0000413d000000000504004b000004e30000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec00010430000000400200043d0000001f0430018f0000000505300272000004f20000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000004ea0000413d000000000604004b000005010000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000001430000013d0000000803000029000000000031043500000255012001c7000008eb0001042e000000050100008a000800000001001d0000000d0110006b0000019d0000213d0000000d0100002900000004031000390000000b0130006c000001250000213d000000a00100043d000500000001001d0000000d020000290000000a012000290000000101100367000000000101043b000002470210009c00000000090000190000055a0000813d0000000201000039000400000001001d000000000101041a000000000119004b000005fa0000c13d0000000002030019000000080120006c0000019d0000213d00000004032000390000000b0130006c000001250000213d0000000a012000290000000101100367000000000101043b000002470210009c00000000090000190000062d0000813d00000000050300190000000301000039000d00000001001d000000000101041a000000000119004b000006cd0000c13d0000000b0150006c000003060000813d0000000a015000290000000102000367000000000312034f000000000303043b00000274033001970000024f0330009c000007200000c13d0000000004050019000000080340006c0000019d0000213d00000004034000390000000b0430006c000001250000213d0000000101100039000000000112034f000000000101043b0000000b0430006c000003060000813d000000e8011002700000000a03300029000000000432034f0000000503500039000c00000031001e000000000504043b0000019d0000413d0000000c060000290000000b0460006c000001250000213d0000000c04000029000002770440009c0000075a0000413d000000400100043d00000044021000390000027d030000410000000000320435000002570200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000005f30000013d000700e00010027800000000080000190000000009000019000000080130006c0000019d0000213d00000004023000390000000b0120006c000001250000213d0000000a033000290000000101000367000000000331034f000000000303043b000000e003300270000000000723001a0000019d0000413d0000000b0470006c000001250000213d0000000a02200029000000000323001a0000023c0420019700000000020004140000019d0000413d0000000005000031000000000635004b0000019d0000413d000e00000009001d000c00000008001d000d00000007001d0000023c0620009c000000a70000213d000000000141034f00000000033500490000023c0330019700000000013103df000000c002200210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000006120000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f053000390000000505500272000005a20000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000059a0000413d000000000500004b000005a40000613d00000005053002720000000e09000029000005b00000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005a80000413d0000001f03300190000005bf0000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f00000000001504350000000001020433000000200110008c000005e80000c13d0000000002040433000000400100043d000000400310003900000000002304350000002002100039000000000092043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f00000001022001900000000d030000290000000c08000029000001250000613d000000000901043b0000000108800039000000070180006c0000055d0000413d000005170000013d000000400100043d00000044021000390000026303000041000000000032043500000024021000390000001f030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000258011001c7000008ec00010430000000400100043d000000840210003900000264030000410000000000320435000000640210003900000265030000410000000000320435000000440210003900000266030000410000000000320435000000240210003900000044030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000267011001c7000008ec000104300000001f0430018f00000005023002720000061d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000006160000413d000000000504004b0000062b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec00010430000600e00010027800000000080000190000000009000019000000080130006c0000019d0000213d00000004023000390000000b0120006c000001250000213d0000000a033000290000000101000367000000000331034f000000000303043b000000e00a30027000000000072a001a0000019d0000413d0000000b0470006c000001250000213d00000268043001980000072a0000c13d0000026a0430009c0000072e0000813d0000026b03300198000007320000613d0000000a0220002900000000032a001a0000023c0420019700000000020004140000019d0000413d0000000005000031000000000635004b0000019d0000413d000d0000000a001d000e00000009001d000700000008001d000c00000007001d0000023c0620009c000000a70000213d000000000141034f00000000033500490000023c0330019700000000013103df000000c002200210000002460220019700000247022001c700000000012103af000000020200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000007390000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f0530003900000005055002720000000d0a0000290000067d0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000006750000413d000000000500004b0000067f0000613d00000005053002720000000e090000290000068b0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006830000413d0000001f033001900000069a0000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f0000000000150435000000400100043d0000000002020433000000200220008c000007540000c13d00000000020404330000026d02200197000000db03a002100000026e03300197000000000223019f0000024f022001c7000000400310003900000000002304350000002002100039000000000092043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f00000001022001900000000c030000290000000708000029000001250000613d000000000901043b0000000108800039000000060180006c000006300000413d000005280000013d0000000002100420000000400100043d000000000202004b000006da0000c13d000001e40000013d000000400100043d00000084021000390000027103000041000000000032043500000064021000390000027203000041000000000032043500000044021000390000027303000041000000000032043500000024021000390000005e03000039000006060000013d000000200200003900000000022104360000000d0500002900000000005204350000001f0350018f00000040021000390000000c0400002900000001044003670000000505500272000006ed0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006e50000413d000000000603004b000006fc0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000d03000029000000000232001900000000000204350000005f02300039000000200300008a000000000232016f0000023c040000410000023c0310009c000000000104801900000040011002100000023c0320009c00000000020480190000006002200210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c70000800d020000390000000303000039000002540400004100000001050000290000000a0600002908ea08db0000040f0000000101200190000001250000613d000000400100043d0000000a0200002900000000002104350000023c0210009c0000023c01008041000000400110021000000255011001c7000008eb0001042e000000400100043d00000064021000390000027503000041000000000032043500000044021000390000027603000041000000000032043500000024021000390000002703000039000003a10000013d000000400100043d00000044021000390000026903000041000007350000013d000000400100043d00000044021000390000027003000041000007350000013d000000400100043d00000044021000390000026f03000041000000000032043500000024021000390000000403000029000005ee0000013d0000001f0430018f0000000502300272000007440000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000073d0000413d000000000504004b000007520000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec0001043000000044021000390000026c03000041000000000032043500000024021000390000001903000039000005ee0000013d0000000c0400002900000004064000390000000b0460006c000001250000213d0000000c070000290000000a04700029000000000442034f000000000804043b000000e00780027000000110947000c9000002470880009c000007690000413d00000000987400d9000001100880008c0000019d0000c13d0000000009640019000900000009001d0000000b0890006c000001250000213d000000f805500270000000400a00043d0000004408a00039000000800900003900000000009804350000002408a000390000000000580435000002780500004100000000005a04350000000a066000290000008405a0003900000000004504350000000405a000390000000000750435000000000862034f0000001f0740018f000e0000000a001d000000a406a0003900000005094002720000078a0000613d000000000a000019000000050ba00210000000000cb60019000000000bb8034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000007820000413d0000000a03300029000000000a07004b0000079a0000613d0000000509900210000000000898034f00000000099600190000000307700210000000000a090433000000000a7a01cf000000000a7a022f000000000808043b0000010007700089000000000878022f00000000077801cf0000000007a7019f0000000000790435000000000746001900000000000704350000001f044000390000027904400197000000000646001900000000045600490000000e0500002900000064055000390000000000450435000000000432034f0000001f0310018f00000000021604360000000505100272000007b10000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000007a90000413d000000000603004b000007c00000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000312001900000000000304350000001f011000390000027a011001970000000e04000029000000000141004900000000012100190000023c020000410000023c0340009c0000000003020019000000000304401900000040033002100000023c0410009c00000000010280190000006001100210000000000131019f00000000030004140000023c0430009c0000000003028019000000c002300210000000000112019f0000800e0200003908ea08db0000040f000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000007e90000613d000000000700001900000005087002100000000e09800029000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000007e10000413d000000000705004b000007f80000613d0000000506600210000000000761034f0000000e066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000081e0000613d0000001f01400039000000600210018f0000000e01200029000000000221004b00000000020000190000000102004039000002430410009c000001db0000213d0000000102200190000001db0000c13d000000400010043f000000200230008c000001250000413d00000009030000290000000b0230006c0000083b0000c13d0000000e010000290000000001010433000e00000001001d0000000501000029000000000010041d0000000a010000290000000c0200002908ea08440000040f0000000102000039000000000012041d00000004010000290000000e03000029000000000031041d000000000000041b000000000002041b000000000001041b0000000d01000029000000000001041b0000000001000019000008eb0001042e000000400200043d0000001f0430018f00000005053002720000082b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000008230000413d000000000604004b0000083a0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000001430000013d00000064021000390000027b03000041000000000032043500000044021000390000027c03000041000000000032043500000024021000390000002a03000039000003a10000013d00000000030004140000000004120019000000000224004b000000000500001900000001050040390000023c0210019700000001015001900000089d0000c13d0000000001000031000000000541004b0000089d0000413d0000000102200367000002450530009c000008a10000813d00000000014100490000023c0110019700000000011203df000000c002300210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000008a80000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000008c30000213d0000000105500190000008c30000c13d000000400040043f00000000043204360000001f0530003900000005055002720000087b0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000008730000413d000000000500004b0000087d0000613d0000001f0530018f0000000503300272000008890000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b000008810000413d000000000605004b000008980000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c000008c90000c13d0000000001040433000000000001042d0000027e0100004100000000001004350000001101000039000008c60000013d000000400100043d00000044021000390000025903000041000000000032043500000024021000390000000803000039000008cf0000013d0000001f0430018f0000000502300272000008b30000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000008ac0000413d000000000504004b000008c10000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec000104300000027e0100004100000000001004350000004101000039000000040010043f0000027f01000041000008ec00010430000000400100043d00000044021000390000026303000041000000000032043500000024021000390000001f030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000258011001c7000008ec00010430000008de002104210000000102000039000000000001042d0000000002000019000000000001042d000008e3002104230000000102000039000000000001042d0000000002000019000000000001042d000008e8002104230000000102000039000000000001042d0000000002000019000000000001042d000008ea00000432000008eb0001042e000008ec0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000628b636d00000000000000000000000000000000000000000000000000000000628b636e0000000000000000000000000000000000000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000039b34c6e0000000000000000000000000000000000000000000000000000000056079ac8000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff9f02000000000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f02000000000000000000000000000000000000c000000000000000000000000027fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d00000000000000000000000000000000ffffffffffffffffffffffffffffffff3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce24100000000000000000000000000000000000000200000000000000000000000004661696c656420746f206368617267652067617300000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000000008010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100a06e6f7420657175616c20746f20636861696e65644c6f677348617368000000007265636f6e7374727563746564436861696e65644c6f677348617368206973200000000000000000000000000000000000000084000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff72abee45b59e344af8a6e520241c4744aff26ed411f4c4b00f8af09adada43ba6b656363616b3235362072657475726e656420696e76616c69642064617461004861736800000000000000000000000000000000000000000000000000000000206973206e6f7420657175616c20746f20636861696e65644d657373616765737265636f6e7374727563746564436861696e65644d657373616765734861736800000000000000000000000000000000000000a40000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000007368612072657475726e656420696e76616c696420646174610000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff06ffffff000000000000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000061696e65644c3142797465636f64657352657665616c44617461486173680000657665616c4461746148617368206973206e6f7420657175616c20746f2063687265636f6e7374727563746564436861696e65644c3142797465636f64657352ff0000000000000000000000000000000000000000000000000000000000000069736d61746368000000000000000000000000000000000000000000000000007374617465206469666620636f6d7072657373696f6e2076657273696f6e206d000000000000000000000000000000000000000000000000000000000007ef416006d8b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffe00000000000000000000000000000000000000000000000000000000001ffffe064617461206172726179000000000000000000000000000000000000000000004578747261206461746120696e2074686520746f74616c4c32546f4c315075624c31204d657373656e676572207075626461746120697320746f6f206c6f6e674e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000546f6f206d616e79204c322d3e4c31206c6f67730000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000080000000000000000054686973206d6574686f642072657175697265207468652063616c6c657220746f2062652073797374656d20636f6e74726163740000000000000000000000000000000000000000000000000000000000000084000000800000000000000000496e617070726f7072696174652063616c6c65720000000000000000000000000200000000000000000000000000000000000040000000a0000000000000000000000000000000000000000000000000000000000000000000000000ffffffd80200000000000000000000000000000000000020000000000000000000000000480d3c9f727b5e5c1203d4c61fb185d37f08e6b2dc5e9bbf98591b1a7addf57c0000000000000000000000000000000000000000000000000000000000000000be4e63e922ab8b890ef6dfe84af8257090df74b94198b85dc46a3155de742c1d", + "deployedBytecode": "0x0002000000000002000e0000000000020001000000010355000000000301001900000060053002700000023c0050019d0000008004000039000000400040043f0000023c035001970000000102200190000000310000c13d000000040230008c000001250000413d000000000201043b000000e0022002700000023e0620009c000000390000213d000002410420009c000000710000613d000002420220009c000001250000c13d0000000002000416000000000202004b000001250000c13d000000040230008a000000600220008c000001250000413d0000000401100370000000000301043b000000000103004b0000000001000019000000010100c039000000000113004b000001250000c13d0000000002000411000002810120009c000000ec0000413d0000025701000041000000800010043f0000002001000039000000840010043f0000003401000039000000a40010043f0000028301000041000000c40010043f0000028401000041000000e40010043f0000028501000041000008ec000104300000000001000416000000000101004b000001250000c13d0000002001000039000001000010044300000120000004430000023d01000041000008eb0001042e0000023f0620009c000000ae0000613d000002400220009c000001250000c13d0000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000402100370000000000202043b000002430620009c000001250000213d00000023062000390000024407000041000000000836004b000000000800001900000000080780190000024406600197000000000906004b0000000007008019000002440660009c000000000708c019000000000607004b000001250000c13d0000000406200039000000000661034f000000000706043b000002430670009c000001250000213d00000024082000390000000002870019000000000323004b000001250000413d00000000090004140000000003000414000002450630009c0000014a0000413d000000440140003900000259020000410000000000210435000000240140003900000008020000390000000000210435000002570100004100000000001404350000000401400039000000200200003900000000002104350000023c010000410000023c0240009c0000000004018019000000400140021000000258011001c7000008ec000104300000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000002000411000080040220008c000000e20000c13d0000000401100370000000000201043b0000000301000039000d00000001001d000000000101041a000000a00010043f000e00000002001d000000c00020043f0000004001000039000000800010043f000000e001000039000000400010043f0000023c0100004100000000020004140000023c0320009c0000000002018019000000c00120021000000287011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b0000000d02000029000000000012041b00000000010004130000023c031001970000000e06000029000000e0016002700000ffff0210018f000000050120021000000004041001bf00000000514300a900000000544100d9000000000343004b0000019d0000c13d0000000102200270000000010320003900000007423000c9000000075420011a000000000343004b0000019d0000c13d0000000001210019000002880210009c000001df0000413d000000400100043d00000044021000390000025903000041000000000032043500000024021000390000000803000039000005ee0000013d0000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000402100370000000000202043b000002430420009c000001250000213d00000023042000390000024405000041000000000634004b000000000600001900000000060580190000024404400197000000000704004b0000000005008019000002440440009c000000000506c019000000000405004b000001250000c13d0000000404200039000000000541034f000000000505043b000b00000005001d000002430550009c000001250000213d0000002402200039000a00000002001d0000000b02200029000000000232004b000001250000213d0000000002000411000080010220008c000001a30000c13d0000000b02000029000000040220008c000001250000413d0000002002400039000000000221034f000000000402043b0000025c0240009c0000029b0000413d0000025701000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000028001000041000000e90000013d0000025701000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000028601000041000000c40010043f0000025b01000041000008ec00010430000e00000003001d000d00000002001d0000024b01000041000000800010043f0000023c0100004100000000020004140000023c0320009c0000000002018019000000c00120021000000282011001c70000800b0200003908ea08e00000040f000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000010a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001020000413d000000000705004b000001190000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000001270000613d0000001f01400039000000600210018f00000080082001bf000000400080043f000000200130008c0000000e05000029000001250000413d000000800100043d0000ffff0310008c000001ab0000a13d0000000001000019000008ec00010430000000400200043d0000001f0430018f0000000505300272000001340000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000012c0000413d000000000604004b000001430000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000023c010000410000023c0420009c000000000201801900000040012002100000006002300210000000000121019f000008ec00010430000e00000009001d000d00000007001d000c00000008001d0000023c04800197000000000141034f00000000022500490000023c0220019700000000012103df000000c002300210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000001ea0000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f053000390000000505500272000001780000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001700000413d000000000500004b0000017a0000613d0000001f0530018f00000005033002720000000e09000029000001870000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000017f0000413d000000000605004b000001960000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c000005e80000c13d00000000040404330000000002000414000000000129004b000003ad0000813d0000027e0100004100000000001004350000001101000039000000040010043f0000027f01000041000008ec000104300000025701000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000025a01000041000000e90000013d0000014003200039000000400030043f0000000000080435000000a003200039000b00000003001d00000000005304350000024f04000041000000000305004b0000000004006019000000e003200039000e00000003001d0000000d090000290000000000930435000000c003200039000900000003001d000000000013043500000001030003670000002405300370000000000505043b000001200720003900000100022001bf000a00000002001d00000000005204350000004402300370000000000602043b000c00000007001d00000000006704350000000002080433000000f807200210000000400200043d0000002003200039000000000073043500000021072000390000000000470435000000f00110021000000022042000390000000000140435000000600190021000000024042000390000000000140435000000580120003900000000006104350000003801200039000000000051043500000058010000390000000000120435000002500120009c000002050000a13d0000027e0100004100000000001004350000004101000039000001a00000013d00000028011000390000000002100420000000400100043d000000000202004b000002880000c13d00000044021000390000025603000041000000000032043500000024021000390000001403000039000005ee0000013d0000001f0430018f0000000502300272000001f50000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000001ee0000413d000000000504004b000002030000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec000104300000008001200039000000400010043f0000023c010000410000023c0430009c0000000003018019000000400330021000000000020204330000023c0420009c00000000020180190000006002200210000000000232019f00000000030004140000023c0430009c0000000003018019000000c001300210000000000121019f0000024a011001c70000801002000039000d00000008001d08ea08e00000040f0000000102200190000001250000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000040030000390000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c030000410000023c0420009c0000000002038019000000400220021000000000010104330000023c0410009c00000000010380190000006001100210000000000121019f00000000020004140000023c0420009c0000000002038019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b000000000010041b0000000103000039000000000203041a000000010100008a000800000002001d000000000112004b0000019d0000613d00000008010000290000000101100039000000000013041b0000000d010000290000000001010433000000ff0110018f000000400200043d00000000011204360000000b040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000090100002900000000010104330000ffff0110018f000000400420003900000000001404350000000e0100002900000000010104330000024e01100197000000600420003900000000001404350000000a010000290000000001010433000000800420003900000000001404350000000c010000290000000001010433000000a00420003900000000001404350000023c050000410000023c0120009c000000000205801900000000010004140000023c0410009c00000000010580190000004002200210000000c001100210000000000121019f00000251011001c70000800d02000039000002520400004108ea08db0000040f0000000101200190000001250000613d00000078010000390000000003100420000000400100043d0000023c0210009c0000023c0200004100000000020140190000004002200210000000000303004b000005020000c13d0000004403100039000002560400004100000000004304350000002403100039000000140400003900000000004304350000025703000041000000000031043500000004011000390000002003000039000000000031043500000258012001c7000008ec0001043000000000006104350000023c0200004100000000030004140000023c0430009c00000000030280190000023c0410009c00000000010280190000004001100210000000c002300210000000000112019f00000289011001c70000800d0200003900000001030000390000028a0400004108ea08db0000040f0000000101200190000001250000613d0000000001000019000008eb0001042e000000000131034f000600000004001d000000e0064002700000025d02000041000000400020043f0000080002000039000700000002001d000000800020043f000000a00200003900000000030000190000000504300210000000000441034f000000000404043b00000000024204360000000103300039000008000430008c000002a50000413d00000004020000390000000601000029000002470110009c00000000080000190000030a0000813d000000000100041a000000000118004b000003980000c13d000d00000002001d0000000601000029000002610110009c000002c20000213d0000026201000041000000800200043d000000000262004b000003060000a13d0000000502600210000000a0022000390000000000120435000007ff0260008c0000000106600039000002b90000413d000900400000003d000880100000003d0000000701000029000600000001001d000700010010027800000000040000190000000101400210000000800200043d000000000312004b000003060000a13d00000001011001bf000000000212004b000003060000a13d0000000501100210000000a0011000390000000002010433000e00000004001d0000000601400210000000a001100039000c00000001001d0000000003010433000000400100043d000000400410003900000000002404350000002002100039000000000032043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000000080200002908ea08e00000040f0000000102200190000001250000613d000000800200043d0000000e04000029000000000242004b000003060000a13d00000005024002100000000c02200069000000000101043b00000000001204350000000104400039000000070140006c000002c80000413d0000000601000029000000030110008c000002c40000213d000000800100043d000000000101004b000005060000c13d0000027e0100004100000000001004350000003201000039000001a00000013d0000000401000039000900590000009200000000070000190000000008000019000800000006001d0000005803100039000d00000003001d0000000b0230006c000001250000213d0000000a0210002900000000010004140000023c03200197000000090420006c0000019d0000213d00000058022000390000000004000031000000000524004b0000019d0000413d000c00000008001d000e00000007001d00000001033003670000023c0510009c000000a70000213d00000000022400490000023c0220019700000000022303df000000c001100210000002460110019700000247011001c700000000011203af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000004ca0000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f0530003900000005055002720000034a0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003420000413d000000000500004b0000034c0000613d0000000505300272000003570000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000034f0000413d0000001f03300190000003660000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f00000000001504350000000001020433000000200110008c0000000e030000290000000c05000029000005e80000c13d000000800100043d000000000131004b000003060000a13d00000000020404330000000501300210000000a0011000390000000000210435000000400100043d00000040031000390000000000230435000000400200003900000000022104360000000000520435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f000000010220019000000008060000290000000e07000029000001250000613d000000000801043b0000000107700039000000000167004b0000000d0200002900000000010200190000030f0000413d000002b10000013d000000400100043d00000064021000390000025e03000041000000000032043500000044021000390000025f03000041000000000032043500000024021000390000003c030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000260011001c7000008ec00010430000800000002001d0000000201000039000b00000001001d000000000301041a000000400100043d0000004002100039000a00000004001d0000000000420435000000200210003900000000003204350000004003000039000900000003001d0000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c040000410000023c0320009c0000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b0000000b02000029000000000012041b0000024b01000041000000400400043d000b00000004001d000000000014043500000000010004140000023c0210009c0000023c0300004100000000010380190000023c0240009c00000000030440190000004002300210000000c001100210000000000121019f0000024c011001c70000800b0200003908ea08e00000040f0000000b0a000029000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003f70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003ef0000413d00000000090a0019000000000705004b000004070000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000004e50000613d0000001f01400039000000600110018f0000000002910019000000000112004b00000000010000190000000101004039000700000002001d000002430220009c000001db0000213d0000000101100190000001db0000c13d0000000701000029000000400010043f000000200130008c000001250000413d00000000010904330000ffff0210008c000001250000213d00000007020000290000024d0220009c000001db0000213d0000000703000029000000c002300039000000400020043f00000000040004100000024e024001970000006005300039000500000005001d000000000025043500000020053000390000000102000039000b00000002001d000300000005001d0000000000250435000000a0023000390000000a07000029000600000002001d000000000072043500000080023000390000000008000411000400000002001d000000000082043500000000000304350000004002300039000200000002001d0000000000120435000000400200043d0000002003200039000000000003043500000021052000390000024f060000410000000000650435000000f0011002100000002205200039000000000015043500000060014002100000002404200039000000000014043500000058012000390000000000710435000000580100003900000000001204350000003801200039000100000008001d0000000000810435000002500120009c000001db0000213d0000008001200039000000400010043f0000023c010000410000023c0430009c0000000003018019000000400330021000000000020204330000023c0420009c00000000020180190000006002200210000000000232019f00000000030004140000023c0430009c0000000003018019000000c001300210000000000121019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c030000410000023c0420009c0000000002038019000000400220021000000000010104330000023c0410009c00000000010380190000006001100210000000000121019f00000000020004140000023c0420009c0000000002038019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b000000000010041b0000000b01000029000000000101041a000000010200008a000000000221004b0000019d0000613d00000001011000390000000b03000029000000000013041b00000007010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000020100002900000000010104330000ffff0110018f00000040042000390000000000140435000000050100002900000000010104330000024e0110019700000060042000390000000000140435000000040100002900000000010104330000008004200039000000000014043500000006010000290000000001010433000000a00420003900000000001404350000023c010000410000023c0420009c000000000201801900000000050004140000023c0450009c00000000050180190000004001200210000000c002500210000000000112019f00000251011001c70000800d02000039000002520400004108ea08db0000040f00000001012001900000000d01000029000001250000613d0000005c0210003900000000010004130000023c0310019700000000412300a90000025302200197000002530410019700000000422400d9000000000223004b00000008030000290000019d0000c13d0000000e02300069000000a001100039000000000121001a0000019d0000413d000002450210009c000006c80000413d000000400400043d000000600000013d0000001f0430018f0000000502300272000004d50000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004ce0000413d000000000504004b000004e30000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec00010430000000400200043d0000001f0430018f0000000505300272000004f20000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000004ea0000413d000000000604004b000005010000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000001430000013d0000000803000029000000000031043500000255012001c7000008eb0001042e000000050100008a000800000001001d0000000d0110006b0000019d0000213d0000000d0100002900000004031000390000000b0130006c000001250000213d000000a00100043d000500000001001d0000000d020000290000000a012000290000000101100367000000000101043b000002470210009c00000000090000190000055a0000813d0000000201000039000400000001001d000000000101041a000000000119004b000005fa0000c13d0000000002030019000000080120006c0000019d0000213d00000004032000390000000b0130006c000001250000213d0000000a012000290000000101100367000000000101043b000002470210009c00000000090000190000062d0000813d00000000050300190000000301000039000d00000001001d000000000101041a000000000119004b000006cd0000c13d0000000b0150006c000003060000813d0000000a015000290000000102000367000000000312034f000000000303043b00000274033001970000024f0330009c000007200000c13d0000000004050019000000080340006c0000019d0000213d00000004034000390000000b0430006c000001250000213d0000000101100039000000000112034f000000000101043b0000000b0430006c000003060000813d000000e8011002700000000a03300029000000000432034f0000000503500039000c00000031001e000000000504043b0000019d0000413d0000000c060000290000000b0460006c000001250000213d0000000c04000029000002770440009c0000075a0000413d000000400100043d00000044021000390000027d030000410000000000320435000002570200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000005f30000013d000700e00010027800000000080000190000000009000019000000080130006c0000019d0000213d00000004023000390000000b0120006c000001250000213d0000000a033000290000000101000367000000000331034f000000000303043b000000e003300270000000000723001a0000019d0000413d0000000b0470006c000001250000213d0000000a02200029000000000323001a0000023c0420019700000000020004140000019d0000413d0000000005000031000000000635004b0000019d0000413d000e00000009001d000c00000008001d000d00000007001d0000023c0620009c000000a70000213d000000000141034f00000000033500490000023c0330019700000000013103df000000c002200210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000006120000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f053000390000000505500272000005a20000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000059a0000413d000000000500004b000005a40000613d00000005053002720000000e09000029000005b00000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005a80000413d0000001f03300190000005bf0000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f00000000001504350000000001020433000000200110008c000005e80000c13d0000000002040433000000400100043d000000400310003900000000002304350000002002100039000000000092043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f00000001022001900000000d030000290000000c08000029000001250000613d000000000901043b0000000108800039000000070180006c0000055d0000413d000005170000013d000000400100043d00000044021000390000026303000041000000000032043500000024021000390000001f030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000258011001c7000008ec00010430000000400100043d000000840210003900000264030000410000000000320435000000640210003900000265030000410000000000320435000000440210003900000266030000410000000000320435000000240210003900000044030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000267011001c7000008ec000104300000001f0430018f00000005023002720000061d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000006160000413d000000000504004b0000062b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec00010430000600e00010027800000000080000190000000009000019000000080130006c0000019d0000213d00000004023000390000000b0120006c000001250000213d0000000a033000290000000101000367000000000331034f000000000303043b000000e00a30027000000000072a001a0000019d0000413d0000000b0470006c000001250000213d00000268043001980000072a0000c13d0000026a0430009c0000072e0000813d0000026b03300198000007320000613d0000000a0220002900000000032a001a0000023c0420019700000000020004140000019d0000413d0000000005000031000000000635004b0000019d0000413d000d0000000a001d000e00000009001d000700000008001d000c00000007001d0000023c0620009c000000a70000213d000000000141034f00000000033500490000023c0330019700000000013103df000000c002200210000002460220019700000247022001c700000000012103af000000020200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000007390000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f0530003900000005055002720000000d0a0000290000067d0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000006750000413d000000000500004b0000067f0000613d00000005053002720000000e090000290000068b0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006830000413d0000001f033001900000069a0000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f0000000000150435000000400100043d0000000002020433000000200220008c000007540000c13d00000000020404330000026d02200197000000db03a002100000026e03300197000000000223019f0000024f022001c7000000400310003900000000002304350000002002100039000000000092043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f00000001022001900000000c030000290000000708000029000001250000613d000000000901043b0000000108800039000000060180006c000006300000413d000005280000013d0000000002100420000000400100043d000000000202004b000006da0000c13d000001e40000013d000000400100043d00000084021000390000027103000041000000000032043500000064021000390000027203000041000000000032043500000044021000390000027303000041000000000032043500000024021000390000005e03000039000006060000013d000000200200003900000000022104360000000d0500002900000000005204350000001f0350018f00000040021000390000000c0400002900000001044003670000000505500272000006ed0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006e50000413d000000000603004b000006fc0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000d03000029000000000232001900000000000204350000005f02300039000000200300008a000000000232016f0000023c040000410000023c0310009c000000000104801900000040011002100000023c0320009c00000000020480190000006002200210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c70000800d020000390000000303000039000002540400004100000001050000290000000a0600002908ea08db0000040f0000000101200190000001250000613d000000400100043d0000000a0200002900000000002104350000023c0210009c0000023c01008041000000400110021000000255011001c7000008eb0001042e000000400100043d00000064021000390000027503000041000000000032043500000044021000390000027603000041000000000032043500000024021000390000002703000039000003a10000013d000000400100043d00000044021000390000026903000041000007350000013d000000400100043d00000044021000390000027003000041000007350000013d000000400100043d00000044021000390000026f03000041000000000032043500000024021000390000000403000029000005ee0000013d0000001f0430018f0000000502300272000007440000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000073d0000413d000000000504004b000007520000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec0001043000000044021000390000026c03000041000000000032043500000024021000390000001903000039000005ee0000013d0000000c0400002900000004064000390000000b0460006c000001250000213d0000000c070000290000000a04700029000000000442034f000000000804043b000000e00780027000000110947000c9000002470880009c000007690000413d00000000987400d9000001100880008c0000019d0000c13d0000000009640019000900000009001d0000000b0890006c000001250000213d000000f805500270000000400a00043d0000004408a00039000000800900003900000000009804350000002408a000390000000000580435000002780500004100000000005a04350000000a066000290000008405a0003900000000004504350000000405a000390000000000750435000000000862034f0000001f0740018f000e0000000a001d000000a406a0003900000005094002720000078a0000613d000000000a000019000000050ba00210000000000cb60019000000000bb8034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000007820000413d0000000a03300029000000000a07004b0000079a0000613d0000000509900210000000000898034f00000000099600190000000307700210000000000a090433000000000a7a01cf000000000a7a022f000000000808043b0000010007700089000000000878022f00000000077801cf0000000007a7019f0000000000790435000000000746001900000000000704350000001f044000390000027904400197000000000646001900000000045600490000000e0500002900000064055000390000000000450435000000000432034f0000001f0310018f00000000021604360000000505100272000007b10000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000007a90000413d000000000603004b000007c00000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000312001900000000000304350000001f011000390000027a011001970000000e04000029000000000141004900000000012100190000023c020000410000023c0340009c0000000003020019000000000304401900000040033002100000023c0410009c00000000010280190000006001100210000000000131019f00000000030004140000023c0430009c0000000003028019000000c002300210000000000112019f0000800e0200003908ea08db0000040f000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000007e90000613d000000000700001900000005087002100000000e09800029000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000007e10000413d000000000705004b000007f80000613d0000000506600210000000000761034f0000000e066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000081e0000613d0000001f01400039000000600210018f0000000e01200029000000000221004b00000000020000190000000102004039000002430410009c000001db0000213d0000000102200190000001db0000c13d000000400010043f000000200230008c000001250000413d00000009030000290000000b0230006c0000083b0000c13d0000000e010000290000000001010433000e00000001001d0000000501000029000000000010041d0000000a010000290000000c0200002908ea08440000040f0000000102000039000000000012041d00000004010000290000000e03000029000000000031041d000000000000041b000000000002041b000000000001041b0000000d01000029000000000001041b0000000001000019000008eb0001042e000000400200043d0000001f0430018f00000005053002720000082b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000008230000413d000000000604004b0000083a0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000001430000013d00000064021000390000027b03000041000000000032043500000044021000390000027c03000041000000000032043500000024021000390000002a03000039000003a10000013d00000000030004140000000004120019000000000224004b000000000500001900000001050040390000023c0210019700000001015001900000089d0000c13d0000000001000031000000000541004b0000089d0000413d0000000102200367000002450530009c000008a10000813d00000000014100490000023c0110019700000000011203df000000c002300210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000008a80000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000008c30000213d0000000105500190000008c30000c13d000000400040043f00000000043204360000001f0530003900000005055002720000087b0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000008730000413d000000000500004b0000087d0000613d0000001f0530018f0000000503300272000008890000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b000008810000413d000000000605004b000008980000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c000008c90000c13d0000000001040433000000000001042d0000027e0100004100000000001004350000001101000039000008c60000013d000000400100043d00000044021000390000025903000041000000000032043500000024021000390000000803000039000008cf0000013d0000001f0430018f0000000502300272000008b30000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000008ac0000413d000000000504004b000008c10000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec000104300000027e0100004100000000001004350000004101000039000000040010043f0000027f01000041000008ec00010430000000400100043d00000044021000390000026303000041000000000032043500000024021000390000001f030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000258011001c7000008ec00010430000008de002104210000000102000039000000000001042d0000000002000019000000000001042d000008e3002104230000000102000039000000000001042d0000000002000019000000000001042d000008e8002104230000000102000039000000000001042d0000000002000019000000000001042d000008ea00000432000008eb0001042e000008ec0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000628b636d00000000000000000000000000000000000000000000000000000000628b636e0000000000000000000000000000000000000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000039b34c6e0000000000000000000000000000000000000000000000000000000056079ac8000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff9f02000000000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f02000000000000000000000000000000000000c000000000000000000000000027fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d00000000000000000000000000000000ffffffffffffffffffffffffffffffff3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce24100000000000000000000000000000000000000200000000000000000000000004661696c656420746f206368617267652067617300000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000000008010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100a06e6f7420657175616c20746f20636861696e65644c6f677348617368000000007265636f6e7374727563746564436861696e65644c6f677348617368206973200000000000000000000000000000000000000084000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff72abee45b59e344af8a6e520241c4744aff26ed411f4c4b00f8af09adada43ba6b656363616b3235362072657475726e656420696e76616c69642064617461004861736800000000000000000000000000000000000000000000000000000000206973206e6f7420657175616c20746f20636861696e65644d657373616765737265636f6e7374727563746564436861696e65644d657373616765734861736800000000000000000000000000000000000000a40000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000007368612072657475726e656420696e76616c696420646174610000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff06ffffff000000000000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000061696e65644c3142797465636f64657352657665616c44617461486173680000657665616c4461746148617368206973206e6f7420657175616c20746f2063687265636f6e7374727563746564436861696e65644c3142797465636f64657352ff0000000000000000000000000000000000000000000000000000000000000069736d61746368000000000000000000000000000000000000000000000000007374617465206469666620636f6d7072657373696f6e2076657273696f6e206d000000000000000000000000000000000000000000000000000000000007ef416006d8b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffe00000000000000000000000000000000000000000000000000000000001ffffe064617461206172726179000000000000000000000000000000000000000000004578747261206461746120696e2074686520746f74616c4c32546f4c315075624c31204d657373656e676572207075626461746120697320746f6f206c6f6e674e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000546f6f206d616e79204c322d3e4c31206c6f67730000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000080000000000000000054686973206d6574686f642072657175697265207468652063616c6c657220746f2062652073797374656d20636f6e74726163740000000000000000000000000000000000000000000000000000000000000084000000800000000000000000496e617070726f7072696174652063616c6c65720000000000000000000000000200000000000000000000000000000000000040000000a0000000000000000000000000000000000000000000000000000000000000000000000000ffffffd80200000000000000000000000000000000000020000000000000000000000000480d3c9f727b5e5c1203d4c61fb185d37f08e6b2dc5e9bbf98591b1a7addf57c0000000000000000000000000000000000000000000000000000000000000000be4e63e922ab8b890ef6dfe84af8257090df74b94198b85dc46a3155de742c1d", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/L2EthToken.json b/src/deps/contracts/L2EthToken.json index 49a982e3..aece274b 100644 --- a/src/deps/contracts/L2EthToken.json +++ b/src/deps/contracts/L2EthToken.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "L2EthToken", - "sourceName": "cache-zk/solpp-generated-contracts/L2EthToken.sol", + "sourceName": "contracts-preprocessed/L2EthToken.sol", "abi": [ { "anonymous": false, @@ -247,8 +247,8 @@ "type": "function" } ], - "bytecode": "0x00030000000000020005000000000002000200000001035500000060011002700000010f0010019d000100000000001f0000008001000039000000400010043f00000001012001900000003c0000c13d0000000002000031000000040120008c000002990000413d0000000201000367000000000301043b000000e003300270000001110430009c000000440000a13d000001120430009c000000650000a13d000001130430009c000000e50000613d000001140130009c000002880000613d000001150130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000200310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000004010000390000000201100367000000000101043b0000011e011001970000000000100435000000200000043f0000000001000019043503fb0000040f000000000101041a000000400200043d00000000001204350000010f010000410000010f0320009c000000000102401900000040011002100000011f011001c7000004360001042e0000000001000416000000000101004b000002990000c13d0000002001000039000001000010044300000120000004430000011001000041000004360001042e000001180130009c000000a20000213d0000011b0130009c000002080000613d0000011c0130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d0000000101000039000000000101041a000000400200043d00000000001204350000010f010000410000010f0320009c000000000102401900000040011002100000011f011001c7000004360001042e000001160430009c000002300000613d000001170130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000600310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000002010003670000000402100370000000000402043b0000011e0240009c000002990000213d0000002402100370000000000202043b0000011e052001970000011e0220009c000002990000213d00000000020004110000004401100370000000000301043b000080060120008c0000033b0000613d000000090100008a000000000112016f000080010110008c0000033b0000613d000000400100043d00000064021000390000012703000041000000000032043500000044021000390000012803000041000000000032043500000024021000390000003e030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012a011001c70000043700010430000001190130009c0000026e0000613d0000011a0130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000400310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000002010003670000000402100370000000000402043b0000011e0240009c000002990000213d0000002401100370000000000501043b0000000001000411000080010110008c000002b50000c13d0000000101000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000000df0000c13d000400000005001d000000000021041b0000000000400435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d043504300000040f00000005050000290000000102200190000002990000613d000000000101043b000000000201041a0000000403000029000000000232001a000000df0000413d000003880000013d000001310100004100000000001004350000001101000039000000040010043f00000132010000410000043700010430000000040320008a0000011d04000041000000400530008c000000000500001900000000050440190000011d03300197000000000603004b000000000400a0190000011d0330009c00000000030500190000000003046019000000000303004b000002990000c13d0000000403100370000000000803043b0000011e0380009c000002990000213d0000002403100370000000000303043b000001210430009c000002990000213d00000023043000390000011d05000041000000000624004b000000000600001900000000060580190000011d022001970000011d04400197000000000724004b0000000005008019000000000224013f0000011d0220009c00000000020600190000000002056019000000000202004b000002990000c13d0000000402300039000000000121034f000000000101043b000001210210009c000002680000213d000000bf02100039000000200500008a000000000252016f000001210420009c000002680000213d000000400020043f000000800010043f000000240330003900000000023100190000000004000031000000000242004b000002990000213d000400000005001d0000001f0210018f00000002033003670000000504100272000001280000613d00000000050000190000000506500210000000000763034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000001200000413d000500000008001d000000000502004b000001380000613d0000000504400210000000000343034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000a00110003900000000000104350000000001000416000300000001001d00000000010004100000000000100435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f000000010220019000000005040000290000000407000029000002990000613d000000000101043b000000000201041a00000003090000290000000002920049000000000021041b0000000101000039000000000201041a0000000002920049000000000021041b0000012302000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000000008000411000000600280021000000058031000390000000000230435000000380210003900000000009204350000006c03100039000000800200043d000000000402004b0000016d0000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000524004b000001660000413d000000000332001900000000000304350000004c0320003900000000003104350000008b02200039000000000272016f000000000a12001900000000022a004b000000000200001900000001020040390000012103a0009c000002680000213d0000000102200190000002680000c13d000100000008001d0000004000a0043f000001240200004100000000002a04350000000402a000390000002003000039000000000032043500000000020104330000002403a0003900000000002304350000004403a00039000000000402004b000001900000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b000001890000413d000000000132001900000000000104350000001f01200039000000000171016f0000010f020000410000010f03a0009c000000000302001900000000030a4019000000400330021000000044011000390000010f0410009c00000000010280190000006001100210000000000131019f00000000030004140000010f0430009c0000000002034019000000c002200210000000000112019f000080080200003900020000000a001d0435042b0000040f000000020a000029000000000301001900000060033002700000010f03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001b90000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001b10000413d000000000705004b000001c80000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000003d50000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001210410009c00000005040000290000000305000029000002680000213d0000000102200190000002680000c13d000000400010043f000000200230008c000002990000413d00000020021000390000004003000039000000000032043500000000005104350000004003100039000000800200043d000000000023043500000060031000390000011e06400197000000000402004b000001ed0000613d00000000040000190000000005340019000000a007400039000000000707043300000000007504350000002004400039000000000524004b000001e60000413d000000000332001900000000000304350000007f022000390000000403000029000000000232016f0000010f030000410000010f0410009c000000000103801900000040011002100000010f0420009c00000000020380190000006002200210000000000112019f00000000020004140000010f0420009c0000000002038019000000c002200210000000000112019f00000125011001c70000800d020000390000000303000039000001260400004100000001050000290435042b0000040f0000000101200190000003d30000c13d000002990000013d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d000000c001000039000000400010043f0000000501000039000000800010043f0000013501000041000000a00010043f0000002001000039000000400200043d000500000002001d000000000212043600000080010000390435040d0000040f000000050400002900000000014100490000010f020000410000010f0310009c00000000010280190000010f0340009c000000000204401900000040022002100000006001100210000000000121019f000004360001042e000000040220008a0000011d03000041000000200420008c000000000400001900000000040340190000011d02200197000000000502004b000000000300a0190000011d0220009c00000000020400190000000002036019000000000202004b000002990000c13d0000000401100370000000000401043b0000011e0140009c000002990000213d0000000001000416000400000001001d00000000010004100000000000100435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d043504300000040f00000005040000290000000102200190000002990000613d000000000101043b000000000201041a00000004050000290000000002520049000000000021041b0000000101000039000000000201041a0000000002520049000000000021041b0000012302000041000000400100043d0000002003100039000000000023043500000060024002100000002403100039000000000023043500000038021000390000000000520435000000380200003900000000002104350000012f0210009c000002c70000413d000001310100004100000000001004350000004101000039000000040010043f000001320100004100000437000104300000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d000000400100043d000000120200003900000000002104350000010f020000410000010f0310009c000000000102801900000040011002100000011f011001c7000004360001042e0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b0000029b0000613d00000000010000190000043700010430000000400100043d000400000001001d043504200000040f00000004030000290000002001300039000001200200004100000000002104350000000301000039000000000013043500000000010300190000002002000039000000400300043d000500000003001d00000000022304360435040d0000040f000000050400002900000000014100490000010f020000410000010f0310009c00000000010280190000010f0340009c000000000204401900000040022002100000006001100210000000000121019f000004360001042e000000400100043d00000044021000390000013303000041000000000032043500000024021000390000001f030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012e011001c700000437000104300000006007100039000000400070043f00000124020000410000000000270435000000640210003900000020030000390000000000320435000000840310003900000000020104330000000000230435000000a403100039000000000402004b000002dc0000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b000002d50000413d000000000132001900000000000104350000001f01200039000000200200008a000000000121016f0000010f020000410000010f0370009c00000000030200190000000003074019000000400330021000000044011000390000010f0410009c00000000010280190000006001100210000000000131019f00000000030004140000010f0430009c0000000002034019000000c002200210000000000112019f0000800802000039000300000007001d0435042b0000040f000000030a000029000000000301001900000060033002700000010f03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003060000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002fe0000413d000000000705004b000003150000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000003620000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001210410009c00000005050000290000000404000029000002680000213d0000000102200190000002680000c13d000000400010043f000000200230008c000002990000413d00000000004104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000011e065001970000800d020000390000000303000039000001300400004100000000050004110435042b0000040f0000000101200190000003d30000c13d000002990000013d000400000003001d0000000000400435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d000300000005001d043504300000040f00000005030000290000000102200190000002990000613d000000000101043b000000000201041a0000000401000029000000000112004b0000039c0000813d000000400100043d00000044021000390000012d03000041000000000032043500000024021000390000001f030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012e011001c70000043700010430000000400200043d0000001f0430018f00000005033002720000036f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003670000413d000000000504004b0000037e0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000010f0100004100000001030000310000010f0430009c00000000030180190000010f0420009c000000000102401900000040011002100000006002300210000000000112019f0000043700010430000000000021041b000000400100043d00000000003104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000800d02000039000000020300003900000134040000410435042b0000040f0000000101200190000002990000613d000003d30000013d000200000002001d0000000000300435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f00000003030000290000000102200190000002990000613d000000040200002900000002040000290000000002240049000000000101043b000000000021041b00000000003004350000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f000000030600002900000005050000290000000102200190000002990000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d00000000003104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000800d0200003900000003030000390000012c040000410435042b0000040f0000000101200190000002990000613d0000000001000019000004360001042e000000400200043d0000001f0430018f0000000503300272000003e20000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003da0000413d000000000504004b000003f10000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000010f0100004100000001030000310000010f0430009c00000000030180190000010f0420009c000000000102401900000040011002100000006002300210000000000112019f00000437000104300000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f00000122011001c70000801002000039043504300000040f00000001022001900000040b0000613d000000000101043b000000000001042d0000000001000019000004370001043000000000030104330000000002320436000000000403004b000004190000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000004120000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000001360210009c000004250000813d0000004001100039000000400010043f000000000001042d000001310100004100000000001004350000004101000039000000040010043f000001320100004100000437000104300000042e002104210000000102000039000000000001042d0000000002000019000000000001042d00000433002104230000000102000039000000000001042d0000000002000019000000000001042d0000043500000432000004360001042e0000043700010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000051cff8d80000000000000000000000000000000000000000000000000000000084bc3eaf0000000000000000000000000000000000000000000000000000000084bc3eb00000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009cc7f7080000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000579952fc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000018160ddd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000004554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff02000000000000000000000000000000000000400000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000062f84b24000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c405fe8958410bbaf0c73b7a0c3e20859e86ca168a4c9b0def9c54d2555a306b616c206163636573732063616e2063616c6c2074686973206d6574686f6400004f6e6c792073797374656d20636f6e747261637473207769746820737065636908c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5472616e7366657220616d6f756e7420657863656564732062616c616e6365000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa02717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63984e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968854574686572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000000000000000000000000000007b3ba959bf7eac2739d6ef137ed2b810585c27a9dbd1782f8efe2a761831b7e4", - "deployedBytecode": "0x00030000000000020005000000000002000200000001035500000060011002700000010f0010019d000100000000001f0000008001000039000000400010043f00000001012001900000003c0000c13d0000000002000031000000040120008c000002990000413d0000000201000367000000000301043b000000e003300270000001110430009c000000440000a13d000001120430009c000000650000a13d000001130430009c000000e50000613d000001140130009c000002880000613d000001150130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000200310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000004010000390000000201100367000000000101043b0000011e011001970000000000100435000000200000043f0000000001000019043503fb0000040f000000000101041a000000400200043d00000000001204350000010f010000410000010f0320009c000000000102401900000040011002100000011f011001c7000004360001042e0000000001000416000000000101004b000002990000c13d0000002001000039000001000010044300000120000004430000011001000041000004360001042e000001180130009c000000a20000213d0000011b0130009c000002080000613d0000011c0130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d0000000101000039000000000101041a000000400200043d00000000001204350000010f010000410000010f0320009c000000000102401900000040011002100000011f011001c7000004360001042e000001160430009c000002300000613d000001170130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000600310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000002010003670000000402100370000000000402043b0000011e0240009c000002990000213d0000002402100370000000000202043b0000011e052001970000011e0220009c000002990000213d00000000020004110000004401100370000000000301043b000080060120008c0000033b0000613d000000090100008a000000000112016f000080010110008c0000033b0000613d000000400100043d00000064021000390000012703000041000000000032043500000044021000390000012803000041000000000032043500000024021000390000003e030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012a011001c70000043700010430000001190130009c0000026e0000613d0000011a0130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000400310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000002010003670000000402100370000000000402043b0000011e0240009c000002990000213d0000002401100370000000000501043b0000000001000411000080010110008c000002b50000c13d0000000101000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000000df0000c13d000400000005001d000000000021041b0000000000400435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d043504300000040f00000005050000290000000102200190000002990000613d000000000101043b000000000201041a0000000403000029000000000232001a000000df0000413d000003880000013d000001310100004100000000001004350000001101000039000000040010043f00000132010000410000043700010430000000040320008a0000011d04000041000000400530008c000000000500001900000000050440190000011d03300197000000000603004b000000000400a0190000011d0330009c00000000030500190000000003046019000000000303004b000002990000c13d0000000403100370000000000803043b0000011e0380009c000002990000213d0000002403100370000000000303043b000001210430009c000002990000213d00000023043000390000011d05000041000000000624004b000000000600001900000000060580190000011d022001970000011d04400197000000000724004b0000000005008019000000000224013f0000011d0220009c00000000020600190000000002056019000000000202004b000002990000c13d0000000402300039000000000121034f000000000101043b000001210210009c000002680000213d000000bf02100039000000200500008a000000000252016f000001210420009c000002680000213d000000400020043f000000800010043f000000240330003900000000023100190000000004000031000000000242004b000002990000213d000400000005001d0000001f0210018f00000002033003670000000504100272000001280000613d00000000050000190000000506500210000000000763034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000001200000413d000500000008001d000000000502004b000001380000613d0000000504400210000000000343034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000a00110003900000000000104350000000001000416000300000001001d00000000010004100000000000100435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f000000010220019000000005040000290000000407000029000002990000613d000000000101043b000000000201041a00000003090000290000000002920049000000000021041b0000000101000039000000000201041a0000000002920049000000000021041b0000012302000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000000008000411000000600280021000000058031000390000000000230435000000380210003900000000009204350000006c03100039000000800200043d000000000402004b0000016d0000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000524004b000001660000413d000000000332001900000000000304350000004c0320003900000000003104350000008b02200039000000000272016f000000000a12001900000000022a004b000000000200001900000001020040390000012103a0009c000002680000213d0000000102200190000002680000c13d000100000008001d0000004000a0043f000001240200004100000000002a04350000000402a000390000002003000039000000000032043500000000020104330000002403a0003900000000002304350000004403a00039000000000402004b000001900000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b000001890000413d000000000132001900000000000104350000001f01200039000000000171016f0000010f020000410000010f03a0009c000000000302001900000000030a4019000000400330021000000044011000390000010f0410009c00000000010280190000006001100210000000000131019f00000000030004140000010f0430009c0000000002034019000000c002200210000000000112019f000080080200003900020000000a001d0435042b0000040f000000020a000029000000000301001900000060033002700000010f03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001b90000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001b10000413d000000000705004b000001c80000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000003d50000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001210410009c00000005040000290000000305000029000002680000213d0000000102200190000002680000c13d000000400010043f000000200230008c000002990000413d00000020021000390000004003000039000000000032043500000000005104350000004003100039000000800200043d000000000023043500000060031000390000011e06400197000000000402004b000001ed0000613d00000000040000190000000005340019000000a007400039000000000707043300000000007504350000002004400039000000000524004b000001e60000413d000000000332001900000000000304350000007f022000390000000403000029000000000232016f0000010f030000410000010f0410009c000000000103801900000040011002100000010f0420009c00000000020380190000006002200210000000000112019f00000000020004140000010f0420009c0000000002038019000000c002200210000000000112019f00000125011001c70000800d020000390000000303000039000001260400004100000001050000290435042b0000040f0000000101200190000003d30000c13d000002990000013d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d000000c001000039000000400010043f0000000501000039000000800010043f0000013501000041000000a00010043f0000002001000039000000400200043d000500000002001d000000000212043600000080010000390435040d0000040f000000050400002900000000014100490000010f020000410000010f0310009c00000000010280190000010f0340009c000000000204401900000040022002100000006001100210000000000121019f000004360001042e000000040220008a0000011d03000041000000200420008c000000000400001900000000040340190000011d02200197000000000502004b000000000300a0190000011d0220009c00000000020400190000000002036019000000000202004b000002990000c13d0000000401100370000000000401043b0000011e0140009c000002990000213d0000000001000416000400000001001d00000000010004100000000000100435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d043504300000040f00000005040000290000000102200190000002990000613d000000000101043b000000000201041a00000004050000290000000002520049000000000021041b0000000101000039000000000201041a0000000002520049000000000021041b0000012302000041000000400100043d0000002003100039000000000023043500000060024002100000002403100039000000000023043500000038021000390000000000520435000000380200003900000000002104350000012f0210009c000002c70000413d000001310100004100000000001004350000004101000039000000040010043f000001320100004100000437000104300000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d000000400100043d000000120200003900000000002104350000010f020000410000010f0310009c000000000102801900000040011002100000011f011001c7000004360001042e0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b0000029b0000613d00000000010000190000043700010430000000400100043d000400000001001d043504200000040f00000004030000290000002001300039000001200200004100000000002104350000000301000039000000000013043500000000010300190000002002000039000000400300043d000500000003001d00000000022304360435040d0000040f000000050400002900000000014100490000010f020000410000010f0310009c00000000010280190000010f0340009c000000000204401900000040022002100000006001100210000000000121019f000004360001042e000000400100043d00000044021000390000013303000041000000000032043500000024021000390000001f030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012e011001c700000437000104300000006007100039000000400070043f00000124020000410000000000270435000000640210003900000020030000390000000000320435000000840310003900000000020104330000000000230435000000a403100039000000000402004b000002dc0000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b000002d50000413d000000000132001900000000000104350000001f01200039000000200200008a000000000121016f0000010f020000410000010f0370009c00000000030200190000000003074019000000400330021000000044011000390000010f0410009c00000000010280190000006001100210000000000131019f00000000030004140000010f0430009c0000000002034019000000c002200210000000000112019f0000800802000039000300000007001d0435042b0000040f000000030a000029000000000301001900000060033002700000010f03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003060000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002fe0000413d000000000705004b000003150000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000003620000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001210410009c00000005050000290000000404000029000002680000213d0000000102200190000002680000c13d000000400010043f000000200230008c000002990000413d00000000004104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000011e065001970000800d020000390000000303000039000001300400004100000000050004110435042b0000040f0000000101200190000003d30000c13d000002990000013d000400000003001d0000000000400435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d000300000005001d043504300000040f00000005030000290000000102200190000002990000613d000000000101043b000000000201041a0000000401000029000000000112004b0000039c0000813d000000400100043d00000044021000390000012d03000041000000000032043500000024021000390000001f030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012e011001c70000043700010430000000400200043d0000001f0430018f00000005033002720000036f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003670000413d000000000504004b0000037e0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000010f0100004100000001030000310000010f0430009c00000000030180190000010f0420009c000000000102401900000040011002100000006002300210000000000112019f0000043700010430000000000021041b000000400100043d00000000003104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000800d02000039000000020300003900000134040000410435042b0000040f0000000101200190000002990000613d000003d30000013d000200000002001d0000000000300435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f00000003030000290000000102200190000002990000613d000000040200002900000002040000290000000002240049000000000101043b000000000021041b00000000003004350000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f000000030600002900000005050000290000000102200190000002990000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d00000000003104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000800d0200003900000003030000390000012c040000410435042b0000040f0000000101200190000002990000613d0000000001000019000004360001042e000000400200043d0000001f0430018f0000000503300272000003e20000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003da0000413d000000000504004b000003f10000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000010f0100004100000001030000310000010f0430009c00000000030180190000010f0420009c000000000102401900000040011002100000006002300210000000000112019f00000437000104300000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f00000122011001c70000801002000039043504300000040f00000001022001900000040b0000613d000000000101043b000000000001042d0000000001000019000004370001043000000000030104330000000002320436000000000403004b000004190000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000004120000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000001360210009c000004250000813d0000004001100039000000400010043f000000000001042d000001310100004100000000001004350000004101000039000000040010043f000001320100004100000437000104300000042e002104210000000102000039000000000001042d0000000002000019000000000001042d00000433002104230000000102000039000000000001042d0000000002000019000000000001042d0000043500000432000004360001042e0000043700010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000051cff8d80000000000000000000000000000000000000000000000000000000084bc3eaf0000000000000000000000000000000000000000000000000000000084bc3eb00000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009cc7f7080000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000579952fc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000018160ddd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000004554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff02000000000000000000000000000000000000400000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000062f84b24000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c405fe8958410bbaf0c73b7a0c3e20859e86ca168a4c9b0def9c54d2555a306b616c206163636573732063616e2063616c6c2074686973206d6574686f6400004f6e6c792073797374656d20636f6e747261637473207769746820737065636908c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5472616e7366657220616d6f756e7420657863656564732062616c616e6365000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa02717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63984e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968854574686572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000000000000000000000000000007b3ba959bf7eac2739d6ef137ed2b810585c27a9dbd1782f8efe2a761831b7e4", + "bytecode": "0x00050000000000020000008003000039000000400030043f00000000030100190000006003300270000000d7033001970000000102200190000000240000c13d000000040230008c0000030a0000413d000000000201043b000000e002200270000000d90420009c0000002c0000a13d000000da0420009c000000380000a13d000000db0420009c000000950000613d000000dc0420009c000001ea0000613d000000dd0220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000200220008c0000030a0000413d0000000401100370000000000101043b000000e5011001970000000000100435000000200000043f00000000010000190358033c0000040f000000360000013d0000000001000416000000000101004b0000030a0000c13d000000200100003900000100001004430000012000000443000000d801000041000003590001042e000000e00420009c000000600000213d000000e30120009c000001a60000613d000000e40120009c0000030a0000c13d0000000001000416000000000101004b0000030a0000c13d0000000101000039000000000101041a000001e70000013d000000de0420009c000001af0000613d000000df0220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000600220008c0000030a0000413d0000000402100370000000000402043b000000e50240009c0000030a0000213d0000002402100370000000000202043b000000e505200197000000e50220009c0000030a0000213d00000000020004110000004401100370000000000301043b000080060120008c000002090000613d000000090100008a000000000112016f000080010110008c000002090000613d000000f001000041000000800010043f0000002001000039000000840010043f0000003e01000039000000a40010043f000000f101000041000000c40010043f000000f201000041000000e40010043f000000f3010000410000035a00010430000000e10420009c000001e30000613d000000e20220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000400220008c0000030a0000413d0000000402100370000000000402043b000000e50240009c0000030a0000213d0000002401100370000000000501043b0000000001000411000080010110008c000001ff0000c13d0000000101000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000000910000c13d000400000005001d000000000021041b0000000000400435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d035803530000040f000000050500002900000001022001900000030a0000613d000000000101043b000000000201041a0000000403000029000000000232001a000000910000413d000002c20000013d000000fa0100004100000000001004350000001101000039000001e00000013d000000040230008a000000400220008c0000030a0000413d0000000402100370000000000802043b000000e50280009c0000030a0000213d0000002402100370000000000402043b000000e90240009c0000030a0000213d0000002302400039000000ea05000041000000000632004b00000000060000190000000006058019000000ea02200197000000000702004b0000000005008019000000ea0220009c000000000506c019000000000205004b0000030a0000c13d0000000405400039000000000251034f000000000202043b000000e90620009c000001dd0000213d000000bf06200039000000200900008a000000000696016f000000e90760009c000001dd0000213d000000400060043f000000800020043f00000000042400190000002404400039000000000334004b0000030a0000213d0000002003500039000000000131034f0000001f0320018f0000000504200272000000ca0000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000c20000413d000400000009001d000500000008001d000000000503004b000000db0000613d0000000504400210000000000141034f0000000303300210000000a004400039000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000a00120003900000000000104350000000001000416000300000001001d00000000010004100000000000100435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039035803530000040f0000000102200190000000050400002900000004070000290000030a0000613d000000000101043b000000000201041a00000003090000290000000002920049000000000021041b0000000101000039000000000201041a0000000002920049000000000021041b000000ec02000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000000008000411000000600280021000000058031000390000000000230435000000380210003900000000009204350000006c03100039000000800200043d000000000402004b000001100000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000524004b000001090000413d000000000332001900000000000304350000004c0320003900000000003104350000008b02200039000000000272016f000000000a12001900000000022a004b00000000020000190000000102004039000000e903a0009c000001dd0000213d0000000102200190000001dd0000c13d000100000008001d0000004000a0043f000000ed0200004100000000002a04350000000402a000390000002003000039000000000032043500000000020104330000002403a0003900000000002304350000004403a00039000000000402004b000001330000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b0000012c0000413d000000000132001900000000000104350000001f01200039000000000171016f000000d702000041000000d703a0009c000000000302001900000000030a401900000040033002100000004401100039000000d70410009c00000000010280190000006001100210000000000131019f0000000003000414000000d70430009c0000000003028019000000c002300210000000000112019f000080080200003900020000000a001d0358034e0000040f000000020a00002900000000030100190000006003300270000000d703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000015c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001540000413d000000000705004b0000016b0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000030c0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000e90410009c00000005040000290000000305000029000001dd0000213d0000000102200190000001dd0000c13d000000400010043f000000200230008c0000030a0000413d00000020021000390000004003000039000000000032043500000000005104350000004003100039000000800200043d00000000002304350000006003100039000000e506400197000000000402004b0000018f0000613d00000000040000190000000005340019000000a007400039000000000707043300000000007504350000002004400039000000000524004b000001880000413d000000000332001900000000000304350000007f02200039000000040220017f000000d703000041000000d70410009c00000000010380190000004001100210000000d70420009c00000000020380190000006002200210000000000112019f0000000002000414000000d70420009c0000000002038019000000c002200210000000000112019f000000ee011001c70000800d020000390000000303000039000000ef040000410000000105000029000003050000013d0000000001000416000000000101004b0000030a0000c13d000000c001000039000000400010043f0000000501000039000000800010043f000000ff01000041000001f20000013d000000040230008a000000200220008c0000030a0000413d0000000401100370000000000401043b000000e50140009c0000030a0000213d0000000001000416000400000001001d00000000010004100000000000100435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d035803530000040f000000050400002900000001022001900000030a0000613d000000000101043b000000000201041a00000004050000290000000002520049000000000021041b0000000101000039000000000201041a0000000002520049000000000021041b000000ec02000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000003802100039000000000052043500000038020000390000000000210435000000f80210009c0000022f0000413d000000fa0100004100000000001004350000004101000039000000040010043f000000fb010000410000035a000104300000000001000416000000000101004b0000030a0000c13d0000001201000039000000800010043f000000e601000041000003590001042e0000000001000416000000000101004b0000030a0000c13d000000c001000039000000400010043f0000000301000039000000800010043f000000e701000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e002000039035803290000040f000000c00110008a000000d702000041000000d70310009c00000000010280190000006001100210000000e8011001c7000003590001042e000000f001000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f000000fc01000041000000c40010043f000000fd010000410000035a00010430000400000003001d0000000000400435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d000300000005001d035803530000040f000000050300002900000001022001900000030a0000613d000000000101043b000000000201041a000000040120006c000002d30000813d000000400100043d0000004402100039000000f603000041000000000032043500000024021000390000001f030000390000000000320435000000f0020000410000000000210435000000040210003900000020030000390000000000320435000000d702000041000000d70310009c00000000010280190000004001100210000000f7011001c70000035a000104300000006007100039000000400070043f000000ed020000410000000000270435000000640210003900000020030000390000000000320435000000840310003900000000020104330000000000230435000000a403100039000000000402004b000002440000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b0000023d0000413d000000000132001900000000000104350000001f01200039000000200200008a000000000121016f000000d702000041000000d70370009c0000000003020019000000000307401900000040033002100000004401100039000000d70410009c00000000010280190000006001100210000000000131019f0000000003000414000000d70430009c0000000003028019000000c002300210000000000112019f0000800802000039000300000007001d0358034e0000040f000000030a00002900000000030100190000006003300270000000d703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000026e0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002660000413d000000000705004b0000027d0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000029f0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000e90410009c00000005050000290000000404000029000001dd0000213d0000000102200190000001dd0000c13d000000400010043f000000200230008c0000030a0000413d0000000000410435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c7000000e5065001970000800d0200003900000003030000390000000005000411000000f904000041000003050000013d000000400200043d0000001f0430018f0000000505300272000002ac0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002a40000413d000000000604004b000002bb0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000d701000041000000d70420009c000000000201801900000040012002100000006002300210000000000121019f0000035a00010430000000000021041b000000400100043d0000000000310435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c70000800d020000390000000203000039000000fe04000041000003050000013d000200000002001d0000000000300435000000200000043f000000d7030000410000000001000414000000d70210009c0000000001038019000000c001100210000000eb011001c70000801002000039035803530000040f000000030300002900000001022001900000030a0000613d0000000204000029000000040240006a000000000101043b000000000021041b00000000003004350000000001000414000000d70210009c000000d701008041000000c001100210000000eb011001c70000801002000039035803530000040f0000000306000029000000050500002900000001022001900000030a0000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d0000000000310435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c70000800d020000390000000303000039000000f5040000410358034e0000040f00000001012001900000030a0000613d0000000001000019000003590001042e00000000010000190000035a00010430000000400200043d0000001f0430018f0000000505300272000003190000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003110000413d000000000604004b000003280000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000002bb0000013d00000000030104330000000002320436000000000403004b000003350000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b0000032e0000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000d702000041000000d70310009c00000000010280190000000003000414000000d70430009c0000000003028019000000c0023002100000004001100210000000000121019f000000eb011001c70000801002000039035803530000040f00000001022001900000034c0000613d000000000101043b000000000001042d00000000010000190000035a0001043000000351002104210000000102000039000000000001042d0000000002000019000000000001042d00000356002104230000000102000039000000000001042d0000000002000019000000000001042d0000035800000432000003590001042e0000035a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000051cff8d80000000000000000000000000000000000000000000000000000000084bc3eaf0000000000000000000000000000000000000000000000000000000084bc3eb00000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009cc7f7080000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000579952fc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000018160ddd000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000080000000000000000045544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000400000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000062f84b24000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c405fe8958410bbaf0c73b7a0c3e20859e86ca168a4c9b0def9c54d2555a306b08c379a0000000000000000000000000000000000000000000000000000000004f6e6c792073797374656d20636f6e7472616374732077697468207370656369616c206163636573732063616e2063616c6c2074686973206d6574686f64000000000000000000000000000000000000000000840000008000000000000000000200000000000000000000000000000000000020000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5472616e7366657220616d6f756e7420657863656564732062616c616e6365000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa02717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63984e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720000000000000000000000000000000000000000640000008000000000000000000f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688545746865720000000000000000000000000000000000000000000000000000007b182cdf1aa84e348ae5644feda1c98a5a163d38bb021538445530813acd46bb", + "deployedBytecode": "0x00050000000000020000008003000039000000400030043f00000000030100190000006003300270000000d7033001970000000102200190000000240000c13d000000040230008c0000030a0000413d000000000201043b000000e002200270000000d90420009c0000002c0000a13d000000da0420009c000000380000a13d000000db0420009c000000950000613d000000dc0420009c000001ea0000613d000000dd0220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000200220008c0000030a0000413d0000000401100370000000000101043b000000e5011001970000000000100435000000200000043f00000000010000190358033c0000040f000000360000013d0000000001000416000000000101004b0000030a0000c13d000000200100003900000100001004430000012000000443000000d801000041000003590001042e000000e00420009c000000600000213d000000e30120009c000001a60000613d000000e40120009c0000030a0000c13d0000000001000416000000000101004b0000030a0000c13d0000000101000039000000000101041a000001e70000013d000000de0420009c000001af0000613d000000df0220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000600220008c0000030a0000413d0000000402100370000000000402043b000000e50240009c0000030a0000213d0000002402100370000000000202043b000000e505200197000000e50220009c0000030a0000213d00000000020004110000004401100370000000000301043b000080060120008c000002090000613d000000090100008a000000000112016f000080010110008c000002090000613d000000f001000041000000800010043f0000002001000039000000840010043f0000003e01000039000000a40010043f000000f101000041000000c40010043f000000f201000041000000e40010043f000000f3010000410000035a00010430000000e10420009c000001e30000613d000000e20220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000400220008c0000030a0000413d0000000402100370000000000402043b000000e50240009c0000030a0000213d0000002401100370000000000501043b0000000001000411000080010110008c000001ff0000c13d0000000101000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000000910000c13d000400000005001d000000000021041b0000000000400435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d035803530000040f000000050500002900000001022001900000030a0000613d000000000101043b000000000201041a0000000403000029000000000232001a000000910000413d000002c20000013d000000fa0100004100000000001004350000001101000039000001e00000013d000000040230008a000000400220008c0000030a0000413d0000000402100370000000000802043b000000e50280009c0000030a0000213d0000002402100370000000000402043b000000e90240009c0000030a0000213d0000002302400039000000ea05000041000000000632004b00000000060000190000000006058019000000ea02200197000000000702004b0000000005008019000000ea0220009c000000000506c019000000000205004b0000030a0000c13d0000000405400039000000000251034f000000000202043b000000e90620009c000001dd0000213d000000bf06200039000000200900008a000000000696016f000000e90760009c000001dd0000213d000000400060043f000000800020043f00000000042400190000002404400039000000000334004b0000030a0000213d0000002003500039000000000131034f0000001f0320018f0000000504200272000000ca0000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000c20000413d000400000009001d000500000008001d000000000503004b000000db0000613d0000000504400210000000000141034f0000000303300210000000a004400039000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000a00120003900000000000104350000000001000416000300000001001d00000000010004100000000000100435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039035803530000040f0000000102200190000000050400002900000004070000290000030a0000613d000000000101043b000000000201041a00000003090000290000000002920049000000000021041b0000000101000039000000000201041a0000000002920049000000000021041b000000ec02000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000000008000411000000600280021000000058031000390000000000230435000000380210003900000000009204350000006c03100039000000800200043d000000000402004b000001100000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000524004b000001090000413d000000000332001900000000000304350000004c0320003900000000003104350000008b02200039000000000272016f000000000a12001900000000022a004b00000000020000190000000102004039000000e903a0009c000001dd0000213d0000000102200190000001dd0000c13d000100000008001d0000004000a0043f000000ed0200004100000000002a04350000000402a000390000002003000039000000000032043500000000020104330000002403a0003900000000002304350000004403a00039000000000402004b000001330000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b0000012c0000413d000000000132001900000000000104350000001f01200039000000000171016f000000d702000041000000d703a0009c000000000302001900000000030a401900000040033002100000004401100039000000d70410009c00000000010280190000006001100210000000000131019f0000000003000414000000d70430009c0000000003028019000000c002300210000000000112019f000080080200003900020000000a001d0358034e0000040f000000020a00002900000000030100190000006003300270000000d703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000015c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001540000413d000000000705004b0000016b0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000030c0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000e90410009c00000005040000290000000305000029000001dd0000213d0000000102200190000001dd0000c13d000000400010043f000000200230008c0000030a0000413d00000020021000390000004003000039000000000032043500000000005104350000004003100039000000800200043d00000000002304350000006003100039000000e506400197000000000402004b0000018f0000613d00000000040000190000000005340019000000a007400039000000000707043300000000007504350000002004400039000000000524004b000001880000413d000000000332001900000000000304350000007f02200039000000040220017f000000d703000041000000d70410009c00000000010380190000004001100210000000d70420009c00000000020380190000006002200210000000000112019f0000000002000414000000d70420009c0000000002038019000000c002200210000000000112019f000000ee011001c70000800d020000390000000303000039000000ef040000410000000105000029000003050000013d0000000001000416000000000101004b0000030a0000c13d000000c001000039000000400010043f0000000501000039000000800010043f000000ff01000041000001f20000013d000000040230008a000000200220008c0000030a0000413d0000000401100370000000000401043b000000e50140009c0000030a0000213d0000000001000416000400000001001d00000000010004100000000000100435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d035803530000040f000000050400002900000001022001900000030a0000613d000000000101043b000000000201041a00000004050000290000000002520049000000000021041b0000000101000039000000000201041a0000000002520049000000000021041b000000ec02000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000003802100039000000000052043500000038020000390000000000210435000000f80210009c0000022f0000413d000000fa0100004100000000001004350000004101000039000000040010043f000000fb010000410000035a000104300000000001000416000000000101004b0000030a0000c13d0000001201000039000000800010043f000000e601000041000003590001042e0000000001000416000000000101004b0000030a0000c13d000000c001000039000000400010043f0000000301000039000000800010043f000000e701000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e002000039035803290000040f000000c00110008a000000d702000041000000d70310009c00000000010280190000006001100210000000e8011001c7000003590001042e000000f001000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f000000fc01000041000000c40010043f000000fd010000410000035a00010430000400000003001d0000000000400435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d000300000005001d035803530000040f000000050300002900000001022001900000030a0000613d000000000101043b000000000201041a000000040120006c000002d30000813d000000400100043d0000004402100039000000f603000041000000000032043500000024021000390000001f030000390000000000320435000000f0020000410000000000210435000000040210003900000020030000390000000000320435000000d702000041000000d70310009c00000000010280190000004001100210000000f7011001c70000035a000104300000006007100039000000400070043f000000ed020000410000000000270435000000640210003900000020030000390000000000320435000000840310003900000000020104330000000000230435000000a403100039000000000402004b000002440000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b0000023d0000413d000000000132001900000000000104350000001f01200039000000200200008a000000000121016f000000d702000041000000d70370009c0000000003020019000000000307401900000040033002100000004401100039000000d70410009c00000000010280190000006001100210000000000131019f0000000003000414000000d70430009c0000000003028019000000c002300210000000000112019f0000800802000039000300000007001d0358034e0000040f000000030a00002900000000030100190000006003300270000000d703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000026e0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002660000413d000000000705004b0000027d0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000029f0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000e90410009c00000005050000290000000404000029000001dd0000213d0000000102200190000001dd0000c13d000000400010043f000000200230008c0000030a0000413d0000000000410435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c7000000e5065001970000800d0200003900000003030000390000000005000411000000f904000041000003050000013d000000400200043d0000001f0430018f0000000505300272000002ac0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002a40000413d000000000604004b000002bb0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000d701000041000000d70420009c000000000201801900000040012002100000006002300210000000000121019f0000035a00010430000000000021041b000000400100043d0000000000310435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c70000800d020000390000000203000039000000fe04000041000003050000013d000200000002001d0000000000300435000000200000043f000000d7030000410000000001000414000000d70210009c0000000001038019000000c001100210000000eb011001c70000801002000039035803530000040f000000030300002900000001022001900000030a0000613d0000000204000029000000040240006a000000000101043b000000000021041b00000000003004350000000001000414000000d70210009c000000d701008041000000c001100210000000eb011001c70000801002000039035803530000040f0000000306000029000000050500002900000001022001900000030a0000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d0000000000310435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c70000800d020000390000000303000039000000f5040000410358034e0000040f00000001012001900000030a0000613d0000000001000019000003590001042e00000000010000190000035a00010430000000400200043d0000001f0430018f0000000505300272000003190000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003110000413d000000000604004b000003280000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000002bb0000013d00000000030104330000000002320436000000000403004b000003350000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b0000032e0000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000d702000041000000d70310009c00000000010280190000000003000414000000d70430009c0000000003028019000000c0023002100000004001100210000000000121019f000000eb011001c70000801002000039035803530000040f00000001022001900000034c0000613d000000000101043b000000000001042d00000000010000190000035a0001043000000351002104210000000102000039000000000001042d0000000002000019000000000001042d00000356002104230000000102000039000000000001042d0000000002000019000000000001042d0000035800000432000003590001042e0000035a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000051cff8d80000000000000000000000000000000000000000000000000000000084bc3eaf0000000000000000000000000000000000000000000000000000000084bc3eb00000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009cc7f7080000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000579952fc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000018160ddd000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000080000000000000000045544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000400000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000062f84b24000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c405fe8958410bbaf0c73b7a0c3e20859e86ca168a4c9b0def9c54d2555a306b08c379a0000000000000000000000000000000000000000000000000000000004f6e6c792073797374656d20636f6e7472616374732077697468207370656369616c206163636573732063616e2063616c6c2074686973206d6574686f64000000000000000000000000000000000000000000840000008000000000000000000200000000000000000000000000000000000020000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5472616e7366657220616d6f756e7420657863656564732062616c616e6365000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa02717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63984e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720000000000000000000000000000000000000000640000008000000000000000000f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688545746865720000000000000000000000000000000000000000000000000000007b182cdf1aa84e348ae5644feda1c98a5a163d38bb021538445530813acd46bb", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/MsgValueSimulator.json b/src/deps/contracts/MsgValueSimulator.json index b669931c..8989db79 100644 --- a/src/deps/contracts/MsgValueSimulator.json +++ b/src/deps/contracts/MsgValueSimulator.json @@ -1,15 +1,15 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "MsgValueSimulator", - "sourceName": "cache-zk/solpp-generated-contracts/MsgValueSimulator.sol", + "sourceName": "contracts-preprocessed/MsgValueSimulator.sol", "abi": [ { "stateMutability": "nonpayable", "type": "fallback" } ], - "bytecode": "0x000800000000000200000000060100190000006006600270000000590760019700070000007103550006000000010355000300000003001f000400000004001f000500000005001f000000590060019d000200000002001f000100000000001f0000008001000039000000400010043f000000000100041600000001022001900000002e0000c13d000000000101004b000000350000c13d00000002010000390000000201100188000000370000c13d00000000010004110000005b0110009c000000370000413d000000400100043d00000064021000390000005c03000041000000000032043500000044021000390000005d0300004100000000003204350000002402100039000000240300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000005f011001c70000016000010430000000000101004b000000350000c13d0000002001000039000001000010044300000120000004430000005a010000410000015f0001042e000000000100001900000160000104300000000001000031015e00440000040f00000020021000390000005903000041000000590420009c00000000020380190000000001010433000000590410009c000000000103801900000060011002100000004002200210000000000112019f0000015f0001042e0005000000000002000000000901001900000005040000310000000305000031000000600100004100000004021001870000000001000410000000000112004b000001200000613d000000000105004b0000000006000411000000ae0000613d000200000004001d000000400100043d0000006403100039000100000005001d00000000005304350000004403100039000400000002001d0000000000230435000000200210003900000061030000410000000000320435000300000006001d00000060036001970000002404100039000000000034043500000064030000390000000000310435000000620310009c000001060000813d000000a003100039000000400030043f0000005903000041000000590420009c000000000203801900000040022002100000000001010433000000590410009c00000000010380190000006001100210000000000121019f0000000002000414000000590420009c0000000002038019000000c002200210000000000121019f0000800a02000039000500000009001d015e01530000040f000000050900002900070000000103550000006001100270000100590010019d0000005901100198000000a60000613d0000003f031000390000006304300197000000400300043d0000000004430019000000000534004b00000000050000190000000105004039000000640640009c000001060000213d0000000105500190000001060000c13d000000400040043f0000000001130436000000070300036700000001050000310000001f0450018f0000000505500272000000970000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b0000008f0000413d000000000604004b000000a60000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000001012001900000011e0000613d0000000105000029000000650150009c0000000402000029000000030600002900000002040000290000010c0000813d000000000005041700000000050004140000000001000031000000000391004b000001320000413d000000590350009c0000010c0000213d0000000103400190000000660300004100000067040000410000000003046019000000c0045002100000006804400197000000000334019f0000000001910049000000590110019700000006011003f700000000013103af000000600d600197015e01580000040f00000000030100190000006003300270000100590030019d000000590330019700070000000103550000000102200190000001380000613d0000003f013000390000006302100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000000640520009c000001060000213d0000000104400190000001060000c13d000000400020043f00000000023104360000001f043000390000000504400272000000e40000613d00000000050000310000000605500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000dc0000413d000000000400004b000000e60000613d0000000104000031000000000443004b0000011e0000213d00000007050003670000001f0430018f0000000503300272000000f60000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000000ee0000413d000000000604004b000001050000613d0000000503300210000000000535034f00000000023200190000000303400210000000000402043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000320435000000000001042d000000690100004100000000001004350000004101000039000000040010043f0000006a010000410000016000010430000000400100043d00000044021000390000006b0300004100000000003204350000002402100039000000080300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000006c011001c7000001600001043000000000010000190000016000010430000000400100043d00000044021000390000006d03000041000000000032043500000024021000390000001e0300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000006c011001c70000016000010430000000690100004100000000001004350000001101000039000000040010043f0000006a0100004100000160000104300000001f0430018f0000000502300272000001430000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000013c0000413d000000000504004b000001510000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000001600001043000000156002104210000000102000039000000000001042d0000000002000019000000000001042d000000000f0d00190000015c002104290000000102000039000000000001042d0000000002000019000000000001042d0000015e000004320000015f0001042e000001600001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000000010000666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c2008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff579952fc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff6000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004d736756616c756553696d756c61746f722063616c6c7320697473656c660000d44067f635588b53489f404b01f1d63a7a4aad6d0e7bbd1ac391aa57401c3dc1", - "deployedBytecode": "0x000800000000000200000000060100190000006006600270000000590760019700070000007103550006000000010355000300000003001f000400000004001f000500000005001f000000590060019d000200000002001f000100000000001f0000008001000039000000400010043f000000000100041600000001022001900000002e0000c13d000000000101004b000000350000c13d00000002010000390000000201100188000000370000c13d00000000010004110000005b0110009c000000370000413d000000400100043d00000064021000390000005c03000041000000000032043500000044021000390000005d0300004100000000003204350000002402100039000000240300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000005f011001c70000016000010430000000000101004b000000350000c13d0000002001000039000001000010044300000120000004430000005a010000410000015f0001042e000000000100001900000160000104300000000001000031015e00440000040f00000020021000390000005903000041000000590420009c00000000020380190000000001010433000000590410009c000000000103801900000060011002100000004002200210000000000112019f0000015f0001042e0005000000000002000000000901001900000005040000310000000305000031000000600100004100000004021001870000000001000410000000000112004b000001200000613d000000000105004b0000000006000411000000ae0000613d000200000004001d000000400100043d0000006403100039000100000005001d00000000005304350000004403100039000400000002001d0000000000230435000000200210003900000061030000410000000000320435000300000006001d00000060036001970000002404100039000000000034043500000064030000390000000000310435000000620310009c000001060000813d000000a003100039000000400030043f0000005903000041000000590420009c000000000203801900000040022002100000000001010433000000590410009c00000000010380190000006001100210000000000121019f0000000002000414000000590420009c0000000002038019000000c002200210000000000121019f0000800a02000039000500000009001d015e01530000040f000000050900002900070000000103550000006001100270000100590010019d0000005901100198000000a60000613d0000003f031000390000006304300197000000400300043d0000000004430019000000000534004b00000000050000190000000105004039000000640640009c000001060000213d0000000105500190000001060000c13d000000400040043f0000000001130436000000070300036700000001050000310000001f0450018f0000000505500272000000970000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b0000008f0000413d000000000604004b000000a60000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000001012001900000011e0000613d0000000105000029000000650150009c0000000402000029000000030600002900000002040000290000010c0000813d000000000005041700000000050004140000000001000031000000000391004b000001320000413d000000590350009c0000010c0000213d0000000103400190000000660300004100000067040000410000000003046019000000c0045002100000006804400197000000000334019f0000000001910049000000590110019700000006011003f700000000013103af000000600d600197015e01580000040f00000000030100190000006003300270000100590030019d000000590330019700070000000103550000000102200190000001380000613d0000003f013000390000006302100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000000640520009c000001060000213d0000000104400190000001060000c13d000000400020043f00000000023104360000001f043000390000000504400272000000e40000613d00000000050000310000000605500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000dc0000413d000000000400004b000000e60000613d0000000104000031000000000443004b0000011e0000213d00000007050003670000001f0430018f0000000503300272000000f60000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000000ee0000413d000000000604004b000001050000613d0000000503300210000000000535034f00000000023200190000000303400210000000000402043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000320435000000000001042d000000690100004100000000001004350000004101000039000000040010043f0000006a010000410000016000010430000000400100043d00000044021000390000006b0300004100000000003204350000002402100039000000080300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000006c011001c7000001600001043000000000010000190000016000010430000000400100043d00000044021000390000006d03000041000000000032043500000024021000390000001e0300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000006c011001c70000016000010430000000690100004100000000001004350000001101000039000000040010043f0000006a0100004100000160000104300000001f0430018f0000000502300272000001430000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000013c0000413d000000000504004b000001510000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000001600001043000000156002104210000000102000039000000000001042d0000000002000019000000000001042d000000000f0d00190000015c002104290000000102000039000000000001042d0000000002000019000000000001042d0000015e000004320000015f0001042e000001600001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000000010000666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c2008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff579952fc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff6000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004d736756616c756553696d756c61746f722063616c6c7320697473656c660000d44067f635588b53489f404b01f1d63a7a4aad6d0e7bbd1ac391aa57401c3dc1", + "bytecode": "0x000200000000000200060000000000020001000000010355000000000601001900000060066002700000004b0060019d0000008007000039000000400070043f0000004b09600197000000000800041600000001072001900000001f0000c13d000000000708004b000000690000c13d0000000202200190000000260000c13d00000000020004110000004d0220009c000000260000413d0000005a01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000005e01000041000000c40010043f0000005f01000041000000e40010043f00000060010000410000012a00010430000000000108004b000000690000c13d0000002001000039000001000010044300000120000004430000004c01000041000001290001042e0000004e024001970000000004000410000000000442004b000000340000c13d0000005a01000041000000800010043f0000002001000039000000840010043f0000001e01000039000000a40010043f0000005c01000041000000c40010043f0000005d010000410000012a00010430000000000403004b00000000080004110000000007090019000000400000c13d00000000000304170000000003000414000000000497004b0000006b0000813d000000570100004100000000001004350000001101000039000000ff0000013d000300000009001d000500000005001d000600000006001d0000004f01000041000000a00010043f000100000008001d0000004e01800197000000a40010043f000200000002001d000000c40020043f000400000003001d000000e40030043f0000006401000039000000800010043f0000012001000039000000400010043f0000004b0100004100000000020004140000004b0320009c0000000002018019000000c00120021000000050011001c70000800a020000390128011d0000040f000000000301001900000060033002700000004b053001980000007f0000c13d00000001012001900000000606000029000000050500002900000004030000290000000309000029000000690000613d000000530130009c000000020200002900000001080000290000006d0000213d00000001010003670000000007000031000000380000013d00000000010000190000012a000104300000004b0430009c000000a80000a13d000000400100043d0000004402100039000000590300004100000000003204350000002402100039000000080300003900000000003204350000005a0200004100000000002104350000000402100039000000200300003900000000003204350000004b020000410000004b0310009c000000000102801900000040011002100000005b011001c70000012a000104300000003f035000390000005103300197000000400400043d0000000003340019000000000643004b00000000060000190000000106004039000000520730009c000000fc0000213d0000000106600190000000fc0000c13d000000400030043f0000001f0350018f00000000045404360000000505500272000000980000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000000900000413d000000000603004b0000005c0000613d0000000505500210000000000151034f00000000045400190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000005c0000013d000000010450019000000054040000410000005505000041000000000504c019000000c0033002100000005603300197000000000353019f00000000046700490000004b0440019700000000014103df00000000013103af0000004e0d800197012801220000040f000000000301001900000060033002700000004b033001970000000102200190000001020000613d0000003f023000390000005104200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000000520640009c000000fc0000213d0000000105500190000000fc0000c13d000000400040043f00000000043204360000001f053000390000000505500272000000d50000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000000cd0000413d000000000500004b000000d70000613d0000001f0530018f0000000503300272000000e30000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b000000db0000413d000000000605004b000000f20000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000013043500000000010204330000004b020000410000004b0310009c00000000010280190000004b0340009c000000000402801900000040024002100000006001100210000000000121019f000001290001042e000000570100004100000000001004350000004101000039000000040010043f00000058010000410000012a000104300000001f0430018f00000005023002720000010d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000001060000413d000000000504004b0000011b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000012a0001043000000120002104210000000102000039000000000001042d0000000002000019000000000001042d000000000f0d001900000126002104290000000102000039000000000001042d0000000002000019000000000001042d0000012800000432000001290001042e0000012a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff579952fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000a0000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff0100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004d736756616c756553696d756c61746f722063616c6c7320697473656c660000000000000000000000000000000000000000006400000080000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c20666c61670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000000000000000000000000000000000000000000000000000000000000000000000bd3386b643652f0d2d91676a702da94d4184d0caf8993b96d7eb891324b9ae9b", + "deployedBytecode": "0x000200000000000200060000000000020001000000010355000000000601001900000060066002700000004b0060019d0000008007000039000000400070043f0000004b09600197000000000800041600000001072001900000001f0000c13d000000000708004b000000690000c13d0000000202200190000000260000c13d00000000020004110000004d0220009c000000260000413d0000005a01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000005e01000041000000c40010043f0000005f01000041000000e40010043f00000060010000410000012a00010430000000000108004b000000690000c13d0000002001000039000001000010044300000120000004430000004c01000041000001290001042e0000004e024001970000000004000410000000000442004b000000340000c13d0000005a01000041000000800010043f0000002001000039000000840010043f0000001e01000039000000a40010043f0000005c01000041000000c40010043f0000005d010000410000012a00010430000000000403004b00000000080004110000000007090019000000400000c13d00000000000304170000000003000414000000000497004b0000006b0000813d000000570100004100000000001004350000001101000039000000ff0000013d000300000009001d000500000005001d000600000006001d0000004f01000041000000a00010043f000100000008001d0000004e01800197000000a40010043f000200000002001d000000c40020043f000400000003001d000000e40030043f0000006401000039000000800010043f0000012001000039000000400010043f0000004b0100004100000000020004140000004b0320009c0000000002018019000000c00120021000000050011001c70000800a020000390128011d0000040f000000000301001900000060033002700000004b053001980000007f0000c13d00000001012001900000000606000029000000050500002900000004030000290000000309000029000000690000613d000000530130009c000000020200002900000001080000290000006d0000213d00000001010003670000000007000031000000380000013d00000000010000190000012a000104300000004b0430009c000000a80000a13d000000400100043d0000004402100039000000590300004100000000003204350000002402100039000000080300003900000000003204350000005a0200004100000000002104350000000402100039000000200300003900000000003204350000004b020000410000004b0310009c000000000102801900000040011002100000005b011001c70000012a000104300000003f035000390000005103300197000000400400043d0000000003340019000000000643004b00000000060000190000000106004039000000520730009c000000fc0000213d0000000106600190000000fc0000c13d000000400030043f0000001f0350018f00000000045404360000000505500272000000980000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000000900000413d000000000603004b0000005c0000613d0000000505500210000000000151034f00000000045400190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000005c0000013d000000010450019000000054040000410000005505000041000000000504c019000000c0033002100000005603300197000000000353019f00000000046700490000004b0440019700000000014103df00000000013103af0000004e0d800197012801220000040f000000000301001900000060033002700000004b033001970000000102200190000001020000613d0000003f023000390000005104200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000000520640009c000000fc0000213d0000000105500190000000fc0000c13d000000400040043f00000000043204360000001f053000390000000505500272000000d50000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000000cd0000413d000000000500004b000000d70000613d0000001f0530018f0000000503300272000000e30000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b000000db0000413d000000000605004b000000f20000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000013043500000000010204330000004b020000410000004b0310009c00000000010280190000004b0340009c000000000402801900000040024002100000006001100210000000000121019f000001290001042e000000570100004100000000001004350000004101000039000000040010043f00000058010000410000012a000104300000001f0430018f00000005023002720000010d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000001060000413d000000000504004b0000011b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000012a0001043000000120002104210000000102000039000000000001042d0000000002000019000000000001042d000000000f0d001900000126002104290000000102000039000000000001042d0000000002000019000000000001042d0000012800000432000001290001042e0000012a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff579952fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000a0000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff0100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004d736756616c756553696d756c61746f722063616c6c7320697473656c660000000000000000000000000000000000000000006400000080000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c20666c61670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000000000000000000000000000000000000000000000000000000000000000000000bd3386b643652f0d2d91676a702da94d4184d0caf8993b96d7eb891324b9ae9b", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/NonceHolder.json b/src/deps/contracts/NonceHolder.json index cf484dff..aff59093 100644 --- a/src/deps/contracts/NonceHolder.json +++ b/src/deps/contracts/NonceHolder.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "NonceHolder", - "sourceName": "cache-zk/solpp-generated-contracts/NonceHolder.sol", + "sourceName": "contracts-preprocessed/NonceHolder.sol", "abi": [ { "anonymous": false, @@ -221,8 +221,8 @@ "type": "function" } ], - "bytecode": "0x0004000000000002000600000000000200030000000103550000006001100270000001020010019d000200000002001f000100000000001f0000008001000039000000400010043f00000001012001900000003e0000c13d0000000001000031000000040110008c000002080000413d0000000301000367000000000101043b000000e001100270000001040210009c000000460000213d0000010b0210009c000000720000a13d0000010c0210009c0000017b0000613d0000010d0210009c000001ac0000613d0000010e0110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000000100435000000200000043f00000000010000190404037f0000040f000000000101041a000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d0000002001000039000001000010044300000120000004430000010301000041000004050001042e000001050210009c000000a10000a13d000001060210009c000001d30000613d000001070210009c000001f70000613d000001080110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000000100435000000200000043f00000000010000190404037f0000040f000000000101041a0000008001100270000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000010f0210009c000000c40000613d000001100110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000002000411000080060220008c0000025d0000c13d000600000001001d040403910000040f000000000101041a000500000001001d0000000601000029040403910000040f00000005030000290000012002300041000000000021041b0000008001300270000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e000001090210009c000001320000613d0000010a0110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d040403a10000040f000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000400310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d000000000300041100000003010003670000002402100370000000000402043b0000000401100370000000000201043b00000002010000390000000201100188000000e00000c13d000001210130009c000002100000813d000400000004001d000300000002001d000000400400043d000600000004001d00000122010000410000000001140436000500000001001d000200000003001d00000112023001970000000401400039000100000002001d000000000021043500000102010000410000000002000414000001020320009c0000000002018019000001020340009c00000000010440190000004001100210000000c002200210000000000112019f00000123011001c70000800602000039040403ff0000040f000000060a000029000000000301001900000060033002700000010203300197000000400430008c000000400400003900000000040340190000001f0540018f00000005064002720000010b0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001030000413d000000000705004b0000011a0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000002720000613d0000001f01400039000000e00210018f0000000001a20019000000000221004b00000000020000190000000102004039000001240410009c0000012c0000213d00000001022001900000012c0000c13d000000400010043f000000400230008c000002080000413d000001250210009c000002ce0000a13d0000012a0100004100000000001004350000004101000039000000040010043f000001230100004100000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000600310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000003010003670000000402100370000000000402043b000001120240009c000002080000213d0000004402100370000000000302043b000000000203004b0000000002000019000000010200c039000600000003001d000000000223004b000002080000c13d0000002401100370000000000101043b000400000001001d0000000000400435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039000500000004001d040403ff0000040f00000005030000290000000102200190000002080000613d000000000101043b000000000101041a00000115011001970000000402000029000000000121004b000002aa0000a13d0000000601000029000000000101004b000002cc0000c13d000000400200043d000600000002001d000001170100004100000000001204350000000401200039040403f00000040f000000060400002900000000014100490000010202000041000001020310009c0000000001028019000001020340009c000000000204401900000040022002100000006001100210000000000121019f00000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000201043b00000002010000390000000201100188000001950000c13d00000000010004110000ffff0110008c000002100000213d0000011a0120009c000002450000413d000000400100043d00000064021000390000011b03000041000000000032043500000044021000390000011c030000410000000000320435000000240210003900000030030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c700000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d000000000100041100000000001004350000000101000039000000200010043f00000000010000190404037f0000040f00000004020000390000000302200367000000000202043b0000000000200435000000200010043f00000000010000190404037f0000040f000000000101041a000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000400310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000003020003670000000401200370000000000101043b000001120310009c000002080000213d0000002402200370000000000202043b040403b40000040f000000000101004b0000000001000019000000010100c039000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b0000020a0000613d00000000010000190000040600010430000000000200041100000002010000390000000201100188000002250000c13d0000ffff0120008c000002250000a13d000000400100043d00000064021000390000012b03000041000000000032043500000044021000390000012c030000410000000000320435000000240210003900000024030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c70000040600010430000600000002001d0000000000200435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d00000004020000390000000302200367000000000202043b000000000101043b000000000101041a0000011503100197000000000223004b000002980000c13d00000006020000290000000000200435000000200000043f0000000101100039000600000001001d00000000010000190404037f0000040f0000000602000029000000000021041b0000000001000019000004050001042e0000000001000411000500000001001d0000000000100435000000200000043f0000000001000019000600000002001d0404037f0000040f000000000101041a000400000001001d0000000501000029040403910000040f000000060200002900000004030000290000000002230019000000000021041b0000011501300197000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e000000400100043d00000064021000390000011e03000041000000000032043500000044021000390000011f03000041000000000032043500000024021000390000003d030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c70000040600010430000000400200043d0000001f0430018f00000005033002720000027f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000002770000413d000000000504004b0000028e0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000102010000410000000103000031000001020430009c0000000003018019000001020420009c000000000102401900000040011002100000006002300210000000000112019f0000040600010430000000400100043d00000044021000390000011603000041000000000032043500000024021000390000000f030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c7000004060001043000000000003004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000004020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b000000000101041a000000000101004b000001670000c13d0000000601000029000000000101004b000002ee0000c13d0000000001000019000004050001042e0000004002100039000000400020043f00000000020a0433000000010320008c000002080000213d000000000221043600000005010000290000000001010433000000010310008c000002080000213d00000000001204350000000402000029000000000202004b000003000000c13d000000400100043d00000044021000390000012903000041000000000032043500000024021000390000001e030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c70000040600010430000000400100043d00000044021000390000011903000041000000000032043500000024021000390000001d030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c70000040600010430000000000101004b0000031a0000c13d0000000301000029000000000101004b0000031a0000613d00000001010000290000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d0000000302000029000000010220008a000000000101043b000000000101041a0000011501100197000600000002001d000000000121004b0000034e0000a13d000000020100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000003020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b0000000402000029000000000021041b000000400100043d000000000021043500000102020000410000000003000414000001020430009c0000000003028019000001020410009c00000000010280190000004001100210000000c002300210000000000112019f00000127011001c70000800d020000390000000303000039000001280400004100000002050000290000000306000029040403fa0000040f0000000101200190000002080000613d000002cc0000013d000000010100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000006020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b000000000101041a000000000101004b0000031a0000c13d000000400100043d00000044021000390000012603000041000000000032043500000117020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c7000004060001043000000102020000410000000003000414000001020430009c0000000003028019000001020410009c00000000010280190000004001100210000000c002300210000000000112019f00000114011001c70000801002000039040403ff0000040f00000001022001900000038f0000613d000000000101043b000000000001042d000000000100001900000406000104300000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f00000001022001900000039f0000613d000000000101043b000000000001042d0000000001000019000004060001043000000112011001970000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003b20000613d000000000101043b000000000101041a0000011501100197000000000001042d000000000100001900000406000104300002000000000002000200000002001d0000011201100197000100000001001d0000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d0000000102000039000000000101043b000000000101041a00000115011001970000000203000029000000000131004b000003ec0000213d000000010100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d000000000101043b00000002020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d000000000101043b000000000101041a000000000101004b0000000002000019000000010200c039000000010120018f000000000001042d0000000001000019000004060001043000000040021000390000012d03000041000000000032043500000020021000390000001c030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d000003fd002104210000000102000039000000000001042d0000000002000019000000000001042d00000402002104230000000102000039000000000001042d0000000002000019000000000001042d0000040400000432000004050001042e0000040600010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006ee1dc1f00000000000000000000000000000000000000000000000000000000cab7e8ea00000000000000000000000000000000000000000000000000000000cab7e8eb00000000000000000000000000000000000000000000000000000000e1239cd800000000000000000000000000000000000000000000000000000000fb1a9a57000000000000000000000000000000000000000000000000000000006ee1dc2000000000000000000000000000000000000000000000000000000000896909dc0000000000000000000000000000000000000000000000000000000038a780910000000000000000000000000000000000000000000000000000000038a780920000000000000000000000000000000000000000000000000000000055d35d18000000000000000000000000000000000000000000000000000000005aa9b6b500000000000000000000000000000000000000000000000000000000155fd27a00000000000000000000000000000000000000000000000000000000306395c68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000000000000000000000020000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff496e636f7272656374206e6f6e6365000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000546865206e6f6e636520776173206e6f7420736574206173207573656400000000000000000000000000000000000000000000000000000000000001000000016f6e636520697320746f6f2068696768000000000000000000000000000000005468652076616c756520666f7220696e6372656d656e74696e6720746865206e00000000000000000000000000000000000000840000000000000000000000006e6372656d656e7420746865206465706c6f796d656e74206e6f6e63650000004f6e6c792074686520636f6e7472616374206465706c6f7965722063616e2069000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100007b510fe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf50726576696f7573206e6f6e636520686173206e6f74206265656e20757365640200000000000000000000000000000000000020000000000000000000000000da2b716e5a5d5f602b9a5842bcd89c215b125258dfea271a03e5e0e801d93a8c4e6f6e63652076616c75652063616e6e6f742062652073657420746f203000004e487b7100000000000000000000000000000000000000000000000000000000666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c2052657573696e67207468652073616d65206e6f6e636520747769636500000000501c26608344a09e93fd75d75fa0338d79ed540145d531243c88c8adba134376", - "deployedBytecode": "0x0004000000000002000600000000000200030000000103550000006001100270000001020010019d000200000002001f000100000000001f0000008001000039000000400010043f00000001012001900000003e0000c13d0000000001000031000000040110008c000002080000413d0000000301000367000000000101043b000000e001100270000001040210009c000000460000213d0000010b0210009c000000720000a13d0000010c0210009c0000017b0000613d0000010d0210009c000001ac0000613d0000010e0110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000000100435000000200000043f00000000010000190404037f0000040f000000000101041a000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d0000002001000039000001000010044300000120000004430000010301000041000004050001042e000001050210009c000000a10000a13d000001060210009c000001d30000613d000001070210009c000001f70000613d000001080110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000000100435000000200000043f00000000010000190404037f0000040f000000000101041a0000008001100270000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000010f0210009c000000c40000613d000001100110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000002000411000080060220008c0000025d0000c13d000600000001001d040403910000040f000000000101041a000500000001001d0000000601000029040403910000040f00000005030000290000012002300041000000000021041b0000008001300270000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e000001090210009c000001320000613d0000010a0110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d040403a10000040f000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000400310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d000000000300041100000003010003670000002402100370000000000402043b0000000401100370000000000201043b00000002010000390000000201100188000000e00000c13d000001210130009c000002100000813d000400000004001d000300000002001d000000400400043d000600000004001d00000122010000410000000001140436000500000001001d000200000003001d00000112023001970000000401400039000100000002001d000000000021043500000102010000410000000002000414000001020320009c0000000002018019000001020340009c00000000010440190000004001100210000000c002200210000000000112019f00000123011001c70000800602000039040403ff0000040f000000060a000029000000000301001900000060033002700000010203300197000000400430008c000000400400003900000000040340190000001f0540018f00000005064002720000010b0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001030000413d000000000705004b0000011a0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000002720000613d0000001f01400039000000e00210018f0000000001a20019000000000221004b00000000020000190000000102004039000001240410009c0000012c0000213d00000001022001900000012c0000c13d000000400010043f000000400230008c000002080000413d000001250210009c000002ce0000a13d0000012a0100004100000000001004350000004101000039000000040010043f000001230100004100000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000600310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000003010003670000000402100370000000000402043b000001120240009c000002080000213d0000004402100370000000000302043b000000000203004b0000000002000019000000010200c039000600000003001d000000000223004b000002080000c13d0000002401100370000000000101043b000400000001001d0000000000400435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039000500000004001d040403ff0000040f00000005030000290000000102200190000002080000613d000000000101043b000000000101041a00000115011001970000000402000029000000000121004b000002aa0000a13d0000000601000029000000000101004b000002cc0000c13d000000400200043d000600000002001d000001170100004100000000001204350000000401200039040403f00000040f000000060400002900000000014100490000010202000041000001020310009c0000000001028019000001020340009c000000000204401900000040022002100000006001100210000000000121019f00000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000201043b00000002010000390000000201100188000001950000c13d00000000010004110000ffff0110008c000002100000213d0000011a0120009c000002450000413d000000400100043d00000064021000390000011b03000041000000000032043500000044021000390000011c030000410000000000320435000000240210003900000030030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c700000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d000000000100041100000000001004350000000101000039000000200010043f00000000010000190404037f0000040f00000004020000390000000302200367000000000202043b0000000000200435000000200010043f00000000010000190404037f0000040f000000000101041a000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000400310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000003020003670000000401200370000000000101043b000001120310009c000002080000213d0000002402200370000000000202043b040403b40000040f000000000101004b0000000001000019000000010100c039000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b0000020a0000613d00000000010000190000040600010430000000000200041100000002010000390000000201100188000002250000c13d0000ffff0120008c000002250000a13d000000400100043d00000064021000390000012b03000041000000000032043500000044021000390000012c030000410000000000320435000000240210003900000024030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c70000040600010430000600000002001d0000000000200435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d00000004020000390000000302200367000000000202043b000000000101043b000000000101041a0000011503100197000000000223004b000002980000c13d00000006020000290000000000200435000000200000043f0000000101100039000600000001001d00000000010000190404037f0000040f0000000602000029000000000021041b0000000001000019000004050001042e0000000001000411000500000001001d0000000000100435000000200000043f0000000001000019000600000002001d0404037f0000040f000000000101041a000400000001001d0000000501000029040403910000040f000000060200002900000004030000290000000002230019000000000021041b0000011501300197000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e000000400100043d00000064021000390000011e03000041000000000032043500000044021000390000011f03000041000000000032043500000024021000390000003d030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c70000040600010430000000400200043d0000001f0430018f00000005033002720000027f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000002770000413d000000000504004b0000028e0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000102010000410000000103000031000001020430009c0000000003018019000001020420009c000000000102401900000040011002100000006002300210000000000112019f0000040600010430000000400100043d00000044021000390000011603000041000000000032043500000024021000390000000f030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c7000004060001043000000000003004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000004020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b000000000101041a000000000101004b000001670000c13d0000000601000029000000000101004b000002ee0000c13d0000000001000019000004050001042e0000004002100039000000400020043f00000000020a0433000000010320008c000002080000213d000000000221043600000005010000290000000001010433000000010310008c000002080000213d00000000001204350000000402000029000000000202004b000003000000c13d000000400100043d00000044021000390000012903000041000000000032043500000024021000390000001e030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c70000040600010430000000400100043d00000044021000390000011903000041000000000032043500000024021000390000001d030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c70000040600010430000000000101004b0000031a0000c13d0000000301000029000000000101004b0000031a0000613d00000001010000290000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d0000000302000029000000010220008a000000000101043b000000000101041a0000011501100197000600000002001d000000000121004b0000034e0000a13d000000020100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000003020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b0000000402000029000000000021041b000000400100043d000000000021043500000102020000410000000003000414000001020430009c0000000003028019000001020410009c00000000010280190000004001100210000000c002300210000000000112019f00000127011001c70000800d020000390000000303000039000001280400004100000002050000290000000306000029040403fa0000040f0000000101200190000002080000613d000002cc0000013d000000010100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000006020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b000000000101041a000000000101004b0000031a0000c13d000000400100043d00000044021000390000012603000041000000000032043500000117020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c7000004060001043000000102020000410000000003000414000001020430009c0000000003028019000001020410009c00000000010280190000004001100210000000c002300210000000000112019f00000114011001c70000801002000039040403ff0000040f00000001022001900000038f0000613d000000000101043b000000000001042d000000000100001900000406000104300000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f00000001022001900000039f0000613d000000000101043b000000000001042d0000000001000019000004060001043000000112011001970000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003b20000613d000000000101043b000000000101041a0000011501100197000000000001042d000000000100001900000406000104300002000000000002000200000002001d0000011201100197000100000001001d0000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d0000000102000039000000000101043b000000000101041a00000115011001970000000203000029000000000131004b000003ec0000213d000000010100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d000000000101043b00000002020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d000000000101043b000000000101041a000000000101004b0000000002000019000000010200c039000000010120018f000000000001042d0000000001000019000004060001043000000040021000390000012d03000041000000000032043500000020021000390000001c030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d000003fd002104210000000102000039000000000001042d0000000002000019000000000001042d00000402002104230000000102000039000000000001042d0000000002000019000000000001042d0000040400000432000004050001042e0000040600010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006ee1dc1f00000000000000000000000000000000000000000000000000000000cab7e8ea00000000000000000000000000000000000000000000000000000000cab7e8eb00000000000000000000000000000000000000000000000000000000e1239cd800000000000000000000000000000000000000000000000000000000fb1a9a57000000000000000000000000000000000000000000000000000000006ee1dc2000000000000000000000000000000000000000000000000000000000896909dc0000000000000000000000000000000000000000000000000000000038a780910000000000000000000000000000000000000000000000000000000038a780920000000000000000000000000000000000000000000000000000000055d35d18000000000000000000000000000000000000000000000000000000005aa9b6b500000000000000000000000000000000000000000000000000000000155fd27a00000000000000000000000000000000000000000000000000000000306395c68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000000000000000000000020000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff496e636f7272656374206e6f6e6365000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000546865206e6f6e636520776173206e6f7420736574206173207573656400000000000000000000000000000000000000000000000000000000000001000000016f6e636520697320746f6f2068696768000000000000000000000000000000005468652076616c756520666f7220696e6372656d656e74696e6720746865206e00000000000000000000000000000000000000840000000000000000000000006e6372656d656e7420746865206465706c6f796d656e74206e6f6e63650000004f6e6c792074686520636f6e7472616374206465706c6f7965722063616e2069000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100007b510fe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf50726576696f7573206e6f6e636520686173206e6f74206265656e20757365640200000000000000000000000000000000000020000000000000000000000000da2b716e5a5d5f602b9a5842bcd89c215b125258dfea271a03e5e0e801d93a8c4e6f6e63652076616c75652063616e6e6f742062652073657420746f203000004e487b7100000000000000000000000000000000000000000000000000000000666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c2052657573696e67207468652073616d65206e6f6e636520747769636500000000501c26608344a09e93fd75d75fa0338d79ed540145d531243c88c8adba134376", + "bytecode": "0x00010000000000020005000000000002000000000601034f00000000000603550000008001000039000000400010043f00000000010600190000006001100270000000bb011001970000000103200190000000260000c13d000000040310008c0000026b0000413d000000000306043b000000e003300270000000bd0430009c0000002e0000213d000000c40430009c000000470000a13d000000c50430009c000001000000613d000000c60230009c000001190000613d000000c70230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000000100435000000200000043f0000012b0000013d0000000001000416000000000101004b0000026b0000c13d000000200100003900000100001004430000012000000443000000bc01000041000002e70001042e000000be0430009c000000630000a13d000000bf0430009c000001310000613d000000c00430009c000001420000613d000000c10230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000000100435000000200000043f000000000100001902e602ca0000040f000000000101041a00000080011002700000012e0000013d000000c80430009c000000730000613d000000c90230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000002000411000080060220008c000001b20000c13d000500000001001d02e6026d0000040f000000000101041a000400000001001d000000050100002902e6026d0000040f0000000403000029000000da02300041000000000021041b0000008001300270000001870000013d000000c20230009c000000cf0000613d000000c30230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d02e6027d0000040f000001870000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000400110008c0000026b0000413d00000000030004110000002401600370000000000501043b0000000401600370000000000401043b0000000201200190000000820000c13d000000db0130009c0000014d0000813d000500000005001d000400000004001d000000dc01000041000000800010043f000300000003001d000000ca01300197000200000001001d000000840010043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000dd011001c7000080060200003902e602e10000040f00000000030100190000006003300270000000bb03300197000000400430008c000000000403001900000040040080390000001f0540018f0000000506400272000000a40000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000009c0000413d000000000705004b000000b30000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000018f0000613d0000001f01400039000000e00110018f0000008002100039000000400020043f000000400330008c0000026b0000413d000000c003100039000000400030043f000000800300043d000000010430008c0000026b0000213d0000000000320435000000a00200043d000000010320008c0000026b0000213d000000a0011000390000000000210435000000050100006b000001f50000c13d000000400100043d0000004402100039000000e103000041000000000032043500000024021000390000001e03000039000001c20000013d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000600110008c0000026b0000413d0000000401600370000000000301043b000000ca0130009c0000026b0000213d0000004401600370000000000201043b000000000102004b0000000001000019000000010100c039000500000002001d000000000112004b0000026b0000c13d0000002401600370000000000101043b000300000001001d0000000000300435000000200000043f000000bb010000410000000002000414000400000003001d000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f000000040300002900000001022001900000026b0000613d000000000101043b000000000101041a000000cd01100197000000030110006c000001ce0000a13d000000050100006b0000023f0000c13d000000400100043d0000004402100039000000d303000041000000000032043500000024021000390000001c03000039000001c20000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000301043b00000002012001900000010d0000c13d00000000010004110000ffff0110008c0000014d0000213d000000d40130009c000001780000413d000000cf01000041000000800010043f0000002001000039000000840010043f0000003001000039000000a40010043f000000d501000041000000c40010043f000000d601000041000001560000013d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d000000000100041100000000001004350000000101000039000000200010043f0000000001000019000500000006035302e602ca0000040f000000050200035f0000000402200370000000000202043b0000000000200435000000200010043f000000000100001902e602ca0000040f000000000101041a000000800010043f000000cb01000041000002e70001042e0000000002000416000000000202004b0000026b0000c13d000000040110008a000000400110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000002402600370000000000202043b02e602900000040f000000000101004b0000000001000019000000010100c039000001870000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d00000000030004110000000201200190000001590000c13d0000ffff0130008c000001590000a13d000000cf01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f000000e201000041000000c40010043f000000e301000041000000e40010043f000000d701000041000002e800010430000500000003001d0000000000300435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d00000004020000390000000002200367000000000202043b000000000101043b000000000101041a000000cd03100197000000000223004b000001bc0000c13d00000005020000290000000000200435000000200000043f000500010010003d000000000100001902e602ca0000040f0000000502000029000000000021041b0000000001000019000002e70001042e0000000001000411000400000001001d0000000000100435000000200000043f0000000001000019000500000003001d02e602ca0000040f000000000101041a000300000001001d000000040100002902e6026d0000040f00000003030000290000000502300029000000000021041b000000cd01300197000000400200043d0000000000120435000000bb01000041000000bb0320009c00000000020180190000004001200210000000d1011001c7000002e70001042e000000400200043d0000001f0430018f00000005053002720000019c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001940000413d000000000604004b000001ab0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000bb01000041000000bb0420009c000000000201801900000040012002100000006002300210000000000121019f000002e800010430000000cf01000041000000800010043f0000002001000039000000840010043f0000003d01000039000000a40010043f000000d801000041000000c40010043f000000d901000041000001560000013d000000400100043d0000004402100039000000ce03000041000000000032043500000024021000390000000f030000390000000000320435000000cf020000410000000000210435000000040210003900000020030000390000000000320435000000bb02000041000000bb0310009c00000000010280190000004001100210000000d0011001c7000002e80001043000000000003004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000003020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b000000000101041a000000000101004b000000f70000c13d000000050100006b0000023f0000613d000000400100043d0000004402100039000000d203000041000000000032043500000024021000390000001d03000039000001c20000013d000000000102004b0000020d0000c13d000000040100006b0000020d0000613d00000002010000290000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d00000004020000290001000100200092000000000101043b000000000101041a000000cd01100197000000010110006c000002410000a13d000000030100002900000000001004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000004020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b0000000502000029000000000021041b000000400100043d0000000000210435000000bb020000410000000003000414000000bb0430009c0000000003028019000000bb0410009c00000000010280190000004001100210000000c002300210000000000112019f000000df011001c70000800d020000390000000303000039000000e0040000410000000305000029000000040600002902e602dc0000040f00000001012001900000026b0000613d0000000001000019000002e70001042e000000020100002900000000001004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000001020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b000000000101041a000000000101004b0000020d0000c13d000000400100043d0000004402100039000000de030000410000000000320435000000cf0200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000001c70000013d0000000001000019000002e8000104300000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000027b0000613d000000000101043b000000000001042d0000000001000019000002e800010430000000ca011001970000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000028e0000613d000000000101043b000000000101041a000000cd01100197000000000001042d0000000001000019000002e8000104300002000000000002000200000002001d000000ca01100197000100000001001d0000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d0000000102000039000000000101043b000000000101041a000000cd01100197000000020110006c000002c60000213d000000010100002900000000001004350000000101000039000000200010043f000000bb040000410000000001000414000000bb0210009c0000000001048019000000c001100210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d000000000101043b00000002020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d000000000101043b000000000101041a000000000101004b0000000002000019000000010200c039000000010120018f000000000001042d0000000001000019000002e800010430000000bb02000041000000bb0310009c00000000010280190000000003000414000000bb0430009c0000000003028019000000c0023002100000004001100210000000000121019f000000cc011001c7000080100200003902e602e10000040f0000000102200190000002da0000613d000000000101043b000000000001042d0000000001000019000002e800010430000002df002104210000000102000039000000000001042d0000000002000019000000000001042d000002e4002104230000000102000039000000000001042d0000000002000019000000000001042d000002e600000432000002e70001042e000002e80001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006ee1dc1f00000000000000000000000000000000000000000000000000000000cab7e8ea00000000000000000000000000000000000000000000000000000000cab7e8eb00000000000000000000000000000000000000000000000000000000e1239cd800000000000000000000000000000000000000000000000000000000fb1a9a57000000000000000000000000000000000000000000000000000000006ee1dc2000000000000000000000000000000000000000000000000000000000896909dc0000000000000000000000000000000000000000000000000000000038a780910000000000000000000000000000000000000000000000000000000038a780920000000000000000000000000000000000000000000000000000000055d35d18000000000000000000000000000000000000000000000000000000005aa9b6b500000000000000000000000000000000000000000000000000000000155fd27a00000000000000000000000000000000000000000000000000000000306395c6000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000800000000000000000020000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff496e636f7272656374206e6f6e6365000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000546865206e6f6e636520776173206e6f7420736574206173207573656400000052657573696e67207468652073616d65206e6f6e63652074776963650000000000000000000000000000000000000000000000000000000000000001000000015468652076616c756520666f7220696e6372656d656e74696e6720746865206e6f6e636520697320746f6f20686967680000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000004f6e6c792074686520636f6e7472616374206465706c6f7965722063616e20696e6372656d656e7420746865206465706c6f796d656e74206e6f6e6365000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100007b510fe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000080000000000000000050726576696f7573206e6f6e636520686173206e6f74206265656e20757365640200000000000000000000000000000000000020000000000000000000000000da2b716e5a5d5f602b9a5842bcd89c215b125258dfea271a03e5e0e801d93a8c4e6f6e63652076616c75652063616e6e6f742062652073657420746f2030000054686973206d6574686f6420726571756972652073797374656d2063616c6c20666c6167000000000000000000000000000000000000000000000000000000002939c4cdfb90c729970c3ad2c9098d21b2a06bfb91c7512c7e805ee298dc6741", + "deployedBytecode": "0x00010000000000020005000000000002000000000601034f00000000000603550000008001000039000000400010043f00000000010600190000006001100270000000bb011001970000000103200190000000260000c13d000000040310008c0000026b0000413d000000000306043b000000e003300270000000bd0430009c0000002e0000213d000000c40430009c000000470000a13d000000c50430009c000001000000613d000000c60230009c000001190000613d000000c70230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000000100435000000200000043f0000012b0000013d0000000001000416000000000101004b0000026b0000c13d000000200100003900000100001004430000012000000443000000bc01000041000002e70001042e000000be0430009c000000630000a13d000000bf0430009c000001310000613d000000c00430009c000001420000613d000000c10230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000000100435000000200000043f000000000100001902e602ca0000040f000000000101041a00000080011002700000012e0000013d000000c80430009c000000730000613d000000c90230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000002000411000080060220008c000001b20000c13d000500000001001d02e6026d0000040f000000000101041a000400000001001d000000050100002902e6026d0000040f0000000403000029000000da02300041000000000021041b0000008001300270000001870000013d000000c20230009c000000cf0000613d000000c30230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d02e6027d0000040f000001870000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000400110008c0000026b0000413d00000000030004110000002401600370000000000501043b0000000401600370000000000401043b0000000201200190000000820000c13d000000db0130009c0000014d0000813d000500000005001d000400000004001d000000dc01000041000000800010043f000300000003001d000000ca01300197000200000001001d000000840010043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000dd011001c7000080060200003902e602e10000040f00000000030100190000006003300270000000bb03300197000000400430008c000000000403001900000040040080390000001f0540018f0000000506400272000000a40000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000009c0000413d000000000705004b000000b30000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000018f0000613d0000001f01400039000000e00110018f0000008002100039000000400020043f000000400330008c0000026b0000413d000000c003100039000000400030043f000000800300043d000000010430008c0000026b0000213d0000000000320435000000a00200043d000000010320008c0000026b0000213d000000a0011000390000000000210435000000050100006b000001f50000c13d000000400100043d0000004402100039000000e103000041000000000032043500000024021000390000001e03000039000001c20000013d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000600110008c0000026b0000413d0000000401600370000000000301043b000000ca0130009c0000026b0000213d0000004401600370000000000201043b000000000102004b0000000001000019000000010100c039000500000002001d000000000112004b0000026b0000c13d0000002401600370000000000101043b000300000001001d0000000000300435000000200000043f000000bb010000410000000002000414000400000003001d000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f000000040300002900000001022001900000026b0000613d000000000101043b000000000101041a000000cd01100197000000030110006c000001ce0000a13d000000050100006b0000023f0000c13d000000400100043d0000004402100039000000d303000041000000000032043500000024021000390000001c03000039000001c20000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000301043b00000002012001900000010d0000c13d00000000010004110000ffff0110008c0000014d0000213d000000d40130009c000001780000413d000000cf01000041000000800010043f0000002001000039000000840010043f0000003001000039000000a40010043f000000d501000041000000c40010043f000000d601000041000001560000013d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d000000000100041100000000001004350000000101000039000000200010043f0000000001000019000500000006035302e602ca0000040f000000050200035f0000000402200370000000000202043b0000000000200435000000200010043f000000000100001902e602ca0000040f000000000101041a000000800010043f000000cb01000041000002e70001042e0000000002000416000000000202004b0000026b0000c13d000000040110008a000000400110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000002402600370000000000202043b02e602900000040f000000000101004b0000000001000019000000010100c039000001870000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d00000000030004110000000201200190000001590000c13d0000ffff0130008c000001590000a13d000000cf01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f000000e201000041000000c40010043f000000e301000041000000e40010043f000000d701000041000002e800010430000500000003001d0000000000300435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d00000004020000390000000002200367000000000202043b000000000101043b000000000101041a000000cd03100197000000000223004b000001bc0000c13d00000005020000290000000000200435000000200000043f000500010010003d000000000100001902e602ca0000040f0000000502000029000000000021041b0000000001000019000002e70001042e0000000001000411000400000001001d0000000000100435000000200000043f0000000001000019000500000003001d02e602ca0000040f000000000101041a000300000001001d000000040100002902e6026d0000040f00000003030000290000000502300029000000000021041b000000cd01300197000000400200043d0000000000120435000000bb01000041000000bb0320009c00000000020180190000004001200210000000d1011001c7000002e70001042e000000400200043d0000001f0430018f00000005053002720000019c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001940000413d000000000604004b000001ab0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000bb01000041000000bb0420009c000000000201801900000040012002100000006002300210000000000121019f000002e800010430000000cf01000041000000800010043f0000002001000039000000840010043f0000003d01000039000000a40010043f000000d801000041000000c40010043f000000d901000041000001560000013d000000400100043d0000004402100039000000ce03000041000000000032043500000024021000390000000f030000390000000000320435000000cf020000410000000000210435000000040210003900000020030000390000000000320435000000bb02000041000000bb0310009c00000000010280190000004001100210000000d0011001c7000002e80001043000000000003004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000003020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b000000000101041a000000000101004b000000f70000c13d000000050100006b0000023f0000613d000000400100043d0000004402100039000000d203000041000000000032043500000024021000390000001d03000039000001c20000013d000000000102004b0000020d0000c13d000000040100006b0000020d0000613d00000002010000290000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d00000004020000290001000100200092000000000101043b000000000101041a000000cd01100197000000010110006c000002410000a13d000000030100002900000000001004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000004020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b0000000502000029000000000021041b000000400100043d0000000000210435000000bb020000410000000003000414000000bb0430009c0000000003028019000000bb0410009c00000000010280190000004001100210000000c002300210000000000112019f000000df011001c70000800d020000390000000303000039000000e0040000410000000305000029000000040600002902e602dc0000040f00000001012001900000026b0000613d0000000001000019000002e70001042e000000020100002900000000001004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000001020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b000000000101041a000000000101004b0000020d0000c13d000000400100043d0000004402100039000000de030000410000000000320435000000cf0200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000001c70000013d0000000001000019000002e8000104300000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000027b0000613d000000000101043b000000000001042d0000000001000019000002e800010430000000ca011001970000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000028e0000613d000000000101043b000000000101041a000000cd01100197000000000001042d0000000001000019000002e8000104300002000000000002000200000002001d000000ca01100197000100000001001d0000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d0000000102000039000000000101043b000000000101041a000000cd01100197000000020110006c000002c60000213d000000010100002900000000001004350000000101000039000000200010043f000000bb040000410000000001000414000000bb0210009c0000000001048019000000c001100210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d000000000101043b00000002020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d000000000101043b000000000101041a000000000101004b0000000002000019000000010200c039000000010120018f000000000001042d0000000001000019000002e800010430000000bb02000041000000bb0310009c00000000010280190000000003000414000000bb0430009c0000000003028019000000c0023002100000004001100210000000000121019f000000cc011001c7000080100200003902e602e10000040f0000000102200190000002da0000613d000000000101043b000000000001042d0000000001000019000002e800010430000002df002104210000000102000039000000000001042d0000000002000019000000000001042d000002e4002104230000000102000039000000000001042d0000000002000019000000000001042d000002e600000432000002e70001042e000002e80001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006ee1dc1f00000000000000000000000000000000000000000000000000000000cab7e8ea00000000000000000000000000000000000000000000000000000000cab7e8eb00000000000000000000000000000000000000000000000000000000e1239cd800000000000000000000000000000000000000000000000000000000fb1a9a57000000000000000000000000000000000000000000000000000000006ee1dc2000000000000000000000000000000000000000000000000000000000896909dc0000000000000000000000000000000000000000000000000000000038a780910000000000000000000000000000000000000000000000000000000038a780920000000000000000000000000000000000000000000000000000000055d35d18000000000000000000000000000000000000000000000000000000005aa9b6b500000000000000000000000000000000000000000000000000000000155fd27a00000000000000000000000000000000000000000000000000000000306395c6000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000800000000000000000020000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff496e636f7272656374206e6f6e6365000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000546865206e6f6e636520776173206e6f7420736574206173207573656400000052657573696e67207468652073616d65206e6f6e63652074776963650000000000000000000000000000000000000000000000000000000000000001000000015468652076616c756520666f7220696e6372656d656e74696e6720746865206e6f6e636520697320746f6f20686967680000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000004f6e6c792074686520636f6e7472616374206465706c6f7965722063616e20696e6372656d656e7420746865206465706c6f796d656e74206e6f6e6365000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100007b510fe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000080000000000000000050726576696f7573206e6f6e636520686173206e6f74206265656e20757365640200000000000000000000000000000000000020000000000000000000000000da2b716e5a5d5f602b9a5842bcd89c215b125258dfea271a03e5e0e801d93a8c4e6f6e63652076616c75652063616e6e6f742062652073657420746f2030000054686973206d6574686f6420726571756972652073797374656d2063616c6c20666c6167000000000000000000000000000000000000000000000000000000002939c4cdfb90c729970c3ad2c9098d21b2a06bfb91c7512c7e805ee298dc6741", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/SHA256.yul.zbin b/src/deps/contracts/SHA256.yul.zbin index 81eea3d792476ddc02b456e36d3ca24c8b33b94a..305def7bee3bd469f3b6e3b1520b13f0166b8c5c 100644 GIT binary patch delta 40 ycmV+@0N4NE1>gm+zyctn28#*!O6gXdSrYHCF&R3GgP{gm+zycst9BB|w%H+UBqbfSM4>{M^Q-6rdW9wC{*x|#=x*9ihy%WR$ diff --git a/src/deps/contracts/SystemContext.json b/src/deps/contracts/SystemContext.json index 35112544..051bd11e 100644 --- a/src/deps/contracts/SystemContext.json +++ b/src/deps/contracts/SystemContext.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "SystemContext", - "sourceName": "cache-zk/solpp-generated-contracts/SystemContext.sol", + "sourceName": "contracts-preprocessed/SystemContext.sol", "abi": [ { "inputs": [ @@ -402,8 +402,8 @@ "type": "function" } ], - "bytecode": "0x0002000000000002000600000000000200010000000103550000006001100270000001d80010019d0000008001000039000000400010043f0000000102200190000000370000c13d0000000002000031000000040220008c000003ea0000413d0000000102000367000000000202043b000000e002200270000001dc0320009c0000004a0000213d000001ee0320009c000000580000a13d000001ef0120009c000000b10000a13d000001f00120009c0000013d0000213d000001f30120009c0000019d0000613d000001f40120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010c01000039000000000101041a0000020101100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000001d8010000410000000302000039000000000012041b0000000401000039000000000201041a000001d90220019700008001022001bf000000000021041b000001da010000410000000502000039000000000012041b000000200100003900000100001004430000012000000443000001db010000410000075b0001042e000001dd0120009c0000008b0000a13d000001de0120009c000000d20000a13d000001df0120009c0000017e0000213d000001e20120009c000001b80000613d000001e30120009c000003ea0000c13d0000000001000416000000000101004b000001bb0000613d000003ea0000013d000001f80320009c000000f50000213d000001fc0320009c000001d60000613d000001fd0320009c0000022a0000613d000001fe0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c000003fe0000c13d0000000a05000039000000000305041a000000400200043d0000002001200039000000000031043500000004030000390000000103300367000000000303043b00000040042000390000000000340435000000400300003900000000003204350000020f0320009c0000044d0000213d0000006003200039000000400030043f0000000002020433000600000005001d075a06250000040f0000000602000029000000000012041b00000000010000190000075b0001042e000001e70120009c0000011a0000213d000001eb0120009c000002840000613d000001ec0120009c000002880000613d000001ed0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a067a0000040f0000020102200197000000400300043d0000002004300039000000000024043500000201011001970000000000130435000001d801000041000001d80230009c0000000001034019000000400110021000000202011001c70000075b0001042e000001f50120009c000002a40000613d000001f60120009c000002c00000613d000001f70120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000601000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000001e40120009c000002dc0000613d000001e50120009c000002f80000613d000001e60120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f00000004010000390000000101100367000000000101043b0000000202000039000000000012041b00000000010000190000075b0001042e000001f90120009c0000031c0000613d000001fa0120009c000003370000613d000001fb0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c000003fe0000c13d0000010e01000039000000000201041a0000ffff0320018f0000ffff0430008c000004210000c13d000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c00010430000001e80120009c000003600000613d000001e90120009c0000037c0000613d000001ea0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a06670000040f00000201022001970000008001100210000000000121019f000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000001f10120009c000003960000613d000001f20120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000004010000390000000101100367000000000101043b000000400200043d000002040320009c0000044d0000213d0000010c03000039000000000503041a0000004003200039000000400030043f0000010d03000039000000000403041a00000201034001970000000006320436000000800340027000000000003604350000008006500270000000000516004b00000000050000190000047a0000a13d0000000005160049000001010550008c00000000050000190000047a0000813d00000000020204330000020102200197000000000221004b000004270000813d00000000001004350000000801000039000000200010043f000001d8010000410000000002000414000001d80320009c0000000001024019000000c00110021000000207011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b000000000501041a0000047a0000013d000001e00120009c000003d90000613d000001e10120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000201000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000301000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a06670000040f0000020102200197000000400300043d0000002004300039000000000024043500000201011001970000000000130435000001d801000041000001d80230009c0000000001034019000000400110021000000202011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000800310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000001010003670000000402100370000000000202043b000600000002001d0000002402100370000000000202043b0000000004020019000002010220009c000003ea0000213d0000004401100370000000000101043b000500000001001d000002010110009c000003ea0000213d000000400500043d0000000002000411000080010220008c0000042f0000c13d0000022e0250009c0000044d0000813d0000004002500039000000400020043f0000000702000039000000000202041a00000020035000390000008001200270000000000013043500000201022001970000000000250435000400000004001d000000000224004b000004530000a13d000300000001001d075a068d0000040f0000000502000029000000000121013f000002010110019800000000010000190000000101006039075a070c0000040f0000000401000029075a07360000040f0000000301000029075a07240000040f0000000602000029000000000021041b0000000301000029075a068d0000040f000500000001001d075a065b0000040f000000050200002900000201022001970000002003100039000000000023043500000004020000290000000000210435075a06a20000040f00000064010000390000000101100367000000000101043b0000000602000039000000000012041b00000004010000390000000602000029000000000021041c00000000010000190000075b0001042e0000000002000416000000000202004b000003ea0000c13d000000040200008a0000000002200031000001ff03000041000000a00420008c00000000040000190000000004034019000001ff02200197000000000502004b000000000300a019000001ff0220009c00000000020400190000000002036019000000000202004b000003ea0000c13d00000001030003670000000402300370000000000202043b000600000002001d000002010220009c000003ea0000213d0000002402300370000000000202043b000500000002001d000002010220009c000003ea0000213d0000004402300370000000000202043b000400000002001d0000006402300370000000000202043b000000000402004b0000000004000019000000010400c039000000000442004b000003ea0000c13d0000008403300370000000000303043b000300000003001d000002010330009c000003ea0000213d0000000003000411000080010330008c000003fe0000c13d000000000302004b000004820000c13d000000400400043d000002040340009c0000044d0000213d0000004003400039000000400030043f0000000903000039000100000003001d000000000503041a0000002006400039000000800350027000000000003604350000020106500197000200000006001d0000000000640435000002010450009c000004bb0000213d0000000204000029000000000404004b000004c10000c13d000000000102004b0000054c0000c13d000000400100043d00000064021000390000022c03000041000000000032043500000044021000390000022d03000041000000000032043500000024021000390000002103000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000001000416000000000101004b000003ea0000c13d000003dc0000013d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010e01000039000000000101041a0000ffff0110018f000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f0000010e01000039000000000201041a0000020e02200197000000000021041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010c01000039000000000101041a0000008001100270000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000401000039000000000101041a0000020301100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000004010000390000000101100367000000000101043b000600000001001d000002030110009c000003ea0000213d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f0000000101000039000000000201041a000001d9022001970000000603000029000000000232019f000000000021041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000501000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000600310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f000000400100043d075a06500000040f00000001010003670000002402100370000000000202043b00000080022002100000000401100370000000000101043b0000020101100197000000000121019f0000000702000039000000000012041b00000044010000390000000101100367000000000101043b0000000602000039000000000012041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000101000039000000000101041a0000020301100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d000000400100043d000000000200041a0000000000210435000001d802000041000001d80310009c0000000001028019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d000000400100043d0000000002000411000080010220008c000004100000c13d000002040210009c0000044d0000213d0000004002100039000000400020043f0000000702000039000000000202041a00000020031000390000008004200270000000000043043500000201032001970000000000310435000000400100043d000002040410009c0000044d0000213d0000004004100039000000400040043f0000000904000039000000000404041a00000020051000390000008006400270000000000065043500000201044001970000000000410435000002010120009c000004410000213d000000400100043d00000064021000390000020b03000041000000000032043500000044021000390000020c03000041000000000032043500000024021000390000002f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ec0000613d00000000010000190000075c0001043000000004010000390000000101100367000000000101043b00000000001004350000000801000039000000200010043f00000040020000390000000001000019075a06250000040f000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000000400100043d00000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c0001043000000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000020e022001970000000103300039000000000223019f000000000021041b00000000010000190000075b0001042e000002050240009c000004470000413d000000000231004b000004470000413d000001012110011a0000000b01200039000000000501041a0000047a0000013d00000044025000390000020803000041000000000032043500000024025000390000001f03000039000000000032043500000209020000410000000000250435000000040250003900000020030000390000000000320435000001d802000041000001d80350009c0000000001020019000000000105401900000040011002100000020a011001c70000075c000104300000008001300210000000000114019f0000000302000039000000000012041c00000000010000190000075b0001042e000000400200043d000000200300003900000000033204360000000000130435000002040120009c000004640000a13d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400100043d00000044021000390000022f0300004100000000003204350000020902000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000004001200039000000400010043f000001d801000041000001d80430009c000000000301801900000040033002100000000002020433000001d80420009c00000000020180190000006002200210000000000232019f0000000003000414000001d80430009c0000000001034019000000c001100210000000000121019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000501043b000000400100043d0000000000510435000001d802000041000001d80310009c0000000001028019000000400110021000000200011001c70000075b0001042e0000000703000039000000000303041a00000201033001970000000504000029000000000334004b000004a30000813d000000400100043d000000a4021000390000021203000041000000000032043500000084021000390000021303000041000000000032043500000064021000390000021403000041000000000032043500000044021000390000021503000041000000000032043500000024021000390000006103000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c0000000001028019000000400110021000000216011001c70000075c000104300000000303000029000000000303004b0000025a0000c13d000000400100043d00000064021000390000021003000041000000000032043500000044021000390000021103000041000000000032043500000024021000390000003f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000604000029000000000443004b000004c40000613d000002010230009c000004ed0000c13d000001140000013d0000000604000029000000000443004b000004ed0000c13d000000000102004b000005370000c13d00000005010000290000000202000029000000000112004b000005750000c13d0000000601000029000000010110008a000002010210009c000001140000213d0000020101100197000001012110011a0000000b01200039000000000101041a0000000402000029000000000112004b000005cf0000c13d0000000301000029000000000101004b000005c90000613d000000400100043d00000064021000390000022403000041000000000032043500000044021000390000022503000041000000000032043500000024021000390000003c03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c0001043000000001023000390000000604000029000000000242004b000005640000c13d000000010230008a000002010420009c000001140000213d0000020102200197000001014220011a0000000b02400039000000000402041a0000000a02000039000000000502041a000000400200043d0000008006200039000000000056043500000060052000390000000000450435000000400420003900000002050000290000000000540435000000200420003900000000003404350000000000120435000002170120009c0000044d0000213d000000a001200039000000400010043f000001d801000041000001d80340009c0000000003010019000000000304401900000040033002100000000002020433000001d80420009c00000000020180190000006002200210000000000232019f0000000003000414000001d80430009c0000000001034019000000c001100210000000000121019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b0000000402000029000000000112004b000005e40000c13d000000400100043d00000005020000290000000203000029000000000232004b0000060e0000a13d000002040210009c0000044d0000213d0000004002100039000000400020043f000000200210003900000006030000290000000000320435000000050200002900000000002104350000008001300210000000000112019f0000000102000029000000000012041b000000010130008a000002010210009c000001140000213d000005c20000013d000000400100043d00000064021000390000021e03000041000000000032043500000044021000390000021f03000041000000000032043500000024021000390000003503000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000601000029000000000101004b0000058a0000c13d000000400100043d00000064021000390000022a03000041000000000032043500000044021000390000022b03000041000000000032043500000024021000390000002c03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400200043d000600000002001d000002090100004100000000001204350000000401200039075a06980000040f00000006040000290000000001410049000001d802000041000001d80310009c0000000001028019000001d80340009c000000000204401900000040022002100000006001100210000000000121019f0000075c00010430000000400100043d00000064021000390000022003000041000000000032043500000044021000390000022103000041000000000032043500000024021000390000002f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d0000000402000039000000000221043600000006030000290000020103300041000200000003001d000000e0033002100000000000320435000002040310009c0000044d0000213d0000004003100039000000400030043f000001d803000041000001d80420009c000000000203801900000040022002100000000001010433000001d80410009c00000000010380190000006001100210000000000121019f0000000002000414000001d80420009c0000000002038019000000c002200210000000000112019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b0000000402000029000000000121004b000005f90000c13d00000002010000290000020101100197000001012110011a0000000b012000390000000402000029000000000021041b000000400100043d000002040210009c0000044d0000213d0000004002100039000000400020043f000000200210003900000006030000290000000000320435000000050200002900000000002104350000008001300210000000000112019f0000000102000029000000000012041b000000010130008a0000020101100197000001012110011a0000000b012000390000000402000029000000000021041b0000000a01000039000000000001041b000000060100002900000003020000290000000503000029075a06aa0000040f00000000010000190000075b0001042e000000400100043d00000064021000390000022203000041000000000032043500000044021000390000022303000041000000000032043500000024021000390000003303000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d00000064021000390000021803000041000000000032043500000044021000390000021903000041000000000032043500000024021000390000002603000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d00000064021000390000022803000041000000000032043500000044021000390000022903000041000000000032043500000024021000390000002703000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c0001043000000084021000390000021a03000041000000000032043500000064021000390000021b03000041000000000032043500000044021000390000021c03000041000000000032043500000024021000390000005d03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000021d011001c70000075c00010430000001d803000041000001d80410009c00000000010380190000004001100210000001d80420009c00000000020380190000006002200210000000000112019f0000000002000414000001d80420009c0000000002038019000000c002200210000000000112019f00000206011001c70000801002000039075a07550000040f0000000102200190000006390000613d000000000101043b000000000001042d00000000010000190000075c00010430000000000101004b0000063e0000613d000000000001042d000000400100043d00000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000022e0210009c000006550000813d0000004001100039000000400010043f000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400100043d0000022e0210009c000006610000813d0000004002100039000000400020043f000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400300043d0000022e0130009c000006740000813d0000004001300039000000400010043f0000000701000039000000000201041a00000020043000390000008001200270000000000014043500000201022001970000000000230435000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400300043d0000022e0130009c000006870000813d0000004001300039000000400010043f0000000901000039000000000201041a00000020043000390000008001200270000000000014043500000201022001970000000000230435000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c000104300000020101100197000002010210009c000006920000613d0000000101100039000000000001042d000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c0001043000000040021000390000023003000041000000000032043500000020021000390000001b030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0000000021010434000002010110019700000000020204330000008002200210000000000112019f0000000702000039000000000012041b000000000001042d0000010d04000039000000000504041a000002050550009c000006c20000813d000000400500043d0000022e0650009c000006eb0000813d0000004006500039000000400060043f0000010c08000039000000000708041a0000020106700197000000000665043600000080077002700000000000760435000000000808041a000002010880009c000006bf0000213d00000000080504330000020108800198000006c50000613d0000020102200198000006d10000c13d000006ea0000013d0000000901000039000000000101041a000006e80000013d0000000707000039000000000707041a00000080077002700000000000760435000000000804041a0000023108800197000000000778019f000000000074041b0000020102200198000006f70000613d0000000007060433000000010220008a00000201077001970000000002270019000002050720009c000006f10000813d000000000026043500000201033001970000000000350435000002010210019700000000070604330000020108700197000000000828004b000006e50000413d0000008001100210000000000304041a0000020103300197000000000113019f000000000014041b00000000002604350000000003050433000000000702001900000201013001970000008002700210000000000112019f0000010c02000039000000000012041b000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c00010430000000400100043d00000064021000390000023203000041000000000032043500000044021000390000023303000041000000000032043500000024021000390000002803000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000000101004b0000070f0000613d000000000001042d000000400100043d00000064021000390000023403000041000000000032043500000044021000390000023503000041000000000032043500000024021000390000002803000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000002010110019700000000001004350000000801000039000000200010043f000001d8010000410000000002000414000001d80320009c0000000001024019000000c00110021000000207011001c70000801002000039075a07550000040f0000000102200190000007340000613d000000000101043b000000000001042d00000000010000190000075c0001043000000201011001970000000902000039000000000202041a0000020102200197000000000121004b0000073d0000a13d000000000001042d000000400100043d00000084021000390000023603000041000000000032043500000064021000390000023703000041000000000032043500000044021000390000023803000041000000000032043500000024021000390000005303000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000021d011001c70000075c0001043000000758002104230000000102000039000000000001042d0000000002000019000000000001042d0000075a000004320000075b0001042e0000075c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e1bc9bf0400000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000085df51fc00000000000000000000000000000000000000000000000000000000a6ae0aab00000000000000000000000000000000000000000000000000000000d0f2c66200000000000000000000000000000000000000000000000000000000ddeaa8e500000000000000000000000000000000000000000000000000000000ddeaa8e600000000000000000000000000000000000000000000000000000000fe173b9700000000000000000000000000000000000000000000000000000000d0f2c66300000000000000000000000000000000000000000000000000000000d4a4ca0d00000000000000000000000000000000000000000000000000000000a6ae0aac00000000000000000000000000000000000000000000000000000000a851ae7800000000000000000000000000000000000000000000000000000000bf1fe42000000000000000000000000000000000000000000000000000000000938b5f3100000000000000000000000000000000000000000000000000000000938b5f32000000000000000000000000000000000000000000000000000000009a8a059200000000000000000000000000000000000000000000000000000000a0803ef70000000000000000000000000000000000000000000000000000000085df51fd000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000008e8acf87000000000000000000000000000000000000000000000000000000003635f3e5000000000000000000000000000000000000000000000000000000007877a796000000000000000000000000000000000000000000000000000000007c9bd1f2000000000000000000000000000000000000000000000000000000007c9bd1f30000000000000000000000000000000000000000000000000000000080b41246000000000000000000000000000000000000000000000000000000007877a79700000000000000000000000000000000000000000000000000000000796b89b9000000000000000000000000000000000000000000000000000000003635f3e60000000000000000000000000000000000000000000000000000000042cbb15c000000000000000000000000000000000000000000000000000000006ef25c3a0000000000000000000000000000000000000000000000000000000019cae4610000000000000000000000000000000000000000000000000000000019cae4620000000000000000000000000000000000000000000000000000000029f172ad0000000000000000000000000000000000000000000000000000000030e5ccbd0000000000000000000000000000000000000000000000000000000002fa57790000000000000000000000000000000000000000000000000000000006bed0360000000000000000000000000000000000000000000000000000000006e7517b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000040000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf00000000000000000000000000000001000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000004000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000002067726561746572207468616e203000000000000000000000000000000000005468652063757272656e74206261746368206e756d626572206d7573742062650000000000000000000000000000000000000084000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffffff9f656174656420617420746865207374617274206f6620746865206261746368005468657265206d7573742062652061207669727475616c20626c6f636b206372680000000000000000000000000000000000000000000000000000000000000068652074696d657374616d70206f66207468652063757272656e74206261746373742062652067726561746572207468616e206f7220657175616c20746f20745468652074696d657374616d70206f6620746865204c3220626c6f636b206d7500000000000000000000000000000000000000c4000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f6f727265637400000000000000000000000000000000000000000000000000005468652063757272656e74204c3220626c6f636b206861736820697320696e6374616d70206f66207468652070726576696f7573204c3220626c6f636b0000006b206d7573742062652067726561746572207468616e207468652074696d65735468652074696d657374616d70206f6620746865206e6577204c3220626c6f6300000000000000000000000000000000000000a40000000000000000000000006f6d207468652070726576696f7573206261746368000000000000000000000043616e206e6f74207265757365204c3220626c6f636b206e756d626572206672636b206d7573742062652073616d6500000000000000000000000000000000005468652074696d657374616d70206f66207468652073616d65204c3220626c6f20626c6f636b206d7573742062652073616d65000000000000000000000000005468652070726576696f75732068617368206f66207468652073616d65204c3220746865206d6964646c65206f6620746865206d696e69626c6f636b0000000043616e206e6f7420637265617465207669727475616c20626c6f636b7320696e4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000636f7272656374000000000000000000000000000000000000000000000000005468652070726576696f7573204c3220626c6f636b206861736820697320696e6420746f206265207a65726f00000000000000000000000000000000000000004c3220626c6f636b206e756d626572206973206e657665722065787065637465740000000000000000000000000000000000000000000000000000000000000055706772616465207472616e73616374696f6e206d7573742062652066697273000000000000000000000000000000000000000000000000ffffffffffffffc054696d657374616d70732073686f756c6420626520696e6372656d656e74616c496e76616c6964206e6577204c3220626c6f636b206e756d6265720000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000616c20626c6f636b00000000000000000000000000000000000000000000000043616e277420696e697469616c697a652074686520666972737420766972747520636f72726563740000000000000000000000000000000000000000000000005468652070726f766964656420626c6f636b206e756d626572206973206e6f74207468652070726576696f757320626c6f636b0000000000000000000000000062652067726561746572207468616e207468652074696d657374616d70206f665468652074696d657374616d70206f6620746865206261746368206d7573742000000000000000000000000000000000000000000000000000000000000000000be0c6cf64037e617675286e231b21587c8dedaf2b373135e6ddfb43a22f29d2", - "deployedBytecode": "0x0002000000000002000600000000000200010000000103550000006001100270000001d80010019d0000008001000039000000400010043f0000000102200190000000370000c13d0000000002000031000000040220008c000003ea0000413d0000000102000367000000000202043b000000e002200270000001dc0320009c0000004a0000213d000001ee0320009c000000580000a13d000001ef0120009c000000b10000a13d000001f00120009c0000013d0000213d000001f30120009c0000019d0000613d000001f40120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010c01000039000000000101041a0000020101100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000001d8010000410000000302000039000000000012041b0000000401000039000000000201041a000001d90220019700008001022001bf000000000021041b000001da010000410000000502000039000000000012041b000000200100003900000100001004430000012000000443000001db010000410000075b0001042e000001dd0120009c0000008b0000a13d000001de0120009c000000d20000a13d000001df0120009c0000017e0000213d000001e20120009c000001b80000613d000001e30120009c000003ea0000c13d0000000001000416000000000101004b000001bb0000613d000003ea0000013d000001f80320009c000000f50000213d000001fc0320009c000001d60000613d000001fd0320009c0000022a0000613d000001fe0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c000003fe0000c13d0000000a05000039000000000305041a000000400200043d0000002001200039000000000031043500000004030000390000000103300367000000000303043b00000040042000390000000000340435000000400300003900000000003204350000020f0320009c0000044d0000213d0000006003200039000000400030043f0000000002020433000600000005001d075a06250000040f0000000602000029000000000012041b00000000010000190000075b0001042e000001e70120009c0000011a0000213d000001eb0120009c000002840000613d000001ec0120009c000002880000613d000001ed0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a067a0000040f0000020102200197000000400300043d0000002004300039000000000024043500000201011001970000000000130435000001d801000041000001d80230009c0000000001034019000000400110021000000202011001c70000075b0001042e000001f50120009c000002a40000613d000001f60120009c000002c00000613d000001f70120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000601000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000001e40120009c000002dc0000613d000001e50120009c000002f80000613d000001e60120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f00000004010000390000000101100367000000000101043b0000000202000039000000000012041b00000000010000190000075b0001042e000001f90120009c0000031c0000613d000001fa0120009c000003370000613d000001fb0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c000003fe0000c13d0000010e01000039000000000201041a0000ffff0320018f0000ffff0430008c000004210000c13d000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c00010430000001e80120009c000003600000613d000001e90120009c0000037c0000613d000001ea0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a06670000040f00000201022001970000008001100210000000000121019f000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000001f10120009c000003960000613d000001f20120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000004010000390000000101100367000000000101043b000000400200043d000002040320009c0000044d0000213d0000010c03000039000000000503041a0000004003200039000000400030043f0000010d03000039000000000403041a00000201034001970000000006320436000000800340027000000000003604350000008006500270000000000516004b00000000050000190000047a0000a13d0000000005160049000001010550008c00000000050000190000047a0000813d00000000020204330000020102200197000000000221004b000004270000813d00000000001004350000000801000039000000200010043f000001d8010000410000000002000414000001d80320009c0000000001024019000000c00110021000000207011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b000000000501041a0000047a0000013d000001e00120009c000003d90000613d000001e10120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000201000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000301000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a06670000040f0000020102200197000000400300043d0000002004300039000000000024043500000201011001970000000000130435000001d801000041000001d80230009c0000000001034019000000400110021000000202011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000800310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000001010003670000000402100370000000000202043b000600000002001d0000002402100370000000000202043b0000000004020019000002010220009c000003ea0000213d0000004401100370000000000101043b000500000001001d000002010110009c000003ea0000213d000000400500043d0000000002000411000080010220008c0000042f0000c13d0000022e0250009c0000044d0000813d0000004002500039000000400020043f0000000702000039000000000202041a00000020035000390000008001200270000000000013043500000201022001970000000000250435000400000004001d000000000224004b000004530000a13d000300000001001d075a068d0000040f0000000502000029000000000121013f000002010110019800000000010000190000000101006039075a070c0000040f0000000401000029075a07360000040f0000000301000029075a07240000040f0000000602000029000000000021041b0000000301000029075a068d0000040f000500000001001d075a065b0000040f000000050200002900000201022001970000002003100039000000000023043500000004020000290000000000210435075a06a20000040f00000064010000390000000101100367000000000101043b0000000602000039000000000012041b00000004010000390000000602000029000000000021041c00000000010000190000075b0001042e0000000002000416000000000202004b000003ea0000c13d000000040200008a0000000002200031000001ff03000041000000a00420008c00000000040000190000000004034019000001ff02200197000000000502004b000000000300a019000001ff0220009c00000000020400190000000002036019000000000202004b000003ea0000c13d00000001030003670000000402300370000000000202043b000600000002001d000002010220009c000003ea0000213d0000002402300370000000000202043b000500000002001d000002010220009c000003ea0000213d0000004402300370000000000202043b000400000002001d0000006402300370000000000202043b000000000402004b0000000004000019000000010400c039000000000442004b000003ea0000c13d0000008403300370000000000303043b000300000003001d000002010330009c000003ea0000213d0000000003000411000080010330008c000003fe0000c13d000000000302004b000004820000c13d000000400400043d000002040340009c0000044d0000213d0000004003400039000000400030043f0000000903000039000100000003001d000000000503041a0000002006400039000000800350027000000000003604350000020106500197000200000006001d0000000000640435000002010450009c000004bb0000213d0000000204000029000000000404004b000004c10000c13d000000000102004b0000054c0000c13d000000400100043d00000064021000390000022c03000041000000000032043500000044021000390000022d03000041000000000032043500000024021000390000002103000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000001000416000000000101004b000003ea0000c13d000003dc0000013d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010e01000039000000000101041a0000ffff0110018f000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f0000010e01000039000000000201041a0000020e02200197000000000021041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010c01000039000000000101041a0000008001100270000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000401000039000000000101041a0000020301100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000004010000390000000101100367000000000101043b000600000001001d000002030110009c000003ea0000213d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f0000000101000039000000000201041a000001d9022001970000000603000029000000000232019f000000000021041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000501000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000600310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f000000400100043d075a06500000040f00000001010003670000002402100370000000000202043b00000080022002100000000401100370000000000101043b0000020101100197000000000121019f0000000702000039000000000012041b00000044010000390000000101100367000000000101043b0000000602000039000000000012041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000101000039000000000101041a0000020301100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d000000400100043d000000000200041a0000000000210435000001d802000041000001d80310009c0000000001028019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d000000400100043d0000000002000411000080010220008c000004100000c13d000002040210009c0000044d0000213d0000004002100039000000400020043f0000000702000039000000000202041a00000020031000390000008004200270000000000043043500000201032001970000000000310435000000400100043d000002040410009c0000044d0000213d0000004004100039000000400040043f0000000904000039000000000404041a00000020051000390000008006400270000000000065043500000201044001970000000000410435000002010120009c000004410000213d000000400100043d00000064021000390000020b03000041000000000032043500000044021000390000020c03000041000000000032043500000024021000390000002f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ec0000613d00000000010000190000075c0001043000000004010000390000000101100367000000000101043b00000000001004350000000801000039000000200010043f00000040020000390000000001000019075a06250000040f000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000000400100043d00000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c0001043000000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000020e022001970000000103300039000000000223019f000000000021041b00000000010000190000075b0001042e000002050240009c000004470000413d000000000231004b000004470000413d000001012110011a0000000b01200039000000000501041a0000047a0000013d00000044025000390000020803000041000000000032043500000024025000390000001f03000039000000000032043500000209020000410000000000250435000000040250003900000020030000390000000000320435000001d802000041000001d80350009c0000000001020019000000000105401900000040011002100000020a011001c70000075c000104300000008001300210000000000114019f0000000302000039000000000012041c00000000010000190000075b0001042e000000400200043d000000200300003900000000033204360000000000130435000002040120009c000004640000a13d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400100043d00000044021000390000022f0300004100000000003204350000020902000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000004001200039000000400010043f000001d801000041000001d80430009c000000000301801900000040033002100000000002020433000001d80420009c00000000020180190000006002200210000000000232019f0000000003000414000001d80430009c0000000001034019000000c001100210000000000121019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000501043b000000400100043d0000000000510435000001d802000041000001d80310009c0000000001028019000000400110021000000200011001c70000075b0001042e0000000703000039000000000303041a00000201033001970000000504000029000000000334004b000004a30000813d000000400100043d000000a4021000390000021203000041000000000032043500000084021000390000021303000041000000000032043500000064021000390000021403000041000000000032043500000044021000390000021503000041000000000032043500000024021000390000006103000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c0000000001028019000000400110021000000216011001c70000075c000104300000000303000029000000000303004b0000025a0000c13d000000400100043d00000064021000390000021003000041000000000032043500000044021000390000021103000041000000000032043500000024021000390000003f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000604000029000000000443004b000004c40000613d000002010230009c000004ed0000c13d000001140000013d0000000604000029000000000443004b000004ed0000c13d000000000102004b000005370000c13d00000005010000290000000202000029000000000112004b000005750000c13d0000000601000029000000010110008a000002010210009c000001140000213d0000020101100197000001012110011a0000000b01200039000000000101041a0000000402000029000000000112004b000005cf0000c13d0000000301000029000000000101004b000005c90000613d000000400100043d00000064021000390000022403000041000000000032043500000044021000390000022503000041000000000032043500000024021000390000003c03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c0001043000000001023000390000000604000029000000000242004b000005640000c13d000000010230008a000002010420009c000001140000213d0000020102200197000001014220011a0000000b02400039000000000402041a0000000a02000039000000000502041a000000400200043d0000008006200039000000000056043500000060052000390000000000450435000000400420003900000002050000290000000000540435000000200420003900000000003404350000000000120435000002170120009c0000044d0000213d000000a001200039000000400010043f000001d801000041000001d80340009c0000000003010019000000000304401900000040033002100000000002020433000001d80420009c00000000020180190000006002200210000000000232019f0000000003000414000001d80430009c0000000001034019000000c001100210000000000121019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b0000000402000029000000000112004b000005e40000c13d000000400100043d00000005020000290000000203000029000000000232004b0000060e0000a13d000002040210009c0000044d0000213d0000004002100039000000400020043f000000200210003900000006030000290000000000320435000000050200002900000000002104350000008001300210000000000112019f0000000102000029000000000012041b000000010130008a000002010210009c000001140000213d000005c20000013d000000400100043d00000064021000390000021e03000041000000000032043500000044021000390000021f03000041000000000032043500000024021000390000003503000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000601000029000000000101004b0000058a0000c13d000000400100043d00000064021000390000022a03000041000000000032043500000044021000390000022b03000041000000000032043500000024021000390000002c03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400200043d000600000002001d000002090100004100000000001204350000000401200039075a06980000040f00000006040000290000000001410049000001d802000041000001d80310009c0000000001028019000001d80340009c000000000204401900000040022002100000006001100210000000000121019f0000075c00010430000000400100043d00000064021000390000022003000041000000000032043500000044021000390000022103000041000000000032043500000024021000390000002f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d0000000402000039000000000221043600000006030000290000020103300041000200000003001d000000e0033002100000000000320435000002040310009c0000044d0000213d0000004003100039000000400030043f000001d803000041000001d80420009c000000000203801900000040022002100000000001010433000001d80410009c00000000010380190000006001100210000000000121019f0000000002000414000001d80420009c0000000002038019000000c002200210000000000112019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b0000000402000029000000000121004b000005f90000c13d00000002010000290000020101100197000001012110011a0000000b012000390000000402000029000000000021041b000000400100043d000002040210009c0000044d0000213d0000004002100039000000400020043f000000200210003900000006030000290000000000320435000000050200002900000000002104350000008001300210000000000112019f0000000102000029000000000012041b000000010130008a0000020101100197000001012110011a0000000b012000390000000402000029000000000021041b0000000a01000039000000000001041b000000060100002900000003020000290000000503000029075a06aa0000040f00000000010000190000075b0001042e000000400100043d00000064021000390000022203000041000000000032043500000044021000390000022303000041000000000032043500000024021000390000003303000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d00000064021000390000021803000041000000000032043500000044021000390000021903000041000000000032043500000024021000390000002603000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d00000064021000390000022803000041000000000032043500000044021000390000022903000041000000000032043500000024021000390000002703000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c0001043000000084021000390000021a03000041000000000032043500000064021000390000021b03000041000000000032043500000044021000390000021c03000041000000000032043500000024021000390000005d03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000021d011001c70000075c00010430000001d803000041000001d80410009c00000000010380190000004001100210000001d80420009c00000000020380190000006002200210000000000112019f0000000002000414000001d80420009c0000000002038019000000c002200210000000000112019f00000206011001c70000801002000039075a07550000040f0000000102200190000006390000613d000000000101043b000000000001042d00000000010000190000075c00010430000000000101004b0000063e0000613d000000000001042d000000400100043d00000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000022e0210009c000006550000813d0000004001100039000000400010043f000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400100043d0000022e0210009c000006610000813d0000004002100039000000400020043f000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400300043d0000022e0130009c000006740000813d0000004001300039000000400010043f0000000701000039000000000201041a00000020043000390000008001200270000000000014043500000201022001970000000000230435000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400300043d0000022e0130009c000006870000813d0000004001300039000000400010043f0000000901000039000000000201041a00000020043000390000008001200270000000000014043500000201022001970000000000230435000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c000104300000020101100197000002010210009c000006920000613d0000000101100039000000000001042d000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c0001043000000040021000390000023003000041000000000032043500000020021000390000001b030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0000000021010434000002010110019700000000020204330000008002200210000000000112019f0000000702000039000000000012041b000000000001042d0000010d04000039000000000504041a000002050550009c000006c20000813d000000400500043d0000022e0650009c000006eb0000813d0000004006500039000000400060043f0000010c08000039000000000708041a0000020106700197000000000665043600000080077002700000000000760435000000000808041a000002010880009c000006bf0000213d00000000080504330000020108800198000006c50000613d0000020102200198000006d10000c13d000006ea0000013d0000000901000039000000000101041a000006e80000013d0000000707000039000000000707041a00000080077002700000000000760435000000000804041a0000023108800197000000000778019f000000000074041b0000020102200198000006f70000613d0000000007060433000000010220008a00000201077001970000000002270019000002050720009c000006f10000813d000000000026043500000201033001970000000000350435000002010210019700000000070604330000020108700197000000000828004b000006e50000413d0000008001100210000000000304041a0000020103300197000000000113019f000000000014041b00000000002604350000000003050433000000000702001900000201013001970000008002700210000000000112019f0000010c02000039000000000012041b000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c00010430000000400100043d00000064021000390000023203000041000000000032043500000044021000390000023303000041000000000032043500000024021000390000002803000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000000101004b0000070f0000613d000000000001042d000000400100043d00000064021000390000023403000041000000000032043500000044021000390000023503000041000000000032043500000024021000390000002803000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000002010110019700000000001004350000000801000039000000200010043f000001d8010000410000000002000414000001d80320009c0000000001024019000000c00110021000000207011001c70000801002000039075a07550000040f0000000102200190000007340000613d000000000101043b000000000001042d00000000010000190000075c0001043000000201011001970000000902000039000000000202041a0000020102200197000000000121004b0000073d0000a13d000000000001042d000000400100043d00000084021000390000023603000041000000000032043500000064021000390000023703000041000000000032043500000044021000390000023803000041000000000032043500000024021000390000005303000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000021d011001c70000075c0001043000000758002104230000000102000039000000000001042d0000000002000019000000000001042d0000075a000004320000075b0001042e0000075c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e1bc9bf0400000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000085df51fc00000000000000000000000000000000000000000000000000000000a6ae0aab00000000000000000000000000000000000000000000000000000000d0f2c66200000000000000000000000000000000000000000000000000000000ddeaa8e500000000000000000000000000000000000000000000000000000000ddeaa8e600000000000000000000000000000000000000000000000000000000fe173b9700000000000000000000000000000000000000000000000000000000d0f2c66300000000000000000000000000000000000000000000000000000000d4a4ca0d00000000000000000000000000000000000000000000000000000000a6ae0aac00000000000000000000000000000000000000000000000000000000a851ae7800000000000000000000000000000000000000000000000000000000bf1fe42000000000000000000000000000000000000000000000000000000000938b5f3100000000000000000000000000000000000000000000000000000000938b5f32000000000000000000000000000000000000000000000000000000009a8a059200000000000000000000000000000000000000000000000000000000a0803ef70000000000000000000000000000000000000000000000000000000085df51fd000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000008e8acf87000000000000000000000000000000000000000000000000000000003635f3e5000000000000000000000000000000000000000000000000000000007877a796000000000000000000000000000000000000000000000000000000007c9bd1f2000000000000000000000000000000000000000000000000000000007c9bd1f30000000000000000000000000000000000000000000000000000000080b41246000000000000000000000000000000000000000000000000000000007877a79700000000000000000000000000000000000000000000000000000000796b89b9000000000000000000000000000000000000000000000000000000003635f3e60000000000000000000000000000000000000000000000000000000042cbb15c000000000000000000000000000000000000000000000000000000006ef25c3a0000000000000000000000000000000000000000000000000000000019cae4610000000000000000000000000000000000000000000000000000000019cae4620000000000000000000000000000000000000000000000000000000029f172ad0000000000000000000000000000000000000000000000000000000030e5ccbd0000000000000000000000000000000000000000000000000000000002fa57790000000000000000000000000000000000000000000000000000000006bed0360000000000000000000000000000000000000000000000000000000006e7517b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000040000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf00000000000000000000000000000001000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000004000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000002067726561746572207468616e203000000000000000000000000000000000005468652063757272656e74206261746368206e756d626572206d7573742062650000000000000000000000000000000000000084000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffffff9f656174656420617420746865207374617274206f6620746865206261746368005468657265206d7573742062652061207669727475616c20626c6f636b206372680000000000000000000000000000000000000000000000000000000000000068652074696d657374616d70206f66207468652063757272656e74206261746373742062652067726561746572207468616e206f7220657175616c20746f20745468652074696d657374616d70206f6620746865204c3220626c6f636b206d7500000000000000000000000000000000000000c4000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f6f727265637400000000000000000000000000000000000000000000000000005468652063757272656e74204c3220626c6f636b206861736820697320696e6374616d70206f66207468652070726576696f7573204c3220626c6f636b0000006b206d7573742062652067726561746572207468616e207468652074696d65735468652074696d657374616d70206f6620746865206e6577204c3220626c6f6300000000000000000000000000000000000000a40000000000000000000000006f6d207468652070726576696f7573206261746368000000000000000000000043616e206e6f74207265757365204c3220626c6f636b206e756d626572206672636b206d7573742062652073616d6500000000000000000000000000000000005468652074696d657374616d70206f66207468652073616d65204c3220626c6f20626c6f636b206d7573742062652073616d65000000000000000000000000005468652070726576696f75732068617368206f66207468652073616d65204c3220746865206d6964646c65206f6620746865206d696e69626c6f636b0000000043616e206e6f7420637265617465207669727475616c20626c6f636b7320696e4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000636f7272656374000000000000000000000000000000000000000000000000005468652070726576696f7573204c3220626c6f636b206861736820697320696e6420746f206265207a65726f00000000000000000000000000000000000000004c3220626c6f636b206e756d626572206973206e657665722065787065637465740000000000000000000000000000000000000000000000000000000000000055706772616465207472616e73616374696f6e206d7573742062652066697273000000000000000000000000000000000000000000000000ffffffffffffffc054696d657374616d70732073686f756c6420626520696e6372656d656e74616c496e76616c6964206e6577204c3220626c6f636b206e756d6265720000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000616c20626c6f636b00000000000000000000000000000000000000000000000043616e277420696e697469616c697a652074686520666972737420766972747520636f72726563740000000000000000000000000000000000000000000000005468652070726f766964656420626c6f636b206e756d626572206973206e6f74207468652070726576696f757320626c6f636b0000000000000000000000000062652067726561746572207468616e207468652074696d657374616d70206f665468652074696d657374616d70206f6620746865206261746368206d7573742000000000000000000000000000000000000000000000000000000000000000000be0c6cf64037e617675286e231b21587c8dedaf2b373135e6ddfb43a22f29d2", + "bytecode": "0x0001000000000002000600000000000200000000000103550000008004000039000000400040043f0000000003010019000000600330027000000118033001970000000102200190000000210000c13d000000040230008c000003960000413d000000000201043b000000e0022002700000011c0520009c000000340000213d0000012e0520009c000000430000a13d0000012f0420009c0000007b0000a13d000001300420009c000000c80000213d000001330120009c000001100000613d000001340120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000010c01000039000000000101041a0000014001100197000001f10000013d0000000001000416000000000101004b000003960000c13d00000118010000410000000302000039000000000012041b0000000401000039000000000201041a000001190220019700008001022001bf000000000021041b0000011a010000410000000502000039000000000012041b0000002001000039000001000010044300000120000004430000011b010000410000045a0001042e0000011d0420009c000000630000a13d0000011e0420009c000000860000a13d0000011f0420009c000000f80000213d000001220120009c0000003e0000613d000001230120009c000003960000c13d0000000001000416000000000101004b000003960000c13d045904180000040f0000006f0000013d000001380520009c0000009c0000213d0000013c0520009c000001150000613d0000013d0520009c000001570000613d0000013e0220009c000003960000c13d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000002000411000080010220008c000002160000c13d0000000a02000039000600000002001d000000000202041a000000a00020043f0000000401100370000000000101043b000000c00010043f0000004002000039000000800020043f000000e001000039000000400010043f000000a0010000390459043e0000040f0000000602000029000001e30000013d000001270420009c000000b30000213d0000012b0420009c000001010000613d0000012c0120009c0000018f0000613d0000012d0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0459042b0000040f0000014002200197000000400300043d00000020043000390000000000240435000001400110019700000000001304350000011801000041000001180230009c0000000003018019000000400130021000000141011001c70000045a0001042e000001350120009c000001960000613d000001360120009c000001a20000613d000001370120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000601000039000001c70000013d000001240420009c000001a90000613d000001250420009c000001ae0000613d000001260120009c000003960000c13d0000000001000416000000000101004b000003960000c13d000000040130008a000000200110008c000003960000413d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f00000004010000390000000001100367000000000101043b0000000202000039000001e30000013d000001390120009c000001c30000613d0000013a0120009c000001c90000613d0000013b0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c000002160000c13d0000010e01000039000000000201041a0000ffff0320018f0000ffff0430008c000002200000c13d0000017b0100004100000000001004350000001101000039000000040010043f0000017c010000410000045b00010430000001280120009c000001e60000613d000001290120009c000001ed0000613d0000012a0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d045904180000040f00000140022001970000008001100210000000000121019f000000400200043d00000000001204350000011801000041000001180320009c0000000002018019000000400120021000000143011001c70000045a0001042e000001310420009c000001f40000613d000001320220009c000003960000c13d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000101043b0000010c02000039000000000202041a000000c003000039000000400030043f00000080062002700000010d02000039000000000302041a0000014005300197000000800050043f0000008002300270000000a00020043f000000000416004b0000000004000019000002440000a13d0000000004160049000001010440008c0000000004000019000002440000813d000000000451004b000002260000813d00000000001004350000000801000039000000200010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000146011001c70000801002000039045904540000040f0000000102200190000003960000613d000000000101043b000000000401041a000002440000013d000001200420009c000001010000613d000001210120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000201000039000001c70000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000101043b00000000001004350000000801000039000000200010043f000000400200003900000000010000190459043e0000040f000001c70000013d0000000001000416000000000101004b000003960000c13d0000000301000039000001c70000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000800220008c000003960000413d0000000402100370000000000302043b0000002402100370000000000402043b000001400240009c000003960000213d0000004401100370000000000501043b000001400150009c000003960000213d0000000001000411000080010110008c000002160000c13d000000c001000039000000400010043f0000000706000039000000000106041a0000014002100197000000800020043f0000008001100270000000a00010043f000000000224004b0000024c0000a13d000001400210009c000000ad0000613d0000000102100039000000000252004b000002550000c13d000300000006001d000400000005001d000600000003001d0000000902000039000000000202041a0000014002200197000500000004001d000000000224004b000002610000a13d00000000001004350000000801000039000000200010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000146011001c70000801002000039045904540000040f00000001022001900000000602000029000003960000613d000000000101043b000000000021041b000000400100043d0000015e0210009c000003110000a13d0000017b0100004100000000001004350000004101000039000000b00000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000a00220008c000003960000413d0000000402100370000000000602043b000001400260009c000003960000213d0000002402100370000000000502043b000001400250009c000003960000213d0000004402100370000000000702043b0000006402100370000000000202043b000000000302004b0000000003000019000000010300c039000000000332004b000003960000c13d0000008401100370000000000301043b000001400130009c000003960000213d0000000001000411000080010110008c000002160000c13d000000000102004b000600000003001d000400000007001d0000027e0000613d0000000701000039000000000101041a00000140011001970000000003050019000000000115004b0000026f0000813d0000014701000041000000800010043f0000002001000039000000840010043f0000006101000039000000a40010043f0000014f01000041000000c40010043f0000015001000041000000e40010043f0000015101000041000001040010043f0000015201000041000001240010043f00000153010000410000045b000104300000000001000416000000000101004b000003960000c13d0000010e01000039000000000101041a0000ffff0110018f000001f10000013d0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f0000010e01000039000000000201041a0000014b02200197000002230000013d0000000001000416000000000101004b000003960000c13d0000010c01000039000000000101041a0000008001100270000001f10000013d0000000001000416000000000101004b000003960000c13d0000000401000039000001ea0000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000201043b000001420120009c000003960000213d0000000001000411000080010110008c00000000010000190000000101006039000600000002001d045903f80000040f0000000101000039000000000201041a000001190220019700000006022001af000002230000013d0000000001000416000000000101004b000003960000c13d0000000501000039000000000101041a000001f10000013d0000000001000416000000000101004b000003960000c13d000000040130008a000000600110008c000003960000413d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f000000400100043d0459040d0000040f00000000010003670000002402100370000000000202043b00000080022002100000000403100370000000000303043b0000014003300197000000000223019f0000000703000039000000000023041b0000004401100370000000000101043b0000000602000039000000000012041b00000000010000190000045a0001042e0000000001000416000000000101004b000003960000c13d0000000101000039000000000101041a0000014201100197000001f10000013d0000000001000416000000000101004b000003960000c13d000000000100041a000000800010043f0000013f010000410000045a0001042e0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c000002160000c13d0000000701000039000000000301041a0000014001300197000000800010043f0000008002300270000000a00020043f0000010002000039000000400020043f0000000902000039000000000402041a0000014002400197000000c00020043f0000008004400270000000e00040043f000001400330009c0000022e0000213d0000014701000041000001000010043f0000002001000039000001040010043f0000002f01000039000001240010043f0000014801000041000001440010043f0000014901000041000001640010043f0000014a010000410000045b000104300000014701000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000017201000041000000c40010043f00000173010000410000045b000104300000014b022001970000000103300039000000000223019f000000000021041b00000000010000190000045a0001042e000001440330009c000002340000413d000000000221004b000002340000413d000001012110011a0000000b01200039000000000401041a000002440000013d0000008001100210000000000112019f0000000302000039000000000012041c00000000010000190000045a0001042e000000e00010043f0000002001000039000000c00010043f0000010001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000145011001c70000801002000039045904540000040f0000000102200190000003960000613d000000000401043b000000400100043d00000000004104350000011802000041000001180310009c0000000001028019000000400110021000000143011001c70000045a0001042e0000014701000041000000c00010043f0000002001000039000000c40010043f000000e40010043f0000017401000041000001040010043f00000155010000410000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000002801000039000000e40010043f0000017501000041000001040010043f0000017601000041000001240010043f00000161010000410000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000005301000039000000e40010043f0000017701000041000001040010043f0000017801000041000001240010043f0000017901000041000001440010043f0000017a010000410000045b00010430000000060100006b00000000050300190000027e0000c13d0000014701000041000000800010043f0000002001000039000000840010043f0000003f01000039000000a40010043f0000014c01000041000000c40010043f0000014d01000041000000e40010043f0000014e010000410000045b00010430000200000005001d000000c001000039000000400010043f0000000901000039000100000001001d000000000301041a0000014005300197000000800050043f0000008001300270000000a00010043f000001400330009c000500000006001d000300000005001d0000029a0000213d000000000305004b0000029f0000c13d000000000102004b000002fd0000c13d0000014701000041000000c00010043f0000002001000039000000c40010043f0000002101000039000000e40010043f0000017001000041000001040010043f00000171010000410000025e0000013d000000000361004b000002a10000613d000001400210009c000000ad0000613d000002bc0000013d000000050310006c000002bc0000c13d000000000102004b000002f30000c13d0000000302000029000000020120006c000003270000c13d0000000501000029000000010110008a000001400210009c000000ad0000213d0000014001100197000001012110011a0000000b01200039000000000101041a000000040110006b000003980000c13d000000060100006b000003640000613d0000014701000041000000c00010043f0000002001000039000000c40010043f0000003c01000039000000e40010043f0000016601000041000001040010043f00000167010000410000025e0000013d0000000102100039000000050220006c000003090000c13d000000010210008a000001400320009c000000ad0000213d0000000a03000039000000000303041a0000014002200197000001015220011a0000000b02500039000000000202041a000000e00010043f0000000301000029000001000010043f000001200020043f000001400030043f000000c00040043f0000016001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000156011001c70000801002000039045904540000040f00000001022001900000000403000029000003960000613d000000400200043d000000000101043b000000000113004b000003a20000c13d0000000303000029000000020130006b000003c50000a13d0000015e0120009c000001530000213d0000004001200039000000400010043f000000200120003900000005040000290000000000410435000000020300002900000000003204350000008001400210000000000113019f0000000102000029000000000012041b000000010140008a000001400210009c000000ad0000213d0000035d0000013d0000014701000041000000c00010043f0000002001000039000000c40010043f0000003501000039000000e40010043f0000015f01000041000001040010043f00000160010000410000025e0000013d000000050100006b000003310000c13d0000014701000041000000c00010043f0000002001000039000000c40010043f0000002c01000039000000e40010043f0000016e01000041000001040010043f0000016f010000410000025e0000013d0000014701000041000000c00010043f0000002001000039000000c40010043f0000001b01000039000000e40010043f0000015401000041000002520000013d0000004002100039000000400020043f0000002002100039000000040300002900000000003204350000000502000029000000000021043500000080013002100000014002200197000000000112019f0000000302000029000000000012041b00000064010000390000000001100367000000000101043b0000000602000039000000000012041b00000004010000390000000602000029000000000021041c00000000010000190000045a0001042e0000014701000041000000c00010043f0000002001000039000000c40010043f0000002f01000039000000e40010043f0000016201000041000001040010043f00000163010000410000025e0000013d00000005010000290000014001100041000300000001001d000000e001100210000000e00010043f0000000401000039000000c00010043f0000010001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000168011001c70000801002000039045904540000040f00000001022001900000000403000029000003960000613d000000400200043d000000000101043b000000000131004b000003ab0000c13d00000003010000290000014001100197000001013110011a0000000b013000390000000403000029000000000031041b0000015e0120009c000001530000213d0000004001200039000000400010043f000000200120003900000005040000290000000000410435000000020300002900000000003204350000008001400210000000000113019f0000000102000029000000000012041b000000010140008a0000014001100197000001012110011a0000000b012000390000000402000029000000000021041b0000000a01000039000000000001041b0000010d01000039000000000201041a000001440320009c000003bf0000813d000000400300043d0000015e0430009c000001530000213d0000004004300039000000400040043f0000010c04000039000000000604041a0000014004600197000000000443043600000080056002700000000000540435000001400660009c000003dc0000213d00000000060304330000014006600198000003dc0000c13d0000000705000039000000000505041a000000800550027000000000005404350000016b02200197000000000225019f000000000021041b000000060600006b000003df0000c13d000000400100043d00000064021000390000016c03000041000000000032043500000044021000390000016d030000410000000000320435000000240210003900000028030000390000000000320435000001470200004100000000002104350000000402100039000000200300003900000000003204350000011802000041000001180310009c0000000001028019000000400110021000000159011001c70000045b0001043000000000010000190000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000003301000039000000e40010043f0000016401000041000001040010043f00000165010000410000025e0000013d00000064012000390000015703000041000000000031043500000044012000390000015803000041000000000031043500000024012000390000002603000039000003b30000013d00000064012000390000016903000041000000000031043500000044012000390000016a030000410000000000310435000000240120003900000027030000390000000000310435000001470100004100000000001204350000000401200039000000200300003900000000003104350000011801000041000001180320009c0000000002018019000000400120021000000159011001c70000045b000104300000000101000029000000000101041a0000010c02000039000000000012041b00000000010000190000045a0001042e00000084012000390000015a03000041000000000031043500000064012000390000015b03000041000000000031043500000044012000390000015c03000041000000000031043500000024012000390000005d030000390000000000310435000001470100004100000000001204350000000401200039000000200300003900000000003104350000011801000041000001180320009c000000000201801900000040012002100000015d011001c70000045b00010430000000060600006b000003e10000c13d000003c30000013d000000060600002900060001006000920000000605500029000001400650009c000000ad0000213d00000000005404350000000205000029000000000053043500000000050404330000014006500197000000050660006c000003ed0000813d0000008005500210000003f40000013d00000005060000290000008005600210000000000252019f000000000021041b00000000006404350000000001030433000200000001001d00000002010000290000014001100197000000000151019f000003c10000013d000000000101004b000003fb0000613d000000000001042d000000400100043d00000044021000390000017203000041000000000032043500000024021000390000001f030000390000000000320435000001470200004100000000002104350000000402100039000000200300003900000000003204350000011802000041000001180310009c000000000102801900000040011002100000017d011001c70000045b000104300000017e0210009c000004120000813d0000004001100039000000400010043f000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b00010430000000400300043d0000017e0130009c000004250000813d0000004001300039000000400010043f0000000701000039000000000201041a00000020043000390000008001200270000000000014043500000140022001970000000000230435000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b00010430000000400300043d0000017e0130009c000004380000813d0000004001300039000000400010043f0000000901000039000000000201041a00000020043000390000008001200270000000000014043500000140022001970000000000230435000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b000104300000011803000041000001180410009c00000000010380190000004001100210000001180420009c00000000020380190000006002200210000000000112019f0000000002000414000001180420009c0000000002038019000000c002200210000000000112019f0000017f011001c70000801002000039045904540000040f0000000102200190000004520000613d000000000101043b000000000001042d00000000010000190000045b0001043000000457002104230000000102000039000000000001042d0000000002000019000000000001042d00000459000004320000045a0001042e0000045b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e1bc9bf0400000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000085df51fc00000000000000000000000000000000000000000000000000000000a6ae0aab00000000000000000000000000000000000000000000000000000000d0f2c66200000000000000000000000000000000000000000000000000000000ddeaa8e500000000000000000000000000000000000000000000000000000000ddeaa8e600000000000000000000000000000000000000000000000000000000fe173b9700000000000000000000000000000000000000000000000000000000d0f2c66300000000000000000000000000000000000000000000000000000000d4a4ca0d00000000000000000000000000000000000000000000000000000000a6ae0aac00000000000000000000000000000000000000000000000000000000a851ae7800000000000000000000000000000000000000000000000000000000bf1fe42000000000000000000000000000000000000000000000000000000000938b5f3100000000000000000000000000000000000000000000000000000000938b5f32000000000000000000000000000000000000000000000000000000009a8a059200000000000000000000000000000000000000000000000000000000a0803ef70000000000000000000000000000000000000000000000000000000085df51fd000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000008e8acf87000000000000000000000000000000000000000000000000000000003635f3e5000000000000000000000000000000000000000000000000000000007877a796000000000000000000000000000000000000000000000000000000007c9bd1f2000000000000000000000000000000000000000000000000000000007c9bd1f30000000000000000000000000000000000000000000000000000000080b41246000000000000000000000000000000000000000000000000000000007877a79700000000000000000000000000000000000000000000000000000000796b89b9000000000000000000000000000000000000000000000000000000003635f3e60000000000000000000000000000000000000000000000000000000042cbb15c000000000000000000000000000000000000000000000000000000006ef25c3a0000000000000000000000000000000000000000000000000000000019cae4610000000000000000000000000000000000000000000000000000000019cae4620000000000000000000000000000000000000000000000000000000029f172ad0000000000000000000000000000000000000000000000000000000030e5ccbd0000000000000000000000000000000000000000000000000000000002fa57790000000000000000000000000000000000000000000000000000000006bed0360000000000000000000000000000000000000000000000000000000006e7517b000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000040000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000200000000000000000000000000000000000020000000e00000000000000000020000000000000000000000000000000000004000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000005468652063757272656e74206261746368206e756d626572206d7573742062652067726561746572207468616e203000000000000000000000000000000000000000000000000000000000000000000000000084000001000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00005468657265206d7573742062652061207669727475616c20626c6f636b206372656174656420617420746865207374617274206f66207468652062617463680000000000000000000000000000000000000000840000008000000000000000005468652074696d657374616d70206f6620746865204c3220626c6f636b206d7573742062652067726561746572207468616e206f7220657175616c20746f207468652074696d657374616d70206f66207468652063757272656e742062617463680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4000000800000000000000000496e76616c6964206e6577204c3220626c6f636b206e756d62657200000000000000000000000000000000000000000000000064000000c000000000000000000200000000000000000000000000000000000080000000e000000000000000006f727265637400000000000000000000000000000000000000000000000000005468652063757272656e74204c3220626c6f636b206861736820697320696e63000000000000000000000000000000000000008400000000000000000000000074616d70206f66207468652070726576696f7573204c3220626c6f636b0000006b206d7573742062652067726561746572207468616e207468652074696d65735468652074696d657374616d70206f6620746865206e6577204c3220626c6f6300000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf43616e206e6f74207265757365204c3220626c6f636b206e756d6265722066726f6d207468652070726576696f757320626174636800000000000000000000000000000000000000000000000000000000000084000000c000000000000000005468652074696d657374616d70206f66207468652073616d65204c3220626c6f636b206d7573742062652073616d6500000000000000000000000000000000005468652070726576696f75732068617368206f66207468652073616d65204c3220626c6f636b206d7573742062652073616d650000000000000000000000000043616e206e6f7420637265617465207669727475616c20626c6f636b7320696e20746865206d6964646c65206f6620746865206d696e69626c6f636b000000000200000000000000000000000000000000000004000000e00000000000000000636f7272656374000000000000000000000000000000000000000000000000005468652070726576696f7573204c3220626c6f636b206861736820697320696effffffffffffffffffffffffffffffff00000000000000000000000000000000616c20626c6f636b00000000000000000000000000000000000000000000000043616e277420696e697469616c697a65207468652066697273742076697274754c3220626c6f636b206e756d626572206973206e6576657220657870656374656420746f206265207a65726f000000000000000000000000000000000000000055706772616465207472616e73616374696f6e206d7573742062652066697273740000000000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f6164657200000000000000000000000000000000000000006400000080000000000000000054696d657374616d70732073686f756c6420626520696e6372656d656e74616c5468652070726f766964656420626c6f636b206e756d626572206973206e6f7420636f72726563740000000000000000000000000000000000000000000000005468652074696d657374616d70206f6620746865206261746368206d7573742062652067726561746572207468616e207468652074696d657374616d70206f66207468652070726576696f757320626c6f636b0000000000000000000000000000000000000000000000000000000000000000a4000000c000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc0020000000000000000000000000000000000000000000000000000000000000062ab76af9f7a5ed8b3b2b2b21425656a7fcc2662625674f9d12b72e6c688b431", + "deployedBytecode": "0x0001000000000002000600000000000200000000000103550000008004000039000000400040043f0000000003010019000000600330027000000118033001970000000102200190000000210000c13d000000040230008c000003960000413d000000000201043b000000e0022002700000011c0520009c000000340000213d0000012e0520009c000000430000a13d0000012f0420009c0000007b0000a13d000001300420009c000000c80000213d000001330120009c000001100000613d000001340120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000010c01000039000000000101041a0000014001100197000001f10000013d0000000001000416000000000101004b000003960000c13d00000118010000410000000302000039000000000012041b0000000401000039000000000201041a000001190220019700008001022001bf000000000021041b0000011a010000410000000502000039000000000012041b0000002001000039000001000010044300000120000004430000011b010000410000045a0001042e0000011d0420009c000000630000a13d0000011e0420009c000000860000a13d0000011f0420009c000000f80000213d000001220120009c0000003e0000613d000001230120009c000003960000c13d0000000001000416000000000101004b000003960000c13d045904180000040f0000006f0000013d000001380520009c0000009c0000213d0000013c0520009c000001150000613d0000013d0520009c000001570000613d0000013e0220009c000003960000c13d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000002000411000080010220008c000002160000c13d0000000a02000039000600000002001d000000000202041a000000a00020043f0000000401100370000000000101043b000000c00010043f0000004002000039000000800020043f000000e001000039000000400010043f000000a0010000390459043e0000040f0000000602000029000001e30000013d000001270420009c000000b30000213d0000012b0420009c000001010000613d0000012c0120009c0000018f0000613d0000012d0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0459042b0000040f0000014002200197000000400300043d00000020043000390000000000240435000001400110019700000000001304350000011801000041000001180230009c0000000003018019000000400130021000000141011001c70000045a0001042e000001350120009c000001960000613d000001360120009c000001a20000613d000001370120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000601000039000001c70000013d000001240420009c000001a90000613d000001250420009c000001ae0000613d000001260120009c000003960000c13d0000000001000416000000000101004b000003960000c13d000000040130008a000000200110008c000003960000413d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f00000004010000390000000001100367000000000101043b0000000202000039000001e30000013d000001390120009c000001c30000613d0000013a0120009c000001c90000613d0000013b0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c000002160000c13d0000010e01000039000000000201041a0000ffff0320018f0000ffff0430008c000002200000c13d0000017b0100004100000000001004350000001101000039000000040010043f0000017c010000410000045b00010430000001280120009c000001e60000613d000001290120009c000001ed0000613d0000012a0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d045904180000040f00000140022001970000008001100210000000000121019f000000400200043d00000000001204350000011801000041000001180320009c0000000002018019000000400120021000000143011001c70000045a0001042e000001310420009c000001f40000613d000001320220009c000003960000c13d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000101043b0000010c02000039000000000202041a000000c003000039000000400030043f00000080062002700000010d02000039000000000302041a0000014005300197000000800050043f0000008002300270000000a00020043f000000000416004b0000000004000019000002440000a13d0000000004160049000001010440008c0000000004000019000002440000813d000000000451004b000002260000813d00000000001004350000000801000039000000200010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000146011001c70000801002000039045904540000040f0000000102200190000003960000613d000000000101043b000000000401041a000002440000013d000001200420009c000001010000613d000001210120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000201000039000001c70000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000101043b00000000001004350000000801000039000000200010043f000000400200003900000000010000190459043e0000040f000001c70000013d0000000001000416000000000101004b000003960000c13d0000000301000039000001c70000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000800220008c000003960000413d0000000402100370000000000302043b0000002402100370000000000402043b000001400240009c000003960000213d0000004401100370000000000501043b000001400150009c000003960000213d0000000001000411000080010110008c000002160000c13d000000c001000039000000400010043f0000000706000039000000000106041a0000014002100197000000800020043f0000008001100270000000a00010043f000000000224004b0000024c0000a13d000001400210009c000000ad0000613d0000000102100039000000000252004b000002550000c13d000300000006001d000400000005001d000600000003001d0000000902000039000000000202041a0000014002200197000500000004001d000000000224004b000002610000a13d00000000001004350000000801000039000000200010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000146011001c70000801002000039045904540000040f00000001022001900000000602000029000003960000613d000000000101043b000000000021041b000000400100043d0000015e0210009c000003110000a13d0000017b0100004100000000001004350000004101000039000000b00000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000a00220008c000003960000413d0000000402100370000000000602043b000001400260009c000003960000213d0000002402100370000000000502043b000001400250009c000003960000213d0000004402100370000000000702043b0000006402100370000000000202043b000000000302004b0000000003000019000000010300c039000000000332004b000003960000c13d0000008401100370000000000301043b000001400130009c000003960000213d0000000001000411000080010110008c000002160000c13d000000000102004b000600000003001d000400000007001d0000027e0000613d0000000701000039000000000101041a00000140011001970000000003050019000000000115004b0000026f0000813d0000014701000041000000800010043f0000002001000039000000840010043f0000006101000039000000a40010043f0000014f01000041000000c40010043f0000015001000041000000e40010043f0000015101000041000001040010043f0000015201000041000001240010043f00000153010000410000045b000104300000000001000416000000000101004b000003960000c13d0000010e01000039000000000101041a0000ffff0110018f000001f10000013d0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f0000010e01000039000000000201041a0000014b02200197000002230000013d0000000001000416000000000101004b000003960000c13d0000010c01000039000000000101041a0000008001100270000001f10000013d0000000001000416000000000101004b000003960000c13d0000000401000039000001ea0000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000201043b000001420120009c000003960000213d0000000001000411000080010110008c00000000010000190000000101006039000600000002001d045903f80000040f0000000101000039000000000201041a000001190220019700000006022001af000002230000013d0000000001000416000000000101004b000003960000c13d0000000501000039000000000101041a000001f10000013d0000000001000416000000000101004b000003960000c13d000000040130008a000000600110008c000003960000413d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f000000400100043d0459040d0000040f00000000010003670000002402100370000000000202043b00000080022002100000000403100370000000000303043b0000014003300197000000000223019f0000000703000039000000000023041b0000004401100370000000000101043b0000000602000039000000000012041b00000000010000190000045a0001042e0000000001000416000000000101004b000003960000c13d0000000101000039000000000101041a0000014201100197000001f10000013d0000000001000416000000000101004b000003960000c13d000000000100041a000000800010043f0000013f010000410000045a0001042e0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c000002160000c13d0000000701000039000000000301041a0000014001300197000000800010043f0000008002300270000000a00020043f0000010002000039000000400020043f0000000902000039000000000402041a0000014002400197000000c00020043f0000008004400270000000e00040043f000001400330009c0000022e0000213d0000014701000041000001000010043f0000002001000039000001040010043f0000002f01000039000001240010043f0000014801000041000001440010043f0000014901000041000001640010043f0000014a010000410000045b000104300000014701000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000017201000041000000c40010043f00000173010000410000045b000104300000014b022001970000000103300039000000000223019f000000000021041b00000000010000190000045a0001042e000001440330009c000002340000413d000000000221004b000002340000413d000001012110011a0000000b01200039000000000401041a000002440000013d0000008001100210000000000112019f0000000302000039000000000012041c00000000010000190000045a0001042e000000e00010043f0000002001000039000000c00010043f0000010001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000145011001c70000801002000039045904540000040f0000000102200190000003960000613d000000000401043b000000400100043d00000000004104350000011802000041000001180310009c0000000001028019000000400110021000000143011001c70000045a0001042e0000014701000041000000c00010043f0000002001000039000000c40010043f000000e40010043f0000017401000041000001040010043f00000155010000410000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000002801000039000000e40010043f0000017501000041000001040010043f0000017601000041000001240010043f00000161010000410000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000005301000039000000e40010043f0000017701000041000001040010043f0000017801000041000001240010043f0000017901000041000001440010043f0000017a010000410000045b00010430000000060100006b00000000050300190000027e0000c13d0000014701000041000000800010043f0000002001000039000000840010043f0000003f01000039000000a40010043f0000014c01000041000000c40010043f0000014d01000041000000e40010043f0000014e010000410000045b00010430000200000005001d000000c001000039000000400010043f0000000901000039000100000001001d000000000301041a0000014005300197000000800050043f0000008001300270000000a00010043f000001400330009c000500000006001d000300000005001d0000029a0000213d000000000305004b0000029f0000c13d000000000102004b000002fd0000c13d0000014701000041000000c00010043f0000002001000039000000c40010043f0000002101000039000000e40010043f0000017001000041000001040010043f00000171010000410000025e0000013d000000000361004b000002a10000613d000001400210009c000000ad0000613d000002bc0000013d000000050310006c000002bc0000c13d000000000102004b000002f30000c13d0000000302000029000000020120006c000003270000c13d0000000501000029000000010110008a000001400210009c000000ad0000213d0000014001100197000001012110011a0000000b01200039000000000101041a000000040110006b000003980000c13d000000060100006b000003640000613d0000014701000041000000c00010043f0000002001000039000000c40010043f0000003c01000039000000e40010043f0000016601000041000001040010043f00000167010000410000025e0000013d0000000102100039000000050220006c000003090000c13d000000010210008a000001400320009c000000ad0000213d0000000a03000039000000000303041a0000014002200197000001015220011a0000000b02500039000000000202041a000000e00010043f0000000301000029000001000010043f000001200020043f000001400030043f000000c00040043f0000016001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000156011001c70000801002000039045904540000040f00000001022001900000000403000029000003960000613d000000400200043d000000000101043b000000000113004b000003a20000c13d0000000303000029000000020130006b000003c50000a13d0000015e0120009c000001530000213d0000004001200039000000400010043f000000200120003900000005040000290000000000410435000000020300002900000000003204350000008001400210000000000113019f0000000102000029000000000012041b000000010140008a000001400210009c000000ad0000213d0000035d0000013d0000014701000041000000c00010043f0000002001000039000000c40010043f0000003501000039000000e40010043f0000015f01000041000001040010043f00000160010000410000025e0000013d000000050100006b000003310000c13d0000014701000041000000c00010043f0000002001000039000000c40010043f0000002c01000039000000e40010043f0000016e01000041000001040010043f0000016f010000410000025e0000013d0000014701000041000000c00010043f0000002001000039000000c40010043f0000001b01000039000000e40010043f0000015401000041000002520000013d0000004002100039000000400020043f0000002002100039000000040300002900000000003204350000000502000029000000000021043500000080013002100000014002200197000000000112019f0000000302000029000000000012041b00000064010000390000000001100367000000000101043b0000000602000039000000000012041b00000004010000390000000602000029000000000021041c00000000010000190000045a0001042e0000014701000041000000c00010043f0000002001000039000000c40010043f0000002f01000039000000e40010043f0000016201000041000001040010043f00000163010000410000025e0000013d00000005010000290000014001100041000300000001001d000000e001100210000000e00010043f0000000401000039000000c00010043f0000010001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000168011001c70000801002000039045904540000040f00000001022001900000000403000029000003960000613d000000400200043d000000000101043b000000000131004b000003ab0000c13d00000003010000290000014001100197000001013110011a0000000b013000390000000403000029000000000031041b0000015e0120009c000001530000213d0000004001200039000000400010043f000000200120003900000005040000290000000000410435000000020300002900000000003204350000008001400210000000000113019f0000000102000029000000000012041b000000010140008a0000014001100197000001012110011a0000000b012000390000000402000029000000000021041b0000000a01000039000000000001041b0000010d01000039000000000201041a000001440320009c000003bf0000813d000000400300043d0000015e0430009c000001530000213d0000004004300039000000400040043f0000010c04000039000000000604041a0000014004600197000000000443043600000080056002700000000000540435000001400660009c000003dc0000213d00000000060304330000014006600198000003dc0000c13d0000000705000039000000000505041a000000800550027000000000005404350000016b02200197000000000225019f000000000021041b000000060600006b000003df0000c13d000000400100043d00000064021000390000016c03000041000000000032043500000044021000390000016d030000410000000000320435000000240210003900000028030000390000000000320435000001470200004100000000002104350000000402100039000000200300003900000000003204350000011802000041000001180310009c0000000001028019000000400110021000000159011001c70000045b0001043000000000010000190000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000003301000039000000e40010043f0000016401000041000001040010043f00000165010000410000025e0000013d00000064012000390000015703000041000000000031043500000044012000390000015803000041000000000031043500000024012000390000002603000039000003b30000013d00000064012000390000016903000041000000000031043500000044012000390000016a030000410000000000310435000000240120003900000027030000390000000000310435000001470100004100000000001204350000000401200039000000200300003900000000003104350000011801000041000001180320009c0000000002018019000000400120021000000159011001c70000045b000104300000000101000029000000000101041a0000010c02000039000000000012041b00000000010000190000045a0001042e00000084012000390000015a03000041000000000031043500000064012000390000015b03000041000000000031043500000044012000390000015c03000041000000000031043500000024012000390000005d030000390000000000310435000001470100004100000000001204350000000401200039000000200300003900000000003104350000011801000041000001180320009c000000000201801900000040012002100000015d011001c70000045b00010430000000060600006b000003e10000c13d000003c30000013d000000060600002900060001006000920000000605500029000001400650009c000000ad0000213d00000000005404350000000205000029000000000053043500000000050404330000014006500197000000050660006c000003ed0000813d0000008005500210000003f40000013d00000005060000290000008005600210000000000252019f000000000021041b00000000006404350000000001030433000200000001001d00000002010000290000014001100197000000000151019f000003c10000013d000000000101004b000003fb0000613d000000000001042d000000400100043d00000044021000390000017203000041000000000032043500000024021000390000001f030000390000000000320435000001470200004100000000002104350000000402100039000000200300003900000000003204350000011802000041000001180310009c000000000102801900000040011002100000017d011001c70000045b000104300000017e0210009c000004120000813d0000004001100039000000400010043f000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b00010430000000400300043d0000017e0130009c000004250000813d0000004001300039000000400010043f0000000701000039000000000201041a00000020043000390000008001200270000000000014043500000140022001970000000000230435000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b00010430000000400300043d0000017e0130009c000004380000813d0000004001300039000000400010043f0000000901000039000000000201041a00000020043000390000008001200270000000000014043500000140022001970000000000230435000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b000104300000011803000041000001180410009c00000000010380190000004001100210000001180420009c00000000020380190000006002200210000000000112019f0000000002000414000001180420009c0000000002038019000000c002200210000000000112019f0000017f011001c70000801002000039045904540000040f0000000102200190000004520000613d000000000101043b000000000001042d00000000010000190000045b0001043000000457002104230000000102000039000000000001042d0000000002000019000000000001042d00000459000004320000045a0001042e0000045b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e1bc9bf0400000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000085df51fc00000000000000000000000000000000000000000000000000000000a6ae0aab00000000000000000000000000000000000000000000000000000000d0f2c66200000000000000000000000000000000000000000000000000000000ddeaa8e500000000000000000000000000000000000000000000000000000000ddeaa8e600000000000000000000000000000000000000000000000000000000fe173b9700000000000000000000000000000000000000000000000000000000d0f2c66300000000000000000000000000000000000000000000000000000000d4a4ca0d00000000000000000000000000000000000000000000000000000000a6ae0aac00000000000000000000000000000000000000000000000000000000a851ae7800000000000000000000000000000000000000000000000000000000bf1fe42000000000000000000000000000000000000000000000000000000000938b5f3100000000000000000000000000000000000000000000000000000000938b5f32000000000000000000000000000000000000000000000000000000009a8a059200000000000000000000000000000000000000000000000000000000a0803ef70000000000000000000000000000000000000000000000000000000085df51fd000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000008e8acf87000000000000000000000000000000000000000000000000000000003635f3e5000000000000000000000000000000000000000000000000000000007877a796000000000000000000000000000000000000000000000000000000007c9bd1f2000000000000000000000000000000000000000000000000000000007c9bd1f30000000000000000000000000000000000000000000000000000000080b41246000000000000000000000000000000000000000000000000000000007877a79700000000000000000000000000000000000000000000000000000000796b89b9000000000000000000000000000000000000000000000000000000003635f3e60000000000000000000000000000000000000000000000000000000042cbb15c000000000000000000000000000000000000000000000000000000006ef25c3a0000000000000000000000000000000000000000000000000000000019cae4610000000000000000000000000000000000000000000000000000000019cae4620000000000000000000000000000000000000000000000000000000029f172ad0000000000000000000000000000000000000000000000000000000030e5ccbd0000000000000000000000000000000000000000000000000000000002fa57790000000000000000000000000000000000000000000000000000000006bed0360000000000000000000000000000000000000000000000000000000006e7517b000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000040000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000200000000000000000000000000000000000020000000e00000000000000000020000000000000000000000000000000000004000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000005468652063757272656e74206261746368206e756d626572206d7573742062652067726561746572207468616e203000000000000000000000000000000000000000000000000000000000000000000000000084000001000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00005468657265206d7573742062652061207669727475616c20626c6f636b206372656174656420617420746865207374617274206f66207468652062617463680000000000000000000000000000000000000000840000008000000000000000005468652074696d657374616d70206f6620746865204c3220626c6f636b206d7573742062652067726561746572207468616e206f7220657175616c20746f207468652074696d657374616d70206f66207468652063757272656e742062617463680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4000000800000000000000000496e76616c6964206e6577204c3220626c6f636b206e756d62657200000000000000000000000000000000000000000000000064000000c000000000000000000200000000000000000000000000000000000080000000e000000000000000006f727265637400000000000000000000000000000000000000000000000000005468652063757272656e74204c3220626c6f636b206861736820697320696e63000000000000000000000000000000000000008400000000000000000000000074616d70206f66207468652070726576696f7573204c3220626c6f636b0000006b206d7573742062652067726561746572207468616e207468652074696d65735468652074696d657374616d70206f6620746865206e6577204c3220626c6f6300000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf43616e206e6f74207265757365204c3220626c6f636b206e756d6265722066726f6d207468652070726576696f757320626174636800000000000000000000000000000000000000000000000000000000000084000000c000000000000000005468652074696d657374616d70206f66207468652073616d65204c3220626c6f636b206d7573742062652073616d6500000000000000000000000000000000005468652070726576696f75732068617368206f66207468652073616d65204c3220626c6f636b206d7573742062652073616d650000000000000000000000000043616e206e6f7420637265617465207669727475616c20626c6f636b7320696e20746865206d6964646c65206f6620746865206d696e69626c6f636b000000000200000000000000000000000000000000000004000000e00000000000000000636f7272656374000000000000000000000000000000000000000000000000005468652070726576696f7573204c3220626c6f636b206861736820697320696effffffffffffffffffffffffffffffff00000000000000000000000000000000616c20626c6f636b00000000000000000000000000000000000000000000000043616e277420696e697469616c697a65207468652066697273742076697274754c3220626c6f636b206e756d626572206973206e6576657220657870656374656420746f206265207a65726f000000000000000000000000000000000000000055706772616465207472616e73616374696f6e206d7573742062652066697273740000000000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f6164657200000000000000000000000000000000000000006400000080000000000000000054696d657374616d70732073686f756c6420626520696e6372656d656e74616c5468652070726f766964656420626c6f636b206e756d626572206973206e6f7420636f72726563740000000000000000000000000000000000000000000000005468652074696d657374616d70206f6620746865206261746368206d7573742062652067726561746572207468616e207468652074696d657374616d70206f66207468652070726576696f757320626c6f636b0000000000000000000000000000000000000000000000000000000000000000a4000000c000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc0020000000000000000000000000000000000000000000000000000000000000062ab76af9f7a5ed8b3b2b2b21425656a7fcc2662625674f9d12b72e6c688b431", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/fee_estimate.yul.zbin b/src/deps/contracts/fee_estimate.yul.zbin index 2d626c482cd18fa9856249e43a5033c73db65de8..bcaa84a475a78445794e6ce206201bc294914939 100644 GIT binary patch literal 66848 zcmeHwd7Pb9efN3pGS8hXGndSg%uM1uLxPakQj-Yi1XAumg3v}tND!4;W=L+rKr%DT zOhV#ryx-q)p5@%<-a9vQ zC-e`84|(o$mftz&x1Zlx9+NTjmodxriAUBmJ$MXf*JLJ)@msQMyxWb3l(pGQ@UQ0u z-mS(gxXqY{H{kuSXL1`%ALW=8`1cUM_lEB?{7&#Cf0*Bwh3_SPrxqnY;P<8BJCbwH z!atht`}jG8H)D#q(~X%a;(ZWrIlP}u{k8cSlk4RE2j(s+p7Ca=mBU_;DI&e#6}?ZQ zeg-HQEWUMl0U+9`TJEVp$|&tEF#^JVXCly0_jKQM69FL-7;<0r%S zGEDFG)zS~Y%_}lKU#$IFrTABR`0a}SKD-lpiig;G84ckw*!=W-Oq82lyD|Mt_2xt{Rc ztLYt@Uefd<=qJ;`^Oz1F(D8So{1EEtc+FC&k8U#mnI3(&<6Wlj8#TXA-*+m0X3MW# zil>FluZNZcJ+m3V`A3mczZ>li6>snRjqtg@6mW)k97~w~JdRlYGABQe`h&6jo@9Pq z_>7lW{RZJP-+~0zl_+>2~{TY?ZtjOhGC?6Q*qkN0VlkrF5 z@g@|p=mUcCWLACPk1R+ZNd>er(80VCi~pZH1W$oeqkKg*An|13XR z{!@OOwZ2?_Z2VWeI3|Br6CTlD(!*cYbm~u9y2>l$xM*%h`M!aod6KH*eb7K#1JDYL z|7kLQzu)1JuLQmHbXU5_qJ~h9Z0BpTzIh9_5IA%mzdD%~1OxzReOZ zcN*K#4AMjU=0Bb47vEe}?nEx4d{-`VsJ}W^-<7+Q>%eC`#_GH9MXsav9r%Xo6McH2 zaG*b14=UX(Uzv=@{M_erKG1kF$-}}e>K~W^KZX}$0?-e3bm40>zvNATo`hAg{~$2I z^M40Y1iQU(qw3?~43)!QCZqXm*B4%|`7@l~Mg^EIw%nCf-9NPph0<&Lxv zoDP(0k$$(d5InQIWti}tnenxqmi>%Z_y-TOU25^UTz_Gh{4wuBrOVltDDC)mHcSKG<@Go;TvgMQpZ`4ByZ>mLxk zjr5=}Ea`;;_sbw3?Ru9;y9*w`Z|Zko>la={?JxM0;-$D4?%pW zp7K|Q`Y~vhAjKDa!OvlQAszTa@@~e{Ll#fI;IqHL0h^e(t1Go!#1`4-X{qfPCW9&$xK7^%uM&$*0gL%%=+v2_6csj^P27%t9KsKUjEx{1bmY z`UAdOlsD#X;`9E3jtl9xpztHgk2Dcu{HPw8XyttGhsKC}Kmmb&GGL1lg5!CT|8srE zG>_o5Loyyl{>zQW^R~sXH(HzJ-5)_Pk*)ka39pA;8qmV&!jdCOv=Arv;98 zs7n67NPY$w@uao4dAfNi*Ml>Qg#@kN)Yg_!k zY@E=Usr~aJI$SUPPp89-mr94(;@LZ#UVkzCgomZw7N+al^}Qcl&+--Fc?jheeOSif zZvZ^v-`|7(gC|ngGTvXI{AxTNN9I%qUcbO2I0Mvf-|^wII^$o2p0t@2uo+-&JY)VV z^L^yEUf^N8k>6;@Z(NN!zc4}O0Px|?9~Yy1+)r)L&-8yk*gIqhG=JDWN=hJ2(wU76m8t>u$;Qa=D2Rlhz5_|!BNb~O*YVWYd!?q^o*>9M2 zoM(~n@gl^vMo8b-xD@PI?u-~8gU{jjL~_2J##_9z4!=eD>HHSuyZm-Z9ry*pSFHU8 z;q&~I{ROq#M}b$^e-cafPnOBNHEZJ#zY+bB|1;Is6#u&#N)eBT32y;@kUda+jb9QU z>#%x4=AULc92ssmbFuizlAi6)iv0>u{$|uR*_AZs$Q;eFAF|+x`aer@T0f_8+}w77 zqwoE>lK3OJRa75vPSgBz$^LMhi~KJyr}MU4iRW$K*KwRs8@|6T&-2*@zp(QF8&{rP zI|~7x@l|x%3GvdL@hpVS<#yVgc1%6^8O2xj9Kjd(fbo@8d?6lpE9Q4!Wcb}Cz<=oo}OjS1w*q2mT!Ou;~_lg?{0917^Xh*D|>o!o#q~ z_AKP{lEx{Gw?yKM73(Kb?{HXdfXewVRDD%MdxOQ>!gUl~H!v!H#rst+kv^jJ51-28 zN%94plljFv`6n8`G1(kxsSe;NF5jdO<$bNlgUEfB{4IhPV4N&>-Vn=;weNZEH@s!F z*DuNhqUZAx-?>cUH~wXLb7%;q+Rz_v$LD-hyHxn7B`@u^_$A;mqxvS2YgHb40GaC7M4V@KGOd2_GdYr+8ct%5`n{{<b@UakDMSlaXd(9)mj68dGJ=+lV~ZMQ>QHn5*eaSZb3TJS`$ z46(`;9Iwpb2?esMXda>Gx{`;v4+yq|>bJu@JWP7zk4Vlb-3(E@`D9(M^e;z0B%SRG z(o1BwPKG``1iJgfT#x)qX-Dh(Ba~jeyQ;kw|0>E)*Go~ptCy~*17G~BsD7jHchrF| zdheLwn@;7YZZ9x}x%1V&v|wrkxzB!2`Q-&m)-Zj| z+I8mN0Ph9jKP>*d(sw7?83Np0;3xQViysnu>R+k!?FP%R9x;==-Y}Y^J6bx=TmZNx zv%{7DfaD+Z3`x(L!#&J@S>`*F*(dd~OXTUTlyVqf52_)2A@wDWfp(}q@v+utKa}{M z=QsXUOqaJ*rUJ=eA(yA4fWmZ z{K`e&6+7k)GaOo1tAqo8hTJCBLprZ8T^{3^x`lBN{tdOC-zxK4f7-!&H}|(27HD4Z z?(a*s*L1oHztcFyUhe1is>`3u52O5a`Hu2k`M$Oe{JHu`-B_9e|6rB&G4fm5Hml!q z5br}oOqu_&Jp=t0eNgEyc%XGHiHov5Z{5H27p5KZZSm8ET$6`RmG>A+LL&Xr90m z`v(ahZ6(%Y#6P4b@drKI6C0na=Sff37{C8=rff@}CB!sQm)^&G0>*$FzY*hA15! z;5d+LM|r)8azX!FIG)XPZ^2IFhq)fhkJU%mO@i^vXFN~zbrkP&`Az)2C_kNFqI`#6 z%(A4uUi`?c^>sVpz3pX6SDAldeSq-YI^FX$*4w7_e5J!8;e)mpSUOrh(D=I8aYDST zgYL9+!n)`MOfFtG&mXbv30=Jzs}E!zDm&u>H3E3}&gPZmJzGcH_kU0QxU@;y9UqqJ8IeEHEwPpY4pS(}a9H z?{Q;^3;UO4CU_n1GGF4x6qkX#AzbLQeKsxm5_H*b;}fC$M{#e&H)#EZ^?cnpZPv!& z&tQEf@mZP|Q9NrAo)o7gzk%YkP%b)8n&0>=`5TSJXXog*`&W=0#^NTfotdNG>DPC5Ovm>aGqAysJZitabu6dv<#gl!IrXQ8 zKR#FgNX8f9#lMH!i~Mg_PDBo){B(aT%6I)S>qn8^!g`~BZ^#G77SGPAT$ta+vt>Up z1oOEqnMv@;bF3U;355Dt<$Pdk zxc@u-oS?r3!=-sne|`(?WALA=aHI2qat=_>4YmfklHk+V{U%re_#EnEr-Pg`!nuRQ zdBK+F>v=&vUzp#g=a16Q3+g&`+Y#+Y33}lc%sc*8{KwV+`e#EJA2NQu`1M@lGj9Ca z`p?$CuBQ)c$FIYACG*(?u;`pS^k1od^91XmKdrj1CgY6q)Adl4@9H7M4YIpy_yc4g z24nedeZ>R#yqF7!A5!PdQJm7%qjRNGy*Q`Xg{b{>{6zWg_^3SWqyG+1)@L74dvp-* ztOu&ZIWxc;>cJ18_yWBQDkUQPnGU{XzXVO23};Ak;DR z8?A%D|B3k-E?&d>umhtgt#GJXO~35jG;ZdDgkR?W6{W}8bNPVb#`4qgUp?+4_z(RW zmCt1|PVlwFwIcp^+n=NS`1Ry-j`DB!Z~6xzXG0j3+GC893k(Dr^YX%g@R5676!CSIcl4)7{HFY{j46I9>gl@H zQ;mQ1yQyF4>u7VNcNk}UhpY=xoDqJ#0exn(E)?ns!}Mz1-F1@EN%REG8`j8th4n7+ z@k+B5^A?~V>qW}vQC!{pZ&@#r`9dUT>2e(9J9@`|DF!&7^Y#Y_KCnssg5AQO#4-Px z+l};#s~_g7pKN=}Ri7^RW;d_?8}2Widrj)o_v$z_zBnW6BD5~e^IAk(g4=Mb$`fU#~-XeNBc$0p`{Hg}|LG=g?OZ+an*M#ZD^ZQ7S3=lwi>j!H8 zLVN?yk)ASzAM3ty!At0$*0m3F)ZcaO1IJL8D-k!Qc~fz{&|B8?kZ$LTHoieSIeS{my&J5(kvIzWkrdf~=)k^-G&*!({saGl z=;D!oLg(z$=qqt*rB|f)D%Kliy*BdW9Q|VK`o$vf1+`PL4lC!_A#R<-PY7GeI;;~< zLvK01?Ndhd{;6Jx_Xi+O%YIfT`+KPG$-YU&YpdO_V+KyseJpF^`&imnFrI0g9540% zmhCikBw+h&_v_j9ALxA^$13F0deFvM%Dr9pkabWyUkCEh;Y;u@#RXF4YZia)o7F$~ zJ5(7$d7y#gi65l*m>=ip1AqsA#q!hjL8ON(=!g38b4xD#xvp2wbsk{X$*ljZcmW&H z{PK85ST-p!#_;;V|>azCBRqBc;v&0c;p*rtG^fBDD*qI2tFk_m-~Hs(OePt zc7R60SN_L5nh*Avk_nK$lut;VihDm6pbY#y^IzyL%F}%p-iG3By^tyFZ!v{$C*Otc zNPk`;o%lSQFUIRrdEVDS`#7K<{P!?k$nQzmLGn{k?=`kvS=S2t5yH6P*4g5}^^S!7tbX4R@Bn#<^3&xd%CF!n#iQC!|6dr7gmvMs z<27E5Z~0%Q_G9C5<+s`6{nyxdiO-3zig=KJbZ!H5{x_8~(U*rR;{I<{zXJx7;)AZ< zp0WEgt=^`0vOkXAo;BYk_4lmrxw3kj&tKv`x2pQc+DY0t#deVRkkIGh9C36mvdVd1 zD#>!{ocF~_rlu#)`(ihWrYFz)s=Wt3Dp8K6W-|PN3|0^+l zaC!sspR}{HZ};8mC;fXf^d8$UirYne?&y2}tH*hKU)Avq*mikdhJA9X-}Ky~f1;DG z_ZWf$_*|p^wPxU_240Rx`~KI_uOYNb?SlUH9JBuoC!O~73>NRGrXT%p3OrJXybiY! z@i5pI%(EFj?gQm>>&VZ{kTx_~_2aPabr-)&`r(Y+gGc^0*(Kx2dC_mFy^(!Mv*x!V z{G1W;-`I}Q6DOa^Pb0gB`=7#l0T&2-WUwFL(|LTt3;aKxM+7u}yyx{@;>O0Dr1JV4 zDc^o6s%U#nh5zg(!(XD~vHd@z$?#qL{Np^s|9|rg|F(ICe`k~7^ZW|@YUz8&Jj379 zWcV)sys63XUHsf$2mT+6erWr6ljM5^+9Q2p>GMx@+HX`p(LU!m{AV^9KJD|4!~f?d z!*~1tr38HPgTF);hr~fHx zFIL~t|NbLReuMDmtUs-N|8x>BbB0TC^*G*7OTzar=5gN_&et5gVE+o?J<3nVOO)^0 z#d`2%-8-t^Z1}QYeg5E+U77=aD(Jf{IlrX1VRkpnGX>b!;?bW;+&jN$zn!=8Icdy0 zkL}+1MPm>TnvXj7&M$hE!av^k&VQ8o^3SUBCHxh{_oMuDzKQZ3zO2CeKQxHJsz zZ>fU!_Z?rn+c+ZPFuWcMe)Bl~GK?Dl5MNo29W;o*5Q8M+As=t@e8<&S=Mx{`zN2Qv zOI$x=<2=LPG)MS){-SLqFn=uZB71%#ukk3?kGr)w{i_=9`m-j(cjp-_;+imy55j3Sag`NBM4jSB|b}O#duK3|8WmbJP2a5#vnL z`-?XnU;Pt)Z{$X%+r3rsD*i~6pH8qL|2 zdSw;5&O9}At-wp8aVl4DpO=vPO1so3e0TnHPLtug{Xe(K@Lj$5+$O_!`(J7@eAh1R zZVvpmZO3Rg1GG=`rfPPxJjedIcG-;|OwBX=>*pE%%pBpn_;=&r&u=n(H$E{`2mU8q zzZd(>d7V)1neZ3j`AP7PF}(lKr+dnV@aEy2_8VHha_RoMI_=ieYxVf*HBE-^>djl4 z4By4i%jOyWpEeo3yZ-U&Cc}5}bMqYGyK?8s#aXrCH*MX^jn|%CyIsGYT)5+M@%F|h z!*})78=4HC{M2|{@AY-yf5g>S&OH9Zb@CgiI-?0n#CG7&@d296hu50N0cH3if_Ww80zQZ=%UkpRT`w-iXTEE}k z!|&<&Z9RvMxSxJMQqON6^Yqq8f|FLvqR z@Oz_lcGm|#*<|=+Cum=*m7Dh`;UDw#uw zC4Li)zrp@j#1R@?FKLG^YDV0w{S6>f%6duryR4o)&fn?%XdS-6#AD9qA>#WW8(c4G z|4ftc{ts2~{_jr_-v8q`x!2qOF13$TIWI%^ zZ18?;;GN^(4db29KZX1TaG3b_;4$pnlNVsO$}LDYIk_h<$jLo<{dwI#g*XV}Ehnt7 z`mjaLX;!%}4}fmub5CB&FwaMge;&nIPQc0PA({u^9$tQbhQiZ(@l14Ip2k&L^u9ZL z|D7*!7=!Q3}@3+Tp!7p%rT+sOPfU(nITOB*^iMk9NBNDyXZ*$5uLIxM zdoO}KeQ(A1PJ4#F!-9K2^`66pAwBdwUTX>Zj`(nx@Qd##TYBOCBRQ|f_38Ejkw1Hm zkG{(Sxc(2B{!od!5*ZMD|Vbor8V|%z(%8Xx^R|&CXDMbRKkw^d;c%y^I*P zb${!4CAZiPe?ye2#8n_!&AEctL|42 zo|*4i-;m!R`iJgak#xEr2+V>%$nTOa#k2KCW~_bV`Y0EyHJBrq{JJ&#T^GIouM_@1 z@vZ-_G%kiF_gPcCpV}e&cP{aP&9CDZC+@odUqR#0JjB|st`oJNq&Lqr7>tg~+GUgI zcQMRId9ve69trE$w0~+R@PR+@A>&KGUr|{IKZP7S)^iVL3;i-=umosaFq&=j^w7Z|gd-&V0{9w`Zp> zNnenj{DAT`>yMb;aP(`_`1+^6leUqkRN=E z=fFCisdmRX2iEx&g@2sZd8j>-`|9@1rSm-5H8ab&#IF=TXJfuhe*V|=zEs#VKEH>k zX%_PdOdx{n7JgAf8~9GQ|P39!=5`M-&p^#(M3K+54eD3~AO zuY>zjdtSGMBkHGuAD^0e0vu-5gZf>(PV8e)|4_b*htGki-sbP-b>46Dw$ z_v;z^-EWP@hTm1RaXzEp-P@@9VP-oIvhz;9_pk2!8szaLzV}0=JNto5pZU3mN$=6= zd;(3Yf059?jjn6vpwEdP?f$Jh@IC~&nJ@TznhYOmF46xtH5tB(AH7GXY4~ybe_OKu zeru*gab*8{wfA3k23DUPvmNFAmz}sHRpe9lUv~9beRh2IUs8K)Kc7@Qe9!VZ;uq{^ z01t$ZI{Q&O&uJ1q)+h1Nx%H{R2kdXX@fX>?;reN|+xc9P)`>cIRK>#%v2(J1W3WCX z`)JL6v2)h$wFqBarg*^p;9|doKRTyed}PmMxLNg6>+a9ZW@Y`z+PmyZv3Hr3V(&5+ ztG!!A{i=H3-muK`tM1GFk@%&Z$I4IejYe4C&QZQ@aQNxXF8=0sf3uY@NLA8rZ`5wM zdg~WSy;TAKg)aV^-2RX2w7;&gc}eG|=S=U@+5h~gm7CCSWIyqE&r56^xY2tOI=`v< zxYZNA`*@O$*xxPo3EzXFb7NM%{GTB`{{FbU!_$!aCvOmXRh8F9`LV(M&=vahe_&V8 zU;N3u#yQ{6wP?=#zXDXWtH-cl=>-6#vRPN6Fd; zj-yjPr~AJodUsFP-p>)sPhEG3-YY9$+`#8EVrxt#aeH>jo72fgQ z$KgRg+zPy36^jeeE-n-MejfZcyz_cccZc+|%Kk18MfpkgaWqaRT0bH>fdjFQ#qer< z=c4O1x}NqR@k94iRX(Np-Rf9=I-f@MT|Pxu;`_Ty2L1&27ST6}Gn6tM=V%RZe=z$S z`kk&o(@ReJu%!FH#z2P%zgm8n#?S93k>BJUK{LUPfn&zKN_7LTS&#}FyL~zJI z1mAR@Ciu?;wc-2g@_f%vcggN=u=A2xwzFCJQ}Lcbymem2^8y{uunQmGkzstvI-}_i z_2q!zt7Wa`cMHD2Z&V(9C-{P$C4527AKn0FLUtnVO#76GpLAWK8|=k?YX#kh>zgVQ}(RSsF-$MVzVFskp$A@G^q9g|~spB34K!B~E>K4IOM z73k-0@Uxa(6MYfcz4U%Y`N?*e?o2oQqIw0vQ^;VPp zdyRW_L#H$az8lxkxYxYF*SJ^H;1k^;pJCii<6cdJ@8U<}UQL7V_Fv;(>E{=_r^N5< zp4R6+eeQSsQJ=(;ywT`8mTd1RJp+05OkntXNAUKGqW4t~Q(S}XFjfHwuTV&A-}0=_ z;GCHyB=4rh1+oi57x^xQrE4kV zKlaOj=K;cVA>*-~UOKIQ54ImOANA+NA3$7dgz$2<@-^_T>ttI!*x99TvUvASXS$i} zR`D;u5=2MD4NJuL9`-GRmzK`xxUyO55k{9?!|PG-+tfciP2zLeb3Njt0AE>RztQ@I z+0&@q?w?4zOA$ZwsDFX2pBtj~mwq7}PY3rSl*=ry2QB?irMHiM65oU0L_QHWWdAd> zlJS$x@;W);XMox$TQ9BX?*s(d}k}XuwNJt`W@jb+hKYIAIx`IFUT-H zfajag41L#$$BliNpQCoY0l|mtPewnKj>rdGyz{>PrCknQ1}q$mNAaTL5PvYph<~p8 z|14e#=nwgC;kYdyon`eK973Y6$*`VS`a#AgX&uo6lzsv9gnqxo`h^&W`h()nA>Zyp zP(RS_L(u)GP&cIKD#{&BmYbpdc!NuSI9ENg6f_=TIv<-JS$c-@RX^63i64M-hWAwI zkyoo;pzmQ0E&WMVzZa5ddSdyh{$wma=}+>$W_(Xr{p+Pas@e|vk-a>YpWaSXKiLl0 zhy3eUKT`ecD8KtgR3Un@zs&qf( z)9C5=!v*5USik4Yk52=Hj3tm;TIo|G9l9#gKa@`@b-GcsmShO?VYM3@3v9V#-O2SCik&>4jG6e@|ak z{YZS<6U$H4kFk75KNje_0JY!~{a458HwvHbcdrGX=rtGkd>>D&f3AL?WB)7S91IWC znNvKtXZdX7!OJcZd+c*OxTm)&AILbP{B$}+`3@ftyT#{+1-`eZ243e#w~Ftzs&p@;l<@28E2F~SG=~>k%u|Tv&oP=ftn@uyYV7=1P?uThyw62mmLy6)4vWX zXb7bYW<-e38=e1yzvZ6IRSoW2dxfmO&hWmqo)xp^^Fwxil;lG@9*Wb7{^W6x{uKR4 z=ZuDG$i-ag7y5zRZivqUt@GAum+Qs)Rflg(1}YzPGeM?AC@+OeXel)B@hjN8Dc7>Ln*=Eluz^_I*H$u)C-`Nq!*SFK6;;Cm0pC;)v^3kdd2cx zeAB$G7JQmN&jG&Cb8py3z;f7w*v=5~q5At6r~QulvE2i~`v-bYZr1*R9-K28Vfr6i z9Hi$`8K1oeqG!)j8wcr`wEXPYBe0jm`yjBeqn1uYAL9Q?e^Kmc!}~jUJq+}LB*gR< z^kYI_f!jUNQ+I0n>?ih~Wcfbq-{UBn-oM7~p|JZ;8ttFPUqk;Q0AE92V?O{tA=VV1 zgwU{jNAn`Qnx5WM!uSitImu3DP+#oj@wI>XCfh%2?_4{Ga|3MWaD1P}>6Nl;*uLQ) zgYaKo^z7lhoYTU65;g6jUFT>adkDTt+Cv}|juP2_>JRLp>Cf@Ky0DAMdqnbi$@j2w zb*nMGAP37m(S_`97V=MYG3M#)PtwK`$VtyPtbRZ_YA4?kh@JOG68nFR-S=zxqUB<) z|L;~mz)>Q2k6HbYDKVV9o>#+#F^Zp)Bo3ZGNzbk5Ju&d(&ICRU;NL{utT@*qc*GV$ z?*FjI{>XBiOw0W)mO7vcx@6Z5*xfOF8i4w2uK zJWrG>Dc*-HU39&|;+@x_8rvV(`*iUmz}L_qx%S>u9KXU8=w7;^-t|^5R`^4tdU|5{ z>GX=~JN^L2g$H}j4B@-^AYbm(-ZQm-XSw}@K(PE#V4U|`+5I>HmPmMAr}Y~4mxF@n z%WpyYNZw4#GFmq&^e(Xccc0AT77TO#;e{fX#(YrZal!pm-mF?E`NsSur*D+24LMu?G=ATiweRnx_k57${y|Hz|KIyz<)-|!=zf9}fb;R5aQomw<*|hAJn%%yy-mgpl*gIzWrNj5vwU%f- zt@j7IE*ai~HOqFM&~{4j!fUhxJzvuNhQ`sS^P`H$d~n4H#F8)ob|XS+|$-sflMt8&hn>|M|D zj_T`*Y){ci%v3L-e?6YZ(yykhCsDkE#&6e?_&!Zz`mk?O?1%WT$GpB_;nF?YLrsM1 z^xM~cR!!?S%~xZ1@pYfoyusIfR!xKN;z##cH4VOtAKhowH27}+b)VII!7q@31%H}N z8ox~5Lr?JoQaw;U_@DM;K|Js@1zP_a>icDA$KALI>z`PDs-FHUzr z`$w~KF3-q*mcDnZzRYKf;)mn>Ji!U9J;<*jd)oJRKnLsL7L)5jey(Mh{gD9ANAPa6 z+_2cq*26FiXcz9k>=VQJc(L0p=PaH7TyDc(KUkiM4r4eiI9V7?*#0a!2a z-U$9#ndBdu27unQKRP`QNA_xUj9(h&C)5WY^c`Y)@;>ZnUq#=ORrwh0W-pKBr?(r` zui#_aR}t&CD<>SUjODxa5jNy`BJFo1KL2MsZ-ITn{v9B+m<#CHB)jN*$D{Ccq7&Nv zCp5tPJx9Ap;~~Dc_AzKOd`Ev4tX-e4{+}fMucAMREIJQ`9N`>vVU@@eG9)fZ{Iwfz z6so2B{Q5JA?{4=!YU!O9{dJ7@t@Qne>L=&EmA=On{&Bi*CGsmX?6+gw>OXoMpOEu~ zeZQ1>U*E6v`RmGgAm;bogg0H^!4K;fvVNxbXX1M*EoLA$K*dOZQF&Vq@1*ziefdI^ zTS;%V%i#w3#Z+(k2`CTyRImK<4vcUe%4=LCIzLHG&*twa{+{=ZZ(TW?vavF&V!w?c zAT|CliKzKk_=kgsY8BXBp1yeG+H=Qumd_uVx-!@`GPkVUP-~G0mb7NnaF8}aHUwQUpuZWkQ#cvvaV9Q-y-mzok>UF1| z5$v1TJvp+o%w4p(HJ;hmTzBs$X3)KAf33?doIK=Zp1ky6wGvg*Z-}R##|R6i$AhWz zbTC%FHn?JBddHRPgLt7TzrE3IhpJ?8GV%}C$v=WvWX-?TKc0ji)X-mo{L%Qv_m?Lp zM?rwu5AejZW@@&4;#tEV|H66RtA4)ntk+%l^1u1&C$oniHSgc{=~te7=1ZUa*W8Q$ zTql2~X8!G;JybLQ?l;!V_eQsy=>uD)v5->ruY91qW8ZW_WD;d}?33x$9s>1wTBRi(YCl78c zPfW$ZAc$M@Z_jvb77F1{j2zrMGBsVEykKl%UxfcKf3iGPp4?yFx$)rG$llQ%w$Up_ zb_Q1*oGwoVWyQ43k>}2r)NX(0OVY3s!Kk77kN)Pi2QIIZf8E&l*s0~c6VnHS^a1Re z9N!C;39c?rj+OTWQxhXQ5)`Nf|LD3mphWJy@wdo6S^Jx8MI6O=jpXlrkm@ay zQ&PI=e(WO>VEnRKK(D!*n2j~?B1ZEXX&XKipLCI(geF*Gqz9%Bas zj1Mo^N}sLJ@|~?OwZGGzlV#ZaF;d+VseTkTUDf=<_%E3P`Nyh^e`370eMNn+#3uIA z(ima~lxDW%unKZ?-++zLy+!|$?~p!V>?g5Fw#d^dbquwigiJ5j3*qNs%^Wjo~TW~ zIIJ{WE{zwM-ES{mY#X>c*b97)>@G8ZQ=}*M_k91(PsLspBlx?CV-~`1da!L#^Wk=yf*pGfjacRro6wR&3M8^s{c=(3TOgL zCW3o$<>+o!YSu0UlmMbkUpX=sN5Y;Ox{unKy0UioV0vOSKHPZM`1e#am8i(0gln$7 zrltUlOdUwAH=9In^rAzx$|3)7o%|!U^S9K>Hn3m8*iZg&{e!=}>x27__FVJLpN!-d z4L-2@YfDf4(y}c#{_2u#Z+}1d-xYye9H`}2vg>J>K)%?==a1|eg_%iAZsLGaet+*< z_k1}`ry%WDws=BW*u+^r0p~YUBm2wS4^Zr_JVladts$mM`>DrO+Lz?V9{LCu!mx(U zxgfRG(J3ByY91v5KV(0FzQz#*`jxbOGC;dV$3`)X3Ky(u+o(TNH4_=gACBx-!{Dj@ zq5HS~RT^7_&BpcfG`!7=CP#OV#{9youCA@1cJ161!b1QFZ&42OyO6`xWe$^V+bR6!l`M0=ct}$yK{p>?^ zin!Sc`H%2No?5W&AVN5MgLB8nrppItwm=J)$NYEqt;3ylD(CCuUov*}*!Z<$;H+T! z;6$bN**vsu`{n0dylKWZ~vEKBEfk{C`%`gUdO)v)gUD~Oq!T1pQ=qqOdICb z{t-Omv)}2eU4+&zqLBqV#`jL_DaW0(JtMX4Z!PeDeoOBUYvpHeUiG2YS_P2TUMIgM z^6S+7#!r`h^O`#TyI%(e_CVGA)5r$IADlQ{(-o?OQ^&de+Fe~YCE&w-b%AW&(fOF0 z7JpYa7oM-mS3I-M@5jG==W}ZoS+~Bnaa*^3_*`%tA}3Siz>)_ciwMyY8gV4$k56)T z#Uz^6ez3wOtLMq3H}2YjYp$*7Alf!#c4$1fVl-Uih~al_8vUx6r4TJ-783?1%#k0k zN~~VspTPDeTwg9=^D8Zv)Q|l0(dnu3o{F(nF{@!OApH9pRxDck#m_l8gp>B;tgk$) zW&rj3Ph56$T0NU~*YmbrW`8@+z`iHwlfwT*pY>sBTPu1_kJrjI=0$(7?S&Vfd-=IT z+s{4!@(VW&U5uZbH%Ilaf9cYi@`dQj^hFcv14R9Tfen~dj+HS{-WaYaUo~1gezW81 z+9CvpLhMs~p)2ZM&0mjp?|<4z$m!`t>%^~ronEW;Wi~zDEhjX}MV8otRh}btn3Ez} zdq>6&LNW0AG%xg3ft8kg>*j;ydOFW&d}U%TVN I@*TPV4^4uykpKVy literal 79136 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 V#F{&=&41&_`_q5=_^;ppe*r8Yy^#O_ literal 78944 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 diff --git a/src/deps/contracts/gas_test.yul.zbin b/src/deps/contracts/gas_test.yul.zbin index 5986526337460ee7b6023a62dc4c0a38a03ddb04..02fe55da99c26ef5a16ae1a2b140da2501c04762 100644 GIT binary patch literal 65312 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 literal 78112 zcmeHw3t$~png5yloJm@mCVeF|WbRT_)MO*I`E(4_|DC^ zdd3_&JGa?18k3qsg{VsH@gsGbIf;K!zvD@hIvdx6DY^Ef<(hZsN-Z4Ij(>f=UliN} zsMP7W8_RHg_Y$Yayvvw*7aFtgY}1C44BE}dHI3^+T$8vGya`+v;F`kKxG!_^-0s!f z&bTi}l`fPT)0A3)?i+EBD{42TR?)m|ImVyIc<`w`z)a)`+Ht2T(S+x(aGIP4(LRAm zu2?WDw@&fkBm_TgX=6?`W&!Y1p!oxFsTZK#E1f3p?_zoGEYa}^o-eUp>Gp)17H@ z-c3)P2p;GEO7S>1x4}GwabJ^Y0(}}YcbV@HHJHRH<|Vi+ME}6MS%7hIowtMNl*`jx zZsFRl{W(~VH-}oI?=wBT{*$H05nYEyrpMX2b0>%2c^?uyxR*1$ z#J9|k?iJ{#i)TjsWZXSmZrr_C*DlmDriJPCN_~D+?D^I5ociN>*YN#Zx<`K}>eZMz zcn-Wg{$NWJuj^}_rRcxGmOuXByro!QEGGVIr^OR|yVr6(V;Y2RKrgf&0Gj(>jH^L? zk^^+bUrQpjoUV{Vc9`cB5rMihe-LX`j=I8DNz2b_$H3YwHXH4G`a~Itw zmRS0h_KB6;egL3KyCu>Nd_(=GxA-(aqJOQwh1;hSOlR&O=vLZ2Bizp2H|z_XS=(-y z$JvK=QvZ~2ePcE*Q}~t%e0F|`jdE{daII9h1TUBu&%-EO0NBElB>J8OFbm92vmBNO zCpkjbCUJ<$Pq^6f+gD~WzJ09Ajd*^ZKF>SjSf^R&SL8m)MaX&g21pgi*%SUzy#MF>NuIp8L#hP{57J2tM#*7zr*bzee3}80NK_d$iA+*PdWKlwKk7nO?K+kFCdn=z6#}6Z{S& zwXBDy?cCSPdbqdAdU(1Xo+o^Ta$1jV@$~@x%eX>sphsPg?a}pcWxXst_OKji#{88Z zE#14{6nb>`5FVQVp3L7>er*_IejT&(_r`=C8x;=k6Vds5d!zHu9+df8ehlz-rSjwZ zW&RB}%e)#IWd7MJdHx6D^SAi(Zi~{RcR=Rv-OTWr>|QRH`IDXCnRZP6E!mq%54mpz zJS2C2qkPkm)p_ALk#_AAP2dRaaw+7$4RihYWakeySKAFgW-(N`cmz%N!$B>6S4O_wXe`! zS-*)!SxWF2KWzkm>13YxDV^Go7{)w5uJZu<@a)rB;Y;K0O0Gve1A2nLfWHF_uaglz zG1;|*7v~;}=kx}mC({PGaw@K^SWjG?&ujn5^ai3AjGO1H$)toHG8e1-x;O!zhWzQ0 zakE((*D>i0%wHzES<2I!rGC0dc0c~Q#qNNf>p*ohVLRS&e5UVzwsfz4gmIcuJ~hKV z>$!wO^Jw|L)|-Vc2!3l1ycc!@=xHwKwF~R(^f*FKT2A%2J*G|T?~Ii%pZgXqKUkq0 zbK&;m70N%L@LBu4H2y8TZWi7<` z-XD>BOV>w^01u#}1j=)0-?Cc!F^O)Pe{+w(cf8Se0-Cx&^PM7nCtyK!QTvYa^bPA< z`hSY(JMpJV7evowl~khd2en>Pl)f)eySUlPyV=ol^vCqw{3UJwhr%DnJ6(gnkBY9h z*P!cbpJKYcev)+kR~6_wC-REudLQv`opf#G9m)OM(f%oy>o=ClH~azn%}|+ zd>hdVrUUp`fqKgCB*(kZZtllKj=OJ5P`tyqZ%?5B^-N+V>$ML=?U;nxF{UFSc7U(; z&ex=##T)4d##@gwE_R3b*H)gi{HMSTyp}DW*Qn(OE0n{Ap?N#w70REfcpj`XH`7w|&!-f8D;=7~L_?FJl+4~=`6oRr&m$}){xAim7;n}ozWf_O?& z+nbZQ-2xa2WM5%egbG*Ca&Q~$gnE%uAVRoo92 zH^}^KTqj-R`F#-f6Zd27BpZh*-XZas^c`Y9MB4$v3uT^KKaKt$BD#pxOQV0HD`Pf= z>rVlmTNR#Lj}v%yD?GcOT6k4%5BOkykJT&DkCl@WPdNf!9}KfIj!}T;xdy<9R;%vkG%9`MQiq}1mkU-k9e2?VOjXJ`McfNshBk$5~i?95cmvG<9kJ&Gq)5 zP&_5sULg7xJS7!R$ln4_P4Km`?$CJ1)VAYavKtWhYyPygV^!aNv{UIj#z!Bud{}{> zOxHf8?|r&%mcCi;xutxFrCa4g@DtN{l%I^!xjP8{0dDX&Kg{>;#|jFk)rU@j#&tg? zaH4*cpG;>?;ZuH#&JXotZ~+etSFB!%{}>({H$tBLXXN(>aUheNlP7x3BacpY#^w~~ z8NeCN7(MT?`P0NQhvO(12mT}KEtP(pB)1=zJTnMi@~j_Mx!eSPTd}~MkZ*2+;RZfi zfN)@e_zrd|$B(j9pY9=_X#E|%S2ft8Tadc0(8ggsd<`vg`V7dEq;;-pZagn_L}#B;#;P2 zASvUg5`>?`k<12?YqP&)g}q9L3&6)% zmp2`@_G((~=M2ZMnht=?nO@y)b3XXsUcd)BaqrEJfgdQ3rt$TLjI39Ko5wmm{@~?z z6Q4f*;DH|Ghw+#F7_DQ|dV$0Jq^w8NW!8_9{Hc52fg!QiU6oT=j&r;BAx=%>?t~q~ zbZYjno%UMv!}qrS$M=XlL42R+1!7g~4)^19?+$5CY;zQfryI00}8;ptX*cwbC>9+=ov@pCcr?W;f@ko)czQkG7-2_NnkgZq@=2X-FE z*LB~{KX;ekxAV_3kIMUYx(UA!4)BrNXU_P8Pa{odbF&d(3A(!bU>KalmEm95YVkaX+jT&tN7jSN0;foE9(bHe9`@A!YBH0cVc{@6NxXv%oRRgxl#DWu8)l)C2H&s z+vrE>OWOzW%z(Zk`@P(cZBaO_Ka}8oW$woWPRug~-?CW< zcnIweV|d)npl8BM$sbB+|8aka^Q1)hV?^IQfuGY^-XBV+KVT)q zUoHk;bbhEG^^4QM1FvhWUdhj8zu5hXW9gjsv6l89rA$v& z&C^FL-7niF^tx(`*vrWgsz3J$v6r2EYJJ`y*a}il!{LhZA3#|wG=Mkx0=3(~ZThM{(XQ4~?>lN1P>q(#G zO^IKZiJo*l3=}xd24=9 z*S)rUV|nO)+o3pvX}*o)1Y{p_KE?eGo-cW2I-2Hz%OJ>8{PlikY>Bl9Srndgbv*AR-l{j26Pk6SDIq2{2kl*FbtK?(Eme(k0@Q5 zQhqZE&%aiH=U*$rbB5qGc}A3ut=(&u3*9TeEAqXyi;c<|)F-+)!OAtrhx2hC$hpe- z1t0PQ;xlFC>^Mt7yI$R^1YXN;X@xtbd}!r?(vJ&!fcsN>h2CdkdU9H1zKKp5hvhBE zE}{7W(XTC-!y(d-8n>N&7>(1bCBR{fnOv2KZE<7CG^{j*b>WmM zwx|8l@WWgFMCqzY=@6iB*-=%eLxkTHU#_tk+xIsQCeYfP%(i%reHxk~> z9O=)bto%xz$^D$EbeNQK_mdcp?15j~yn*Ni_rBhxQTr*`OY+UV5A}fqcPIMA6@O<& z^htxrM`L7? zMBCNa7Zt*bvdp%u zvU$;$qQBiwSFme84L)Q#fqWG@iP}LG?WRnT>8uo&EDHVzaPU^W2+%_ikEO`*j=r$hb0e4K{yDnVcBp`rU?%sB%;Lp92#{s$|?j`Mkzw0CI z(in&7H&##cUZ~G-xu4Ove}kvvnA@ly_p|yOh6CS!F1Y9X9BQy%3%QUzh;?!w#Ci#S z-!E`v-$Uz*@&+z1)tm6;ZG|(k_iW z1>+-DFO56}_!)nfhwHl!qdxm>(faPgs4w%3!}UB_pX~Ey1fEAK!1G8P9&68zeof#> zeNEtr=0h;wH8NkVU)zsdEA^9KWxfTukp6MM0D08~rvetZX(u$AuTnkti~OAKliaRF zTOpoM=m&uil(|Q@P$Ew6>yM*3!-z8aG zgjF-$aavG_#03Q2YqX3`{h|6s{pwRCI!L%hufdIvp7T(TqKiyTYr z7kd@_60ujSw|DPI`cZqe6!+(TwqZI%e+#SkgMIR4;V9XwQ*3YT)l@?4q0OLw;5W3- zD>+8^$Sd4Su>Q=4DVz6@@>1S|_ji$)AbOh6&v3ZmUT6p_a*8Eee3yMeEG|uA6nOndA?(l2XMcF^#&aHJG%E)tz17h9tS9& zck%wj`U4`5+(#?m>CswvTB-R)$N{1=qH~eQM-@K_#VaN50(~oSRcm)3Z^Pro6&zZ&uN4FVVNEclPd*LDB5!}7_4 zE)u&#?SsZ#dHbMI=3CJ|Sb$_9!DDhiS3BY7GfI~>FTnY{#{XV$0_OuTzR;I9t2}*q zvnESl3FRwGFA2_vRE+nhH`c$;fY(R-O>g$)J>rj8J09mwfX}?ynI5IHUY5&^y6&{! z<$S`orK{eP1@Fm|1@G41PjWm371iF>`nBWnXNVq9``g-?O9Oh5_vvuIkLAA556pkj z%Y&dV;SbIK;mu-!cf!7UpXCMuMeI+)fM@wKN9=uCU+L!;0*|imoC@nZr~3N3L0s9c ztBK|fYx_y1yx}~~+spnR_%*_Bl3$oaUT~Al$L1qy<^`t?C*;c{@`9S*wDh#$sD zCB3uI%0(;xuui;Qp2|r$@U*UW-Q)RU(^y)na-e*(})rkM1zl~wJ<<_4!uC@O`<&eso+VYs?qDOfW z(GzbK_@uqp(w!H*YUQl#v+!ErFG+os=c>Pm-q?wtA??Egd23zi?M@6*IWPDvj?{`Ux7TX`*U z;Mjg3<{YMT5BMi}Ph3h*^?XoVmA@R_hk>~3%}ArKVtOUMR5^$P`KVo6TyMh&4W*k_t!Lm5oR4;a{o&|-a~*d9LdbwCL>H`g=-wgwICxK6?CF+K<)aC4L)ll- z0=nxGySh{52-`D_zR;sHme6>Q#0TBO(0^SR$C#xg|J)xUzWjFFrHoJe8}MGcoO?UT zxV1aQeGb9?2K%0RtJTX!{Q#jS_s8YshWq2{asyUFr}~$jvi?@@iu{-^x#9j_tgGOY z~t^J;Y;3-TTsCt`nq;AZ{^&S47VGWZeD2l}B# zT(D9+(UtK+`%1;`@+@Bq-58o5__y*tEwvv_D&Z4cExZ`6Gd!tbQ)qqn}3PybH|dx#dFF%Q_{04*L=Qa0_JEAvu?u{Y;PKk>FS2mUf>{ ziO=c03IlqqkKZjl%DyHW2M3U~_BDzB)cih~hj${H2z&*x!-U_x#pU_kTU?#r-Qc_$ zYj;^WqW3l87@_@Y(fEhi)T{oj#z(Au80=qMCh+Sxp52!bjib1aZPNWK(f00Rs4sZX zeyp5YwnhDeEkfURUcq}J%ojkr*r7G-9jwnhhSSR1Ab%tNcF<1>cwPbdRN9ZK`Wh+% zbm+AQ>&Eh8vU1EjDU#ou^tmRppH#YEjB!sji!t3MLwq3iAL(ncYl)st#ktmyTU_q* zJmv=F1ox??-Q=}AkGvY@>2)}q?=tTOIig=WU)ec(f!iT*deiXV(R&(>)}!IH^3N$w z8fuT4_-n^*Bb@UQdX9%!H?lXaU#fP4NAkLyUH?mJPn}^M76I;C-;AA z<$Z(QPs!uCA6%vSAsRn*KPc@(dC+Lw!*st_^hD~tq9?3=N%MQdp*%#l=qW9)H-1z5 zoV93t$P{lCxYD-@TsF@j@4WzH#~PmN6`t##T6nA;-_#=TB=tQ3yKaG95w$~V*e}2* z+Yj!CVs@WNNZbPUG0z+P)g$MahtD-5JtgrdIoAw3Ms(l%YD4?pDLyE1ratA%>*}-{ zqvx7UnlI<$O`Zbup0^?-ugGtmq<)~(<-+qo&)=)-y!^v&1RT=-MW85P8L%he`D*d8B?D%au57^i27b+gGqf_pi1uy0l<@=kp z{u;gSm;2nyFy7K>7?1X25}xgNZ$8H3-EwTl^PY2z$2)C?$4jCA@cR8`hR2K3%WseI zc)y6h>siX{ zhUMlPXLvmN{#$sw>uZfC@d$T+`F&OHeym>??2Afqb~Dxes9jUrm-)I1`!ZiA{A=ln z`HP~7rt^^aWzHe?m&jh@=SR1nCCvL+`^u+yzPk6U@^aF9Rv;%e52W#sQ_IiG zJ2j{ugA4T^BKd0L*$(gHF{OP`lAj_!`)K5rl~;c{iS;>}aS}0lc=imBca-*V-TH>k zoe0spd+Q9(?^ydcaeU6SzZjq2vG%9lG>P>id38^DzIN|Hwxf&eI_(GB7bKsc{ETg` zoVTgCuQkc%l7#l%XuezJTE+M_qDi2`(7udF{=>beyX?MA_a68sfERyV0;lFxTqJmT zKL(#iisJI;kfNa8ee_2Mmv_9uC34<=#~XOk^O77h-U{qw?0P$0Vkg_YmA$WfpI=E| zgyr%-)aU2UL7sd%{M0Ud&%}|9ghVi{o>= z+IS1nxi!!@h&9$7HzB`}^m|(KR`GG4tTyg6j2Bt0xj6S{I_%fEt1HmqE1#xx7?->MRh%(IY3@HBkA2q+_y6u0?*Ff*x&OGo^N#BM z*KPO2_v^&@;pfvlUR)2v$NRxFj~Aa`+^+l7G>=zne*bce$NT;?j~B=1QTkUN&V8oy z>#RJjwI87wHu`kvx#nDXJ=Y9h@o5pKsYQqXr#`yyo)KLqx7I$HdiP7j`Le2?N91yp z`JT95dtZI{s5>tb_nZH5hR37t1&87uUT&Jli_=#;4)~ulJYHOHOt+qj%Q!98&GU)NlQ>=e zY?{Z5^LKo_I^(F`pUg0w#@BbI~HHpAn^<#G-E z`o9K`b;dpZ*UT%vUem2d<9v3k?U4BVYQ*!7n&0B%)rjv+`*=0teMdcBY@faN%o&y^ zak)%<*i}_7^Eps;%gI>W+B?7cI20G6{OpwZocy(rAL5-?V>}b}L+YMi43F+*lNgWk zxjQQ4b9dCp=T4k<)L*C-2cGwn>4^i+`#!{5nfKD>;X7hai#TxH z9+*lT>uC1(2J~L(+}h)0e{bvYwvSf##oF)jnB!&NG4vwnq2m7D;CqD5akam9{?PQu zi}~Bj%ZvGA$FaP?dU-D@udlopRo7QDa^6;GpNn@+eR6;PUDLFVw^vxlPaNm#xVFMN zu6>Hv@!UGs5qftz^0@QAU11%6aU8E>i2m#LD^7%c8uDY@?bYp7`tBRf56s$qv2>oQ z1AAuy_7(CK=d7W;QOXz0((7znAClflJ=ZkjO0VG2NpEzX6W#OqiShFU$H-4xfp05l zIiCx64*Z(U3MakC$LH82<@`h(Se|c1?QuE3#*LgW*mmD!≶9R_y$||7GWfPdImw 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 Y?OShe`^Yt4IDM-4!~1Uj^pgkvKc!$w;Q#;t literal 79456 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 Rta|g#dkW9HxNS}L{{bG|O2hyF diff --git a/src/deps/contracts/proved_batch.yul.zbin b/src/deps/contracts/proved_batch.yul.zbin index a66ba55968f1cfaf00bdfbddb2e996326e346e27..04dc8908084c8c3d30808ca06e0f0c981a3b61d8 100644 GIT binary patch literal 65824 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 diff --git a/src/deps/contracts/proved_batch_impersonating.yul.zbin b/src/deps/contracts/proved_batch_impersonating.yul.zbin index 9ac83eb4122aa01e1fb2a1ecec11bebb98cb8c3b..c93abf5cba04c8c65c4f660c9e70aeeeac4eac96 100644 GIT binary patch literal 65120 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 L!B)3$=jHz&wHfP> diff --git a/src/fork.rs b/src/fork.rs index 69aaf089..62f9488a 100644 --- a/src/fork.rs +++ b/src/fork.rs @@ -331,6 +331,7 @@ const SUPPORTED_VERSIONS: &[ProtocolVersionId] = &[ ProtocolVersionId::Version17, ProtocolVersionId::Version18, ProtocolVersionId::Version19, + ProtocolVersionId::Version20, ]; pub fn supported_protocol_versions(version: ProtocolVersionId) -> bool { diff --git a/src/namespaces/debug.rs b/src/namespaces/debug.rs index 421154a5..5c37042e 100644 --- a/src/namespaces/debug.rs +++ b/src/namespaces/debug.rs @@ -1,576 +1,39 @@ -use crate::{ - fork::ForkSource, - node::{InMemoryNodeInner, MAX_TX_SIZE}, - utils::{create_debug_output, storage_view::StorageView, to_real_block_number}, -}; -use itertools::Itertools; use jsonrpc_core::{BoxFuture, Result}; -use multivm::interface::VmInterface; -use multivm::vm_latest::{constants::ETH_CALL_GAS_LIMIT, CallTracer, Vm}; -use once_cell::sync::OnceCell; -use std::sync::{Arc, RwLock}; -use zksync_basic_types::H256; -use zksync_core::api_server::web3::backend_jsonrpc::{ - error::into_jsrpc_error, namespaces::debug::DebugNamespaceT, -}; +use jsonrpc_derive::rpc; use zksync_types::{ - api::{BlockId, BlockNumber, DebugCall, ResultDebugCall, TracerConfig, TransactionVariant}, - l2::L2Tx, + api::{BlockId, BlockNumber, DebugCall, ResultDebugCall, TracerConfig}, transaction_request::CallRequest, - PackedEthSignature, Transaction, U64, + H256, }; -use zksync_web3_decl::error::Web3Error; - -/// Implementation of DebugNamespaceImpl -pub struct DebugNamespaceImpl { - node: Arc>>, -} -impl DebugNamespaceImpl { - /// Creates a new `Debug` instance with the given `node`. - pub fn new(node: Arc>>) -> Self { - Self { node } - } -} - -impl DebugNamespaceT - for DebugNamespaceImpl -{ +#[rpc] +pub trait DebugNamespaceT { + #[rpc(name = "debug_traceBlockByNumber")] fn trace_block_by_number( &self, block: BlockNumber, options: Option, - ) -> BoxFuture>> { - let only_top = options.is_some_and(|o| o.tracer_config.only_top_call); - let inner = Arc::clone(&self.node); - Box::pin(async move { - let inner = inner - .read() - .map_err(|_| into_jsrpc_error(Web3Error::InternalError))?; - - let block = { - let number = - to_real_block_number(block, U64::from(inner.current_miniblock)).as_u64(); - - inner - .block_hashes - .get(&number) - .and_then(|hash| inner.blocks.get(hash)) - .ok_or_else(|| { - into_jsrpc_error(Web3Error::SubmitTransactionError( - "Block not found".to_string(), - vec![], - )) - })? - }; - - let tx_hashes = block - .transactions - .iter() - .map(|tx| match tx { - TransactionVariant::Full(tx) => tx.hash, - TransactionVariant::Hash(hash) => *hash, - }) - .collect_vec(); - - let debug_calls = tx_hashes - .into_iter() - .map(|tx_hash| { - let tx = inner.tx_results.get(&tx_hash).ok_or_else(|| { - into_jsrpc_error(Web3Error::SubmitTransactionError( - "Transaction not found".to_string(), - vec![], - )) - })?; - Ok(tx.debug_info(only_top)) - }) - .collect::>>()? - .into_iter() - .map(|result| ResultDebugCall { result }) - .collect_vec(); - - Ok(debug_calls) - }) - } + ) -> BoxFuture>>; + #[rpc(name = "debug_traceBlockByHash")] fn trace_block_by_hash( &self, hash: H256, options: Option, - ) -> BoxFuture>> { - let only_top = options.is_some_and(|o| o.tracer_config.only_top_call); - let inner = Arc::clone(&self.node); - Box::pin(async move { - let inner = inner - .read() - .map_err(|_| into_jsrpc_error(Web3Error::InternalError))?; - - let block = inner.blocks.get(&hash).ok_or_else(|| { - into_jsrpc_error(Web3Error::SubmitTransactionError( - "Block not found".to_string(), - vec![], - )) - })?; - - let tx_hashes = block - .transactions - .iter() - .map(|tx| match tx { - TransactionVariant::Full(tx) => tx.hash, - TransactionVariant::Hash(hash) => *hash, - }) - .collect_vec(); - - let debug_calls = tx_hashes - .into_iter() - .map(|tx_hash| { - let tx = inner.tx_results.get(&tx_hash).ok_or_else(|| { - into_jsrpc_error(Web3Error::SubmitTransactionError( - "Transaction not found".to_string(), - vec![], - )) - })?; - Ok(tx.debug_info(only_top)) - }) - .collect::>>()? - .into_iter() - .map(|result| ResultDebugCall { result }) - .collect_vec(); - - Ok(debug_calls) - }) - } + ) -> BoxFuture>>; - /// Trace execution of a transaction. + #[rpc(name = "debug_traceCall")] fn trace_call( &self, request: CallRequest, block: Option, options: Option, - ) -> BoxFuture> { - let only_top = options.is_some_and(|o| o.tracer_config.only_top_call); - let inner = Arc::clone(&self.node); - Box::pin(async move { - if block.is_some() && !matches!(block, Some(BlockId::Number(BlockNumber::Latest))) { - return Err(jsonrpc_core::Error::invalid_params( - "tracing only supported at `latest` block", - )); - } - - let inner = inner - .read() - .map_err(|_| into_jsrpc_error(Web3Error::InternalError))?; - - let mut l2_tx = match L2Tx::from_request(request.into(), MAX_TX_SIZE) { - Ok(tx) => tx, - Err(e) => { - let error = Web3Error::SerializationError(e); - return Err(into_jsrpc_error(error)); - } - }; - - let execution_mode = multivm::interface::TxExecutionMode::EthCall; - let storage = StorageView::new(&inner.fork_storage).into_rc_ptr(); - - let bootloader_code = inner.system_contracts.contracts_for_l2_call(); - - // init vm - let (mut l1_batch_env, _block_context) = inner.create_l1_batch_env(storage.clone()); - - // update the enforced_base_fee within l1_batch_env to match the logic in zksync_core - l1_batch_env.enforced_base_fee = Some(l2_tx.common_data.fee.max_fee_per_gas.as_u64()); - let system_env = inner.create_system_env(bootloader_code.clone(), execution_mode); - let mut vm: Vm<_, HistoryDisabled> = Vm::new(l1_batch_env, system_env, storage); - - // We must inject *some* signature (otherwise bootloader code fails to generate hash). - if l2_tx.common_data.signature.is_empty() { - l2_tx.common_data.signature = - PackedEthSignature::default().serialize_packed().into(); - } - - // Match behavior of zksync_core: - // Protection against infinite-loop eth_calls and alike: - // limiting the amount of gas the call can use. - l2_tx.common_data.fee.gas_limit = ETH_CALL_GAS_LIMIT.into(); - - let tx: Transaction = l2_tx.clone().into(); - vm.push_transaction(tx); - - let call_tracer_result = Arc::new(OnceCell::default()); - let tracer = CallTracer::new(call_tracer_result.clone()).into_tracer_pointer(); - let tx_result = vm.inspect(tracer.into(), multivm::interface::VmExecutionMode::OneTx); - - let call_traces = if only_top { - vec![] - } else { - Arc::try_unwrap(call_tracer_result) - .unwrap() - .take() - .unwrap_or_default() - }; - - let debug = - create_debug_output(&l2_tx, &tx_result, call_traces).map_err(into_jsrpc_error)?; - - Ok(debug) - }) - } + ) -> BoxFuture>; + #[rpc(name = "debug_traceTransaction")] fn trace_transaction( &self, tx_hash: H256, options: Option, - ) -> BoxFuture>> { - let only_top = options.is_some_and(|o| o.tracer_config.only_top_call); - let inner = Arc::clone(&self.node); - Box::pin(async move { - let inner = inner - .read() - .map_err(|_| into_jsrpc_error(Web3Error::InternalError))?; - - Ok(inner - .tx_results - .get(&tx_hash) - .map(|tx| tx.debug_info(only_top))) - }) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::{ - deps::system_contracts::bytecode_from_slice, - http_fork_source::HttpForkSource, - node::{InMemoryNode, TransactionResult}, - testing::{self, LogBuilder}, - }; - use ethers::abi::{short_signature, AbiEncode, HumanReadableParser, ParamType, Token}; - use zksync_basic_types::{Address, Nonce, H160, U256}; - use zksync_types::{ - api::{Block, CallTracerConfig, SupportedTracers, TransactionReceipt}, - transaction_request::CallRequestBuilder, - utils::deployed_address_create, - }; - - fn deploy_test_contracts(node: &InMemoryNode) -> (Address, Address) { - let private_key = H256::repeat_byte(0xee); - let from_account = zksync_types::PackedEthSignature::address_from_private_key(&private_key) - .expect("failed generating address"); - node.set_rich_account(from_account); - - // first, deploy secondary contract - let secondary_bytecode = bytecode_from_slice( - "Secondary", - include_bytes!("deps/test-contracts/Secondary.json"), - ); - let secondary_deployed_address = deployed_address_create(from_account, U256::zero()); - testing::deploy_contract( - &node, - H256::repeat_byte(0x1), - private_key, - secondary_bytecode, - Some((U256::from(2),).encode()), - Nonce(0), - ); - - // deploy primary contract using the secondary contract address as a constructor parameter - let primary_bytecode = bytecode_from_slice( - "Primary", - include_bytes!("deps/test-contracts/Primary.json"), - ); - let primary_deployed_address = deployed_address_create(from_account, U256::one()); - testing::deploy_contract( - &node, - H256::repeat_byte(0x1), - private_key, - primary_bytecode, - Some((secondary_deployed_address).encode()), - Nonce(1), - ); - (primary_deployed_address, secondary_deployed_address) - } - - #[tokio::test] - async fn test_trace_deployed_contract() { - let node = InMemoryNode::::default(); - let debug = DebugNamespaceImpl::new(node.get_inner()); - - let (primary_deployed_address, secondary_deployed_address) = deploy_test_contracts(&node); - - // trace a call to the primary contract - let func = HumanReadableParser::parse_function("calculate(uint)").unwrap(); - let calldata = func.encode_input(&[Token::Uint(U256::from(42))]).unwrap(); - let request = CallRequestBuilder::default() - .to(primary_deployed_address) - .data(calldata.clone().into()) - .gas(80_000_000.into()) - .build(); - let trace = debug - .trace_call(request.clone(), None, None) - .await - .expect("trace call"); - - // call should not revert - assert!(trace.error.is_none()); - assert!(trace.revert_reason.is_none()); - - // check that the call was successful - let output = - ethers::abi::decode(&[ParamType::Uint(256)], &trace.output.0.as_slice()).unwrap(); - assert_eq!(output[0], Token::Uint(U256::from(84))); - - // find the call to primary contract in the trace - let contract_call = trace - .calls - .first() - .unwrap() - .calls - .last() - .unwrap() - .calls - .first() - .unwrap(); - - assert_eq!(contract_call.to, primary_deployed_address); - assert_eq!(contract_call.input, calldata.into()); - - // check that it contains a call to secondary contract - let subcall = contract_call.calls.first().unwrap(); - assert_eq!(subcall.to, secondary_deployed_address); - assert_eq!(subcall.from, primary_deployed_address); - assert_eq!(subcall.output, U256::from(84).encode().into()); - } - - #[tokio::test] - async fn test_trace_only_top() { - let node = InMemoryNode::::default(); - let debug = DebugNamespaceImpl::new(node.get_inner()); - - let (primary_deployed_address, _) = deploy_test_contracts(&node); - - // trace a call to the primary contract - let func = HumanReadableParser::parse_function("calculate(uint)").unwrap(); - let calldata = func.encode_input(&[Token::Uint(U256::from(42))]).unwrap(); - let request = CallRequestBuilder::default() - .to(primary_deployed_address) - .data(calldata.into()) - .gas(80_000_000.into()) - .build(); - - // if we trace with onlyTopCall=true, we should get only the top-level call - let trace = debug - .trace_call( - request, - None, - Some(TracerConfig { - tracer: SupportedTracers::CallTracer, - tracer_config: CallTracerConfig { - only_top_call: true, - }, - }), - ) - .await - .expect("trace call"); - // call should not revert - assert!(trace.error.is_none()); - assert!(trace.revert_reason.is_none()); - - // call should not contain any subcalls - assert!(trace.calls.is_empty()); - } - - #[tokio::test] - async fn test_trace_reverts() { - let node = InMemoryNode::::default(); - let debug = DebugNamespaceImpl::new(node.get_inner()); - - let (primary_deployed_address, _) = deploy_test_contracts(&node); - - // trace a call to the primary contract - let request = CallRequestBuilder::default() - .to(primary_deployed_address) - .data(short_signature("shouldRevert()", &[]).into()) - .gas(80_000_000.into()) - .build(); - let trace = debug - .trace_call(request, None, None) - .await - .expect("trace call"); - - // call should revert - assert!(trace.revert_reason.is_some()); - - // find the call to primary contract in the trace - let contract_call = trace - .calls - .first() - .unwrap() - .calls - .last() - .unwrap() - .calls - .first() - .unwrap(); - - // the contract subcall should have reverted - assert!(contract_call.revert_reason.is_some()); - } - - #[tokio::test] - async fn test_trace_transaction() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - { - let mut writer = inner.write().unwrap(); - writer.tx_results.insert( - H256::repeat_byte(0x1), - TransactionResult { - info: testing::default_tx_execution_info(), - receipt: TransactionReceipt { - logs: vec![LogBuilder::new() - .set_address(H160::repeat_byte(0xa1)) - .build()], - ..Default::default() - }, - debug: testing::default_tx_debug_info(), - }, - ); - } - let result = DebugNamespaceImpl::new(inner) - .trace_transaction(H256::repeat_byte(0x1), None) - .await - .unwrap() - .unwrap(); - assert_eq!(result.calls.len(), 1); - } - - #[tokio::test] - async fn test_trace_transaction_only_top() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - { - let mut writer = inner.write().unwrap(); - writer.tx_results.insert( - H256::repeat_byte(0x1), - TransactionResult { - info: testing::default_tx_execution_info(), - receipt: TransactionReceipt { - logs: vec![LogBuilder::new() - .set_address(H160::repeat_byte(0xa1)) - .build()], - ..Default::default() - }, - debug: testing::default_tx_debug_info(), - }, - ); - } - let result = DebugNamespaceImpl::new(inner) - .trace_transaction( - H256::repeat_byte(0x1), - Some(TracerConfig { - tracer: SupportedTracers::CallTracer, - tracer_config: CallTracerConfig { - only_top_call: true, - }, - }), - ) - .await - .unwrap() - .unwrap(); - assert!(result.calls.is_empty()); - } - - #[tokio::test] - async fn test_trace_transaction_not_found() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - let result = DebugNamespaceImpl::new(inner) - .trace_transaction(H256::repeat_byte(0x1), None) - .await - .unwrap(); - assert!(result.is_none()); - } - - #[tokio::test] - async fn test_trace_block_by_hash_empty() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - { - let mut writer = inner.write().unwrap(); - let block = Block::::default(); - writer.blocks.insert(H256::repeat_byte(0x1), block); - } - let result = DebugNamespaceImpl::new(inner) - .trace_block_by_hash(H256::repeat_byte(0x1), None) - .await - .unwrap(); - assert_eq!(result.len(), 0); - } - - #[tokio::test] - async fn test_trace_block_by_hash() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - { - let mut writer = inner.write().unwrap(); - let tx = zksync_types::api::Transaction::default(); - let tx_hash = tx.hash; - let mut block = Block::::default(); - block.transactions.push(TransactionVariant::Full(tx)); - writer.blocks.insert(H256::repeat_byte(0x1), block); - writer.tx_results.insert( - tx_hash, - TransactionResult { - info: testing::default_tx_execution_info(), - receipt: TransactionReceipt::default(), - debug: testing::default_tx_debug_info(), - }, - ); - } - let result = DebugNamespaceImpl::new(inner) - .trace_block_by_hash(H256::repeat_byte(0x1), None) - .await - .unwrap(); - assert_eq!(result.len(), 1); - assert_eq!(result[0].result.calls.len(), 1); - } - - #[tokio::test] - async fn test_trace_block_by_number() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - { - let mut writer = inner.write().unwrap(); - let tx = zksync_types::api::Transaction::default(); - let tx_hash = tx.hash; - let mut block = Block::::default(); - block.transactions.push(TransactionVariant::Full(tx)); - writer.blocks.insert(H256::repeat_byte(0x1), block); - writer.block_hashes.insert(0, H256::repeat_byte(0x1)); - writer.tx_results.insert( - tx_hash, - TransactionResult { - info: testing::default_tx_execution_info(), - receipt: TransactionReceipt::default(), - debug: testing::default_tx_debug_info(), - }, - ); - } - // check `latest` alias - let result = DebugNamespaceImpl::new(node.get_inner()) - .trace_block_by_number(BlockNumber::Latest, None) - .await - .unwrap(); - assert_eq!(result.len(), 1); - assert_eq!(result[0].result.calls.len(), 1); - - // check block number - let result = DebugNamespaceImpl::new(node.get_inner()) - .trace_block_by_number(BlockNumber::Number(0.into()), None) - .await - .unwrap(); - assert_eq!(result.len(), 1); - assert_eq!(result[0].result.calls.len(), 1); - } + ) -> BoxFuture>>; } diff --git a/src/namespaces/eth.rs b/src/namespaces/eth.rs new file mode 100644 index 00000000..ab7badf2 --- /dev/null +++ b/src/namespaces/eth.rs @@ -0,0 +1,165 @@ +use jsonrpc_core::{BoxFuture, Result}; +use jsonrpc_derive::rpc; +use zksync_types::{ + api::{BlockIdVariant, BlockNumber, Transaction, TransactionReceipt, TransactionVariant}, + transaction_request::CallRequest, + web3::types::{FeeHistory, Index, SyncState}, + Address, Bytes, H256, U256, U64, +}; +use zksync_web3_decl::types::{Block, Filter, FilterChanges, Log}; + +#[rpc] +pub trait EthNamespaceT { + #[rpc(name = "eth_blockNumber")] + fn get_block_number(&self) -> BoxFuture>; + + #[rpc(name = "eth_chainId")] + fn chain_id(&self) -> BoxFuture>; + + #[rpc(name = "eth_call")] + fn call(&self, req: CallRequest, block: Option) -> BoxFuture>; + + #[rpc(name = "eth_estimateGas")] + fn estimate_gas( + &self, + req: CallRequest, + _block: Option, + ) -> BoxFuture>; + + #[rpc(name = "eth_gasPrice")] + fn gas_price(&self) -> BoxFuture>; + + #[rpc(name = "eth_newFilter")] + fn new_filter(&self, filter: Filter) -> BoxFuture>; + + #[rpc(name = "eth_newBlockFilter")] + fn new_block_filter(&self) -> BoxFuture>; + + #[rpc(name = "eth_uninstallFilter")] + fn uninstall_filter(&self, idx: U256) -> BoxFuture>; + + #[rpc(name = "eth_newPendingTransactionFilter")] + fn new_pending_transaction_filter(&self) -> BoxFuture>; + + #[rpc(name = "eth_getLogs")] + fn get_logs(&self, filter: Filter) -> BoxFuture>>; + + #[rpc(name = "eth_getFilterLogs")] + fn get_filter_logs(&self, filter_index: U256) -> BoxFuture>; + + #[rpc(name = "eth_getFilterChanges")] + fn get_filter_changes(&self, filter_index: U256) -> BoxFuture>; + + #[rpc(name = "eth_getBalance")] + fn get_balance( + &self, + address: Address, + block: Option, + ) -> BoxFuture>; + + #[rpc(name = "eth_getBlockByNumber")] + fn get_block_by_number( + &self, + block_number: BlockNumber, + full_transactions: bool, + ) -> BoxFuture>>>; + + #[rpc(name = "eth_getBlockByHash")] + fn get_block_by_hash( + &self, + hash: H256, + full_transactions: bool, + ) -> BoxFuture>>>; + + #[rpc(name = "eth_getBlockTransactionCountByNumber")] + fn get_block_transaction_count_by_number( + &self, + block_number: BlockNumber, + ) -> BoxFuture>>; + + #[rpc(name = "eth_getBlockTransactionCountByHash")] + fn get_block_transaction_count_by_hash( + &self, + block_hash: H256, + ) -> BoxFuture>>; + + #[rpc(name = "eth_getCode")] + fn get_code(&self, address: Address, block: Option) + -> BoxFuture>; + + #[rpc(name = "eth_getStorageAt")] + fn get_storage( + &self, + address: Address, + idx: U256, + block: Option, + ) -> BoxFuture>; + + #[rpc(name = "eth_getTransactionCount")] + fn get_transaction_count( + &self, + address: Address, + block: Option, + ) -> BoxFuture>; + + #[rpc(name = "eth_getTransactionByHash")] + fn get_transaction_by_hash(&self, hash: H256) -> BoxFuture>>; + + #[rpc(name = "eth_getTransactionByBlockHashAndIndex")] + fn get_transaction_by_block_hash_and_index( + &self, + block_hash: H256, + index: Index, + ) -> BoxFuture>>; + + #[rpc(name = "eth_getTransactionByBlockNumberAndIndex")] + fn get_transaction_by_block_number_and_index( + &self, + block_number: BlockNumber, + index: Index, + ) -> BoxFuture>>; + + #[rpc(name = "eth_getTransactionReceipt")] + fn get_transaction_receipt(&self, hash: H256) -> BoxFuture>>; + + #[rpc(name = "eth_protocolVersion")] + fn protocol_version(&self) -> BoxFuture>; + + #[rpc(name = "eth_sendRawTransaction")] + fn send_raw_transaction(&self, tx_bytes: Bytes) -> BoxFuture>; + + #[rpc(name = "eth_syncing")] + fn syncing(&self) -> BoxFuture>; + + #[rpc(name = "eth_accounts")] + fn accounts(&self) -> BoxFuture>>; + + #[rpc(name = "eth_coinbase")] + fn coinbase(&self) -> BoxFuture>; + + #[rpc(name = "eth_getCompilers")] + fn compilers(&self) -> BoxFuture>>; + + #[rpc(name = "eth_hashrate")] + fn hashrate(&self) -> BoxFuture>; + + #[rpc(name = "eth_getUncleCountByBlockHash")] + fn get_uncle_count_by_block_hash(&self, hash: H256) -> BoxFuture>>; + + #[rpc(name = "eth_getUncleCountByBlockNumber")] + fn get_uncle_count_by_block_number( + &self, + number: BlockNumber, + ) -> BoxFuture>>; + + #[rpc(name = "eth_mining")] + fn mining(&self) -> BoxFuture>; + + #[rpc(name = "eth_feeHistory")] + fn fee_history( + &self, + block_count: U64, + newest_block: BlockNumber, + reward_percentiles: Vec, + ) -> BoxFuture>; +} diff --git a/src/namespaces/mod.rs b/src/namespaces/mod.rs index 8c359b3e..75fe8e83 100644 --- a/src/namespaces/mod.rs +++ b/src/namespaces/mod.rs @@ -1,11 +1,12 @@ mod config; +mod debug; +mod eth; mod eth_test; mod evm; mod hardhat; mod net; mod web3; - -use zksync_core::api_server::web3::backend_jsonrpc::namespaces::{debug, eth, zks}; +mod zks; pub use config::ConfigurationApiNamespaceT; pub use debug::DebugNamespaceT; diff --git a/src/namespaces/zks.rs b/src/namespaces/zks.rs new file mode 100644 index 00000000..921ba809 --- /dev/null +++ b/src/namespaces/zks.rs @@ -0,0 +1,111 @@ +use std::collections::HashMap; + +use bigdecimal::BigDecimal; +use jsonrpc_core::{BoxFuture, Result}; +use jsonrpc_derive::rpc; +use zksync_types::{ + api::{ + BlockDetails, BridgeAddresses, L1BatchDetails, L2ToL1LogProof, Proof, ProtocolVersion, + TransactionDetails, + }, + fee::Fee, + transaction_request::CallRequest, + Address, L1BatchNumber, MiniblockNumber, H256, U256, U64, +}; +use zksync_web3_decl::types::Token; + +#[rpc] +pub trait ZksNamespaceT { + #[rpc(name = "zks_estimateFee")] + fn estimate_fee(&self, req: CallRequest) -> BoxFuture>; + + #[rpc(name = "zks_estimateGasL1ToL2")] + fn estimate_gas_l1_to_l2(&self, req: CallRequest) -> BoxFuture>; + + #[rpc(name = "zks_getMainContract")] + fn get_main_contract(&self) -> BoxFuture>; + + #[rpc(name = "zks_getTestnetPaymaster")] + fn get_testnet_paymaster(&self) -> BoxFuture>>; + + #[rpc(name = "zks_getBridgeContracts")] + fn get_bridge_contracts(&self) -> BoxFuture>; + + #[rpc(name = "zks_L1ChainId")] + fn l1_chain_id(&self) -> BoxFuture>; + + #[rpc(name = "zks_getConfirmedTokens")] + fn get_confirmed_tokens(&self, from: u32, limit: u8) -> BoxFuture>>; + + #[rpc(name = "zks_getTokenPrice")] + fn get_token_price(&self, token_address: Address) -> BoxFuture>; + + #[rpc(name = "zks_getAllAccountBalances")] + fn get_all_account_balances( + &self, + address: Address, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getL2ToL1MsgProof")] + fn get_l2_to_l1_msg_proof( + &self, + block: MiniblockNumber, + sender: Address, + msg: H256, + l2_log_position: Option, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getL2ToL1LogProof")] + fn get_l2_to_l1_log_proof( + &self, + tx_hash: H256, + index: Option, + ) -> BoxFuture>>; + + #[rpc(name = "zks_L1BatchNumber")] + fn get_l1_batch_number(&self) -> BoxFuture>; + + #[rpc(name = "zks_getBlockDetails")] + fn get_block_details( + &self, + block_number: MiniblockNumber, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getL1BatchBlockRange")] + fn get_miniblock_range(&self, batch: L1BatchNumber) -> BoxFuture>>; + + #[rpc(name = "zks_getTransactionDetails")] + fn get_transaction_details(&self, hash: H256) -> BoxFuture>>; + + #[rpc(name = "zks_getRawBlockTransactions")] + fn get_raw_block_transactions( + &self, + block_number: MiniblockNumber, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getL1BatchDetails")] + fn get_l1_batch_details( + &self, + batch: L1BatchNumber, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getBytecodeByHash")] + fn get_bytecode_by_hash(&self, hash: H256) -> BoxFuture>>>; + + #[rpc(name = "zks_getL1GasPrice")] + fn get_l1_gas_price(&self) -> BoxFuture>; + + #[rpc(name = "zks_getProtocolVersion")] + fn get_protocol_version( + &self, + version_id: Option, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getProof")] + fn get_proof( + &self, + address: Address, + keys: Vec, + l1_batch_number: L1BatchNumber, + ) -> BoxFuture>; +} diff --git a/src/node/config.rs b/src/node/config.rs index 81f350ef..e9ece3ab 100644 --- a/src/node/config.rs +++ b/src/node/config.rs @@ -1,4 +1,3 @@ -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; use zksync_web3_decl::error::Web3Error; use crate::{ @@ -6,6 +5,7 @@ use crate::{ namespaces::{ConfigurationApiNamespaceT, Result}, node::InMemoryNode, observability::LogLevel, + utils::into_jsrpc_error, }; use super::{ShowCalls, ShowGasDetails, ShowStorageLogs, ShowVMDetails}; diff --git a/src/node/debug.rs b/src/node/debug.rs index 7bf11179..e6732a3e 100644 --- a/src/node/debug.rs +++ b/src/node/debug.rs @@ -8,7 +8,6 @@ use multivm::vm_latest::HistoryDisabled; use multivm::vm_latest::{constants::ETH_CALL_GAS_LIMIT, ToTracerPointer, Vm}; use zksync_basic_types::H256; -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; use zksync_types::{ api::{BlockId, BlockNumber, DebugCall, ResultDebugCall, TracerConfig, TransactionVariant}, l2::L2Tx, @@ -22,7 +21,7 @@ use crate::{ fork::ForkSource, namespaces::{DebugNamespaceT, Result, RpcResult}, node::{InMemoryNode, MAX_TX_SIZE}, - utils::{create_debug_output, to_real_block_number}, + utils::{create_debug_output, into_jsrpc_error, to_real_block_number}, }; impl DebugNamespaceT diff --git a/src/node/eth.rs b/src/node/eth.rs index dcd04006..52a69f3c 100644 --- a/src/node/eth.rs +++ b/src/node/eth.rs @@ -6,7 +6,6 @@ use itertools::Itertools; use multivm::interface::{ExecutionResult, TxExecutionMode}; use multivm::vm_latest::constants::ETH_CALL_GAS_LIMIT; use zksync_basic_types::{web3, AccountTreeId, Address, Bytes, H160, H256, U256, U64}; -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; use zksync_state::ReadStorage; use zksync_types::{ api::{Block, BlockIdVariant, BlockNumber, TransactionVariant}, @@ -28,7 +27,7 @@ use crate::{ fork::ForkSource, namespaces::{EthNamespaceT, EthTestNodeNamespaceT, RpcResult}, node::{InMemoryNode, TransactionResult, L2_GAS_PRICE, MAX_TX_SIZE, PROTOCOL_VERSION}, - utils::{self, h256_to_u64, not_implemented, IntoBoxedFuture}, + utils::{self, h256_to_u64, into_jsrpc_error, not_implemented, IntoBoxedFuture}, }; impl EthNamespaceT @@ -2001,7 +2000,7 @@ mod tests { .expect("failed fetching transaction receipt by hash") .expect("no transaction receipt"); - assert_eq!(Some(expected_block_hash), actual_tx_receipt.block_hash); + assert_eq!(expected_block_hash, actual_tx_receipt.block_hash); } #[tokio::test] @@ -2687,7 +2686,7 @@ mod tests { current_batch: inner.current_batch, current_miniblock: inner.current_miniblock, current_miniblock_hash: inner.current_miniblock_hash, - l1_gas_price: inner.l1_gas_price, + fee_input_provider: inner.fee_input_provider.clone(), tx_results: inner.tx_results.clone(), blocks: inner.blocks.clone(), block_hashes: inner.block_hashes.clone(), @@ -2717,7 +2716,10 @@ mod tests { expected_snapshot.current_miniblock_hash, actual_snapshot.current_miniblock_hash ); - assert_eq!(expected_snapshot.l1_gas_price, actual_snapshot.l1_gas_price); + assert_eq!( + expected_snapshot.fee_input_provider, + actual_snapshot.fee_input_provider + ); assert_eq!( expected_snapshot.tx_results.keys().collect_vec(), actual_snapshot.tx_results.keys().collect_vec() @@ -2791,7 +2793,7 @@ mod tests { current_batch: inner.current_batch, current_miniblock: inner.current_miniblock, current_miniblock_hash: inner.current_miniblock_hash, - l1_gas_price: inner.l1_gas_price, + fee_input_provider: inner.fee_input_provider.clone(), tx_results: inner.tx_results.clone(), blocks: inner.blocks.clone(), block_hashes: inner.block_hashes.clone(), @@ -2850,7 +2852,10 @@ mod tests { expected_snapshot.current_miniblock_hash, inner.current_miniblock_hash ); - assert_eq!(expected_snapshot.l1_gas_price, inner.l1_gas_price); + assert_eq!( + expected_snapshot.fee_input_provider, + inner.fee_input_provider + ); assert_eq!( expected_snapshot.tx_results.keys().collect_vec(), inner.tx_results.keys().collect_vec() diff --git a/src/node/evm.rs b/src/node/evm.rs index 71af8c19..f4f21a5f 100644 --- a/src/node/evm.rs +++ b/src/node/evm.rs @@ -1,12 +1,11 @@ use zksync_basic_types::U64; -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; use zksync_web3_decl::error::Web3Error; use crate::{ fork::ForkSource, namespaces::{EvmNamespaceT, RpcResult}, node::InMemoryNode, - utils::IntoBoxedFuture, + utils::{into_jsrpc_error, IntoBoxedFuture}, }; impl EvmNamespaceT diff --git a/src/node/fee_model.rs b/src/node/fee_model.rs new file mode 100644 index 00000000..f8a28aa4 --- /dev/null +++ b/src/node/fee_model.rs @@ -0,0 +1,35 @@ +use std::fmt::Debug; +use zksync_core::fee_model::BatchFeeModelInputProvider; +use zksync_types::fee_model::{FeeModelConfigV2, FeeParams, FeeParamsV2}; +use zksync_types::L1_GAS_PER_PUBDATA_BYTE; + +pub const CONFIG: FeeModelConfigV2 = FeeModelConfigV2 { + minimal_l2_gas_price: 100000000, + compute_overhead_part: 0.0, + pubdata_overhead_part: 1.0, + batch_overhead_l1_gas: 800000, + max_gas_per_batch: 200000000, + max_pubdata_per_batch: 100000, +}; + +#[derive(Debug, Clone, PartialEq)] +pub struct TestNodeFeeInputProvider { + l1_gas_price: u64, +} + +impl TestNodeFeeInputProvider { + pub fn new(l1_gas_price: u64) -> Self { + Self { l1_gas_price } + } +} + +impl BatchFeeModelInputProvider for TestNodeFeeInputProvider { + fn get_fee_model_params(&self) -> FeeParams { + // TODO: consider using old fee model for the olds blocks, when forking + FeeParams::V2(FeeParamsV2 { + config: CONFIG, + l1_gas_price: self.l1_gas_price, + l1_pubdata_price: self.l1_gas_price * L1_GAS_PER_PUBDATA_BYTE as u64, + }) + } +} diff --git a/src/node/hardhat.rs b/src/node/hardhat.rs index 23abda98..7255dd8e 100644 --- a/src/node/hardhat.rs +++ b/src/node/hardhat.rs @@ -1,12 +1,11 @@ use zksync_basic_types::{Address, U256, U64}; -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; use zksync_web3_decl::error::Web3Error; use crate::{ fork::ForkSource, namespaces::{HardhatNamespaceT, RpcResult}, node::InMemoryNode, - utils::IntoBoxedFuture, + utils::{into_jsrpc_error, IntoBoxedFuture}, }; impl HardhatNamespaceT diff --git a/src/node/in_memory.rs b/src/node/in_memory.rs index 3fa0f365..05a0aa6c 100644 --- a/src/node/in_memory.rs +++ b/src/node/in_memory.rs @@ -4,14 +4,15 @@ use crate::{ console_log::ConsoleLogHandler, deps::{storage_view::StorageView, InMemoryStorage}, filters::EthFilters, - fork::{ForkDetails, ForkSource, ForkStorage}, + fork::{block_on, ForkDetails, ForkSource, ForkStorage}, formatter, - node::storage_logs::print_storage_logs_details, + node::{ + fee_model::{TestNodeFeeInputProvider, CONFIG}, + storage_logs::print_storage_logs_details, + }, observability::Observability, system_contracts::{self, SystemContracts}, - utils::{ - adjust_l1_gas_price_for_tx, bytecode_to_factory_dep, create_debug_output, to_human_size, - }, + utils::{bytecode_to_factory_dep, create_debug_output, into_jsrpc_error, to_human_size}, }; use clap::Parser; use colored::Colorize; @@ -31,17 +32,18 @@ use multivm::{ VmExecutionResultAndLogs, VmInterface, }, vm_latest::L2Block, + VmVersion, }; use multivm::{ tracers::CallTracer, + utils::{ + adjust_pubdata_price_for_tx, derive_base_fee_and_gas_per_pubdata, derive_overhead, + get_max_gas_per_pubdata_byte, + }, vm_latest::HistoryDisabled, vm_latest::{ - constants::{BLOCK_GAS_LIMIT, BLOCK_OVERHEAD_PUBDATA, MAX_PUBDATA_PER_BLOCK}, - utils::{ - fee::derive_base_fee_and_gas_per_pubdata, - l2_blocks::load_last_l2_block, - overhead::{derive_overhead, OverheadCoefficients}, - }, + constants::{BLOCK_GAS_LIMIT, MAX_PUBDATA_PER_BLOCK}, + utils::l2_blocks::load_last_l2_block, ToTracerPointer, TracerPointer, Vm, }, }; @@ -50,7 +52,7 @@ use zksync_basic_types::{ H256, U256, U64, }; use zksync_contracts::BaseSystemContracts; -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; +use zksync_core::fee_model::BatchFeeModelInputProvider; use zksync_state::{ReadStorage, StoragePtr, WriteStorage}; use zksync_types::{ api::{Block, DebugCall, Log, TransactionReceipt, TransactionVariant}, @@ -62,8 +64,8 @@ use zksync_types::{ utils::{decompose_full_nonce, nonces_to_full_nonce, storage_key_for_eth_balance}, vm_trace::Call, PackedEthSignature, StorageKey, StorageLogQueryType, StorageValue, Transaction, - ACCOUNT_CODE_STORAGE_ADDRESS, EIP_712_TX_TYPE, MAX_GAS_PER_PUBDATA_BYTE, MAX_L2_TX_GAS_LIMIT, - SYSTEM_CONTEXT_ADDRESS, SYSTEM_CONTEXT_BLOCK_INFO_POSITION, + ACCOUNT_CODE_STORAGE_ADDRESS, MAX_L2_TX_GAS_LIMIT, SYSTEM_CONTEXT_ADDRESS, + SYSTEM_CONTEXT_BLOCK_INFO_POSITION, }; use zksync_utils::{ bytecode::{compress_bytecode, hash_bytecode}, @@ -79,10 +81,11 @@ pub const NON_FORK_FIRST_BLOCK_TIMESTAMP: u64 = 1_000; pub const TEST_NODE_NETWORK_ID: u32 = 260; /// L1 Gas Price. pub const L1_GAS_PRICE: u64 = 50_000_000_000; -/// L2 Gas Price (0.25 gwei). -pub const L2_GAS_PRICE: u64 = 250_000_000; +// TODO: for now, that's fine, as computation overhead is set to zero, but we may consider using calculated fee input everywhere. +/// L2 Gas Price (0.1 gwei). +pub const L2_GAS_PRICE: u64 = 100_000_000; /// L1 Gas Price Scale Factor for gas estimation. -pub const ESTIMATE_GAS_L1_GAS_PRICE_SCALE_FACTOR: f64 = 1.2; +pub const ESTIMATE_GAS_PRICE_SCALE_FACTOR: f64 = 1.5; /// The max possible number of gas that `eth_estimateGas` is allowed to overestimate. pub const ESTIMATE_GAS_PUBLISH_BYTE_OVERHEAD: u32 = 100; /// Acceptable gas overestimation limit. @@ -294,7 +297,8 @@ pub struct InMemoryNodeInner { pub current_miniblock: u64, /// The latest miniblock hash. pub current_miniblock_hash: H256, - pub l1_gas_price: u64, + /// The fee input provider. + pub fee_input_provider: TestNodeFeeInputProvider, // Map from transaction to details about the exeuction pub tx_results: HashMap, // Map from block hash to information about the block. @@ -364,13 +368,13 @@ impl InMemoryNodeInner { ) .new_batch(); + let fee_input_provider = self.fee_input_provider.clone(); let batch_env = L1BatchEnv { // TODO: set the previous batch hash properly (take from fork, when forking, and from local storage, when this is not the first block). previous_batch_hash: None, number: L1BatchNumber::from(block_ctx.batch), timestamp: block_ctx.timestamp, - l1_gas_price: self.l1_gas_price, - fair_l2_gas_price: L2_GAS_PRICE, + fee_input: block_on(async move { fee_input_provider.get_batch_fee_input().await }), fee_account: H160::zero(), enforced_base_fee: None, first_l2_block: L2BlockEnv { @@ -427,7 +431,8 @@ impl InMemoryNodeInner { if let Some(ref mut eip712_meta) = request_with_gas_per_pubdata_overridden.eip712_meta { if eip712_meta.gas_per_pubdata == U256::zero() { - eip712_meta.gas_per_pubdata = MAX_GAS_PER_PUBDATA_BYTE.into(); + eip712_meta.gas_per_pubdata = + get_max_gas_per_pubdata_byte(VmVersion::latest()).into(); } } @@ -445,24 +450,29 @@ impl InMemoryNodeInner { }; let tx: Transaction = l2_tx.clone().into(); - let fair_l2_gas_price = L2_GAS_PRICE; - // Calculate Adjusted L1 Price - let l1_gas_price = { - let current_l1_gas_price = - ((self.l1_gas_price as f64) * ESTIMATE_GAS_L1_GAS_PRICE_SCALE_FACTOR) as u64; + let fee_input_provider = self.fee_input_provider.clone(); + let fee_input = { + let fee_input = block_on(async move { + fee_input_provider + .get_batch_fee_input_scaled( + ESTIMATE_GAS_PRICE_SCALE_FACTOR, + ESTIMATE_GAS_PRICE_SCALE_FACTOR, + ) + .await + }); // In order for execution to pass smoothly, we need to ensure that block's required gasPerPubdata will be // <= to the one in the transaction itself. - adjust_l1_gas_price_for_tx( - current_l1_gas_price, - L2_GAS_PRICE, + adjust_pubdata_price_for_tx( + fee_input, tx.gas_per_pubdata_byte_limit(), + VmVersion::latest(), ) }; let (base_fee, gas_per_pubdata_byte) = - derive_base_fee_and_gas_per_pubdata(l1_gas_price, fair_l2_gas_price); + derive_base_fee_and_gas_per_pubdata(fee_input, VmVersion::latest()); // Properly format signature if l2_tx.common_data.signature.is_empty() { @@ -476,7 +486,8 @@ impl InMemoryNodeInner { l2_tx.common_data.transaction_type = TransactionType::EIP712Transaction; } - l2_tx.common_data.fee.gas_per_pubdata_limit = MAX_GAS_PER_PUBDATA_BYTE.into(); + l2_tx.common_data.fee.gas_per_pubdata_limit = + get_max_gas_per_pubdata_byte(VmVersion::latest()).into(); l2_tx.common_data.fee.max_fee_per_gas = base_fee.into(); l2_tx.common_data.fee.max_priority_fee_per_gas = base_fee.into(); @@ -517,7 +528,7 @@ impl InMemoryNodeInner { let execution_mode = TxExecutionMode::EstimateFee; let (mut batch_env, _) = self.create_l1_batch_env(storage.clone()); - batch_env.l1_gas_price = l1_gas_price; + batch_env.fee_input = fee_input; let impersonating = self .impersonated_accounts .contains(&l2_tx.common_data.initiator_address); @@ -549,7 +560,6 @@ impl InMemoryNodeInner { l2_tx.clone(), gas_per_pubdata_byte, try_gas_limit, - l1_gas_price, batch_env.clone(), system_env.clone(), &self.fork_storage, @@ -579,18 +589,17 @@ impl InMemoryNodeInner { l2_tx.clone(), gas_per_pubdata_byte, suggested_gas_limit, - l1_gas_price, batch_env, system_env, &self.fork_storage, ); - let coefficients = OverheadCoefficients::from_tx_type(EIP_712_TX_TYPE); let overhead: u32 = derive_overhead( suggested_gas_limit, gas_per_pubdata_byte as u32, tx.encoding_len(), - coefficients, + l2_tx.common_data.transaction_type as u8, + VmVersion::latest(), ); match estimate_gas_result.result { @@ -699,23 +708,20 @@ impl InMemoryNodeInner { mut l2_tx: L2Tx, gas_per_pubdata_byte: u64, tx_gas_limit: u32, - l1_gas_price: u64, - mut batch_env: L1BatchEnv, + batch_env: L1BatchEnv, system_env: SystemEnv, fork_storage: &ForkStorage, ) -> VmExecutionResultAndLogs { let tx: Transaction = l2_tx.clone().into(); - let l1_gas_price = - adjust_l1_gas_price_for_tx(l1_gas_price, L2_GAS_PRICE, tx.gas_per_pubdata_byte_limit()); - let coefficients = OverheadCoefficients::from_tx_type(EIP_712_TX_TYPE); // Set gas_limit for transaction let gas_limit_with_overhead = tx_gas_limit + derive_overhead( tx_gas_limit, gas_per_pubdata_byte as u32, tx.encoding_len(), - coefficients, + l2_tx.common_data.transaction_type as u8, + VmVersion::latest(), ); l2_tx.common_data.fee.gas_limit = gas_limit_with_overhead.into(); @@ -741,8 +747,6 @@ impl InMemoryNodeInner { .borrow_mut() .set_value(balance_key, u256_to_h256(current_balance)); - batch_env.l1_gas_price = l1_gas_price; - let mut vm: Vm<_, HistoryDisabled> = Vm::new(batch_env, system_env, storage.clone()); let tx: Transaction = l2_tx.into(); @@ -801,7 +805,7 @@ impl InMemoryNodeInner { current_batch: self.current_batch, current_miniblock: self.current_miniblock, current_miniblock_hash: self.current_miniblock_hash, - l1_gas_price: self.l1_gas_price, + fee_input_provider: self.fee_input_provider.clone(), tx_results: self.tx_results.clone(), blocks: self.blocks.clone(), block_hashes: self.block_hashes.clone(), @@ -827,7 +831,7 @@ impl InMemoryNodeInner { self.current_batch = snapshot.current_batch; self.current_miniblock = snapshot.current_miniblock; self.current_miniblock_hash = snapshot.current_miniblock_hash; - self.l1_gas_price = snapshot.l1_gas_price; + self.fee_input_provider = snapshot.fee_input_provider; self.tx_results = snapshot.tx_results; self.blocks = snapshot.blocks; self.block_hashes = snapshot.block_hashes; @@ -851,7 +855,9 @@ pub struct Snapshot { pub(crate) current_batch: u32, pub(crate) current_miniblock: u64, pub(crate) current_miniblock_hash: H256, - pub(crate) l1_gas_price: u64, + // Currently, the fee is static and the fee input provider is immutable during the test node life cycle, + // but in the future, it may contain some mutable state. + pub(crate) fee_input_provider: TestNodeFeeInputProvider, pub(crate) tx_results: HashMap, pub(crate) blocks: HashMap>, pub(crate) block_hashes: HashMap, @@ -920,7 +926,7 @@ impl InMemoryNode { current_batch: f.l1_block.0, current_miniblock: f.l2_miniblock, current_miniblock_hash: f.l2_miniblock_hash, - l1_gas_price: f.l1_gas_price, + fee_input_provider: TestNodeFeeInputProvider::new(f.l1_gas_price), tx_results: Default::default(), blocks, block_hashes, @@ -953,7 +959,7 @@ impl InMemoryNode { current_batch: 0, current_miniblock: 0, current_miniblock_hash: block_hash, - l1_gas_price: L1_GAS_PRICE, + fee_input_provider: TestNodeFeeInputProvider::new(L1_GAS_PRICE), tx_results: Default::default(), blocks, block_hashes, @@ -1217,23 +1223,11 @@ impl InMemoryNode { ) ); - let publish_block_l1_bytes = BLOCK_OVERHEAD_PUBDATA; - tracing::info!( - "Publishing full block costs the operator up to: {}, where {} is due to {} bytes published to L1", - to_human_size(bootloader_debug.total_overhead_for_block), - to_human_size(bootloader_debug.gas_per_pubdata * publish_block_l1_bytes), - to_human_size(publish_block_l1_bytes.into()) - ); - tracing::info!("Your transaction has contributed to filling up the block in the following way (we take the max contribution as the cost):"); tracing::info!( - " Circuits overhead:{:>15} ({}% of the full block: {})", - to_human_size(bootloader_debug.overhead_for_circuits), - to_human_size( - bootloader_debug.overhead_for_circuits * 100 - / bootloader_debug.total_overhead_for_block - ), - to_human_size(bootloader_debug.total_overhead_for_block) + "Publishing full block costs the operator around {} l2 gas", + to_human_size(bootloader_debug.gas_per_pubdata * CONFIG.batch_overhead_l1_gas), ); + tracing::info!("Your transaction has contributed to filling up the block in the following way (we take the max contribution as the cost):"); tracing::info!( " Length overhead: {:>15}", to_human_size(bootloader_debug.overhead_for_length) @@ -1242,6 +1236,12 @@ impl InMemoryNode { " Slot overhead: {:>15}", to_human_size(bootloader_debug.overhead_for_slot) ); + tracing::info!("Also, with every spent gas unit you potentially can pay some additional amount of gas for filling up the block by execution limits"); + tracing::info!( + "This overhead is included in the gas price, although now it's set to zero" + ); + tracing::info!("And with every pubdata byte, you potentially can pay an additional amount of gas for filling up the block by pubdata limit"); + tracing::info!("This overhead is included in the `gas_per_pubdata` price"); Ok(()) } else { Err("Booloader tracer didn't finish.".to_owned()) @@ -1288,7 +1288,7 @@ impl InMemoryNode { /// * [InMemoryNodeInner::current_batch] /// * [InMemoryNodeInner::current_miniblock] /// * [InMemoryNodeInner::current_miniblock_hash] - /// * [InMemoryNodeInner::l1_gas_price] + /// * [InMemoryNodeInner::fee_input_provider] /// /// And must _NEVER_ rely on data updated in [InMemoryNodeInner] during previous runs: /// (if used, they must never panic and/or have meaningful defaults) @@ -1557,13 +1557,13 @@ impl InMemoryNode { let tx_receipt = TransactionReceipt { transaction_hash: tx_hash, transaction_index: U64::from(0), - block_hash: Some(block.hash), - block_number: Some(block.number), + block_hash: block.hash, + block_number: block.number, l1_batch_tx_index: None, l1_batch_number: block.l1_batch_number, from: l2_tx.initiator_account(), to: Some(l2_tx.recipient_account()), - root: Some(H256::zero()), + root: H256::zero(), cumulative_gas_used: Default::default(), gas_used: Some(l2_tx.common_data.fee.gas_limit - result.refunds.gas_refunded), contract_address: contract_address_from_tx_result(&result), @@ -1588,11 +1588,11 @@ impl InMemoryNode { }) .collect(), l2_to_l1_logs: vec![], - status: Some(if result.result.is_failed() { + status: if result.result.is_failed() { U64::from(0) } else { U64::from(1) - }), + }, effective_gas_price: Some(L2_GAS_PRICE.into()), ..Default::default() }; @@ -1745,7 +1745,7 @@ mod tests { async fn test_run_l2_tx_validates_tx_max_fee_per_gas_too_low() { let node = InMemoryNode::::default(); let tx = testing::TransactionBuilder::new() - .set_max_fee_per_gas(U256::from(250_000_000 - 1)) + .set_max_fee_per_gas(U256::from(L2_GAS_PRICE - 1)) .build(); node.set_rich_account(tx.common_data.initiator_address); diff --git a/src/node/in_memory_ext.rs b/src/node/in_memory_ext.rs index 90e5395b..279b58cd 100644 --- a/src/node/in_memory_ext.rs +++ b/src/node/in_memory_ext.rs @@ -323,10 +323,10 @@ impl InMemoryNo #[cfg(test)] mod tests { use super::*; + use crate::namespaces::EthNamespaceT; use crate::{http_fork_source::HttpForkSource, node::InMemoryNode}; use std::str::FromStr; use zksync_basic_types::{Nonce, H256}; - use zksync_core::api_server::web3::backend_jsonrpc::namespaces::eth::EthNamespaceT; use zksync_types::{api::BlockNumber, fee::Fee, l2::L2Tx, PackedEthSignature}; #[tokio::test] diff --git a/src/node/mod.rs b/src/node/mod.rs index eef4206f..b2dab7c5 100644 --- a/src/node/mod.rs +++ b/src/node/mod.rs @@ -4,6 +4,7 @@ mod config; mod debug; mod eth; mod evm; +mod fee_model; mod hardhat; mod in_memory; mod in_memory_ext; diff --git a/src/node/zks.rs b/src/node/zks.rs index 4c3834c4..7b83b540 100644 --- a/src/node/zks.rs +++ b/src/node/zks.rs @@ -4,7 +4,6 @@ use bigdecimal::BigDecimal; use colored::Colorize; use futures::FutureExt; use zksync_basic_types::{AccountTreeId, Address, L1BatchNumber, MiniblockNumber, H256, U256}; -use zksync_core::api_server::web3::backend_jsonrpc::error::{internal_error, into_jsrpc_error}; use zksync_state::ReadStorage; use zksync_types::{ api::{ @@ -22,7 +21,10 @@ use crate::{ fork::ForkSource, namespaces::{RpcResult, ZksNamespaceT}, node::{InMemoryNode, TransactionResult, L2_GAS_PRICE}, - utils::{not_implemented, utc_datetime_from_epoch_ms, IntoBoxedFuture}, + utils::{ + internal_error, into_jsrpc_error, not_implemented, utc_datetime_from_epoch_ms, + IntoBoxedFuture, + }, }; impl ZksNamespaceT @@ -552,10 +554,10 @@ mod tests { let result = node.estimate_fee(mock_request).await.unwrap(); - assert_eq!(result.gas_limit, U256::from(746532)); - assert_eq!(result.max_fee_per_gas, U256::from(250000000)); + assert_eq!(result.gas_limit, U256::from(1784965)); + assert_eq!(result.max_fee_per_gas, U256::from(100000000)); assert_eq!(result.max_priority_fee_per_gas, U256::from(0)); - assert_eq!(result.gas_per_pubdata_limit, U256::from(4080)); + assert_eq!(result.gas_per_pubdata_limit, U256::from(18750)); } #[tokio::test] diff --git a/src/system_contracts.rs b/src/system_contracts.rs index b1409727..1cdeed13 100644 --- a/src/system_contracts.rs +++ b/src/system_contracts.rs @@ -1,6 +1,5 @@ use multivm::interface::TxExecutionMode; use zksync_contracts::{ - read_playground_batch_bootloader_bytecode, read_proved_batch_bootloader_bytecode, read_sys_contract_bytecode, read_zbin_bytecode, BaseSystemContracts, ContractLanguage, SystemContractCode, }; @@ -130,7 +129,9 @@ pub fn playground(options: &Options) -> BaseSystemContracts { Options::BuiltIn | Options::BuiltInWithoutSecurity => { include_bytes!("deps/contracts/playground_batch.yul.zbin").to_vec() } - Options::Local => read_playground_batch_bootloader_bytecode(), + Options::Local => read_zbin_bytecode( + "etc/system-contracts/bootloader/build/artifacts/playground_batch.yul.zbin", + ), }; bsc_load_with_bootloader(bootloader_bytecode, options) @@ -151,8 +152,9 @@ pub fn fee_estimate_contracts(options: &Options) -> BaseSystemContracts { Options::BuiltIn | Options::BuiltInWithoutSecurity => { include_bytes!("deps/contracts/fee_estimate.yul.zbin").to_vec() } - Options::Local => - read_zbin_bytecode("etc/system-contracts/bootloader/build/artifacts/fee_estimate.yul/fee_estimate.yul.zbin") + Options::Local => read_zbin_bytecode( + "etc/system-contracts/bootloader/build/artifacts/fee_estimate.yul.zbin", + ), }; bsc_load_with_bootloader(bootloader_bytecode, options) @@ -176,7 +178,9 @@ pub fn baseline_contracts(options: &Options) -> BaseSystemContracts { Options::BuiltIn | Options::BuiltInWithoutSecurity => { include_bytes!("deps/contracts/proved_batch.yul.zbin").to_vec() } - Options::Local => read_proved_batch_bootloader_bytecode(), + Options::Local => read_zbin_bytecode( + "contracts/system-contracts/bootloader/build/artifacts/proved_batch.yul.zbin", + ), }; bsc_load_with_bootloader(bootloader_bytecode, options) } @@ -187,7 +191,9 @@ pub fn baseline_impersonating_contracts(options: &Options) -> BaseSystemContract include_bytes!("deps/contracts/proved_batch_impersonating.yul.zbin").to_vec() } // Account impersonating is not supported with the local contracts - Options::Local => read_proved_batch_bootloader_bytecode(), + Options::Local => read_zbin_bytecode( + "contracts/system-contracts/bootloader/build/artifacts/proved_batch.yul.zbin", + ), }; bsc_load_with_bootloader(bootloader_bytecode, options) } diff --git a/src/utils.rs b/src/utils.rs index 197ff03d..7c6f2fec 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,12 +1,14 @@ use std::collections::HashMap; use std::convert::TryInto; +use std::fmt; use std::pin::Pin; use chrono::{DateTime, Utc}; use futures::Future; +use jsonrpc_core::{Error, ErrorCode}; use multivm::interface::{ExecutionResult, VmExecutionResultAndLogs, VmInterface}; use multivm::vm_latest::HistoryDisabled; -use multivm::vm_latest::{utils::fee::derive_base_fee_and_gas_per_pubdata, Vm}; +use multivm::vm_latest::Vm; use zksync_basic_types::{H256, U256, U64}; use zksync_state::WriteStorage; use zksync_types::api::{BlockNumber, DebugCall, DebugCallType}; @@ -34,38 +36,6 @@ where { } -/// Adjusts the L1 gas price for a transaction based on the current pubdata price and the fair L2 gas price. -/// If the current pubdata price is small enough, returns the original L1 gas price. -/// Otherwise, calculates a new L1 gas price based on the fair L2 gas price and the transaction gas per pubdata limit. -/// -/// # Arguments -/// -/// * `l1_gas_price` - The original L1 gas price. -/// * `fair_l2_gas_price` - The fair L2 gas price. -/// * `tx_gas_per_pubdata_limit` - The transaction gas per pubdata limit. -/// -/// # Returns -/// -/// The adjusted L1 gas price. -pub fn adjust_l1_gas_price_for_tx( - l1_gas_price: u64, - fair_l2_gas_price: u64, - tx_gas_per_pubdata_limit: U256, -) -> u64 { - let (_, current_pubdata_price) = - derive_base_fee_and_gas_per_pubdata(l1_gas_price, fair_l2_gas_price); - if U256::from(current_pubdata_price) <= tx_gas_per_pubdata_limit { - // The current pubdata price is small enough - l1_gas_price - } else { - let l1_gas_price = U256::from(fair_l2_gas_price) - * (tx_gas_per_pubdata_limit - U256::from(1u32)) - / U256::from(17); - - l1_gas_price.as_u64() - } -} - /// Takes long integers and returns them in human friendly format with "_". /// For example: 12_334_093 pub fn to_human_size(input: U256) -> String { @@ -259,6 +229,44 @@ pub fn utc_datetime_from_epoch_ms(millis: u64) -> DateTime { DateTime::::from_timestamp(secs as i64, nanos as u32).expect("valid timestamp") } +pub fn into_jsrpc_error(err: Web3Error) -> Error { + Error { + code: match err { + Web3Error::InternalError | Web3Error::NotImplemented => ErrorCode::InternalError, + Web3Error::NoBlock + | Web3Error::PrunedBlock(_) + | Web3Error::PrunedL1Batch(_) + | Web3Error::NoSuchFunction + | Web3Error::RLPError(_) + | Web3Error::InvalidTransactionData(_) + | Web3Error::TooManyTopics + | Web3Error::FilterNotFound + | Web3Error::InvalidFeeParams(_) + | Web3Error::LogsLimitExceeded(_, _, _) + | Web3Error::InvalidFilterBlockHash => ErrorCode::InvalidParams, + Web3Error::SubmitTransactionError(_, _) | Web3Error::SerializationError(_) => 3.into(), + Web3Error::PubSubTimeout => 4.into(), + Web3Error::RequestTimeout => 5.into(), + Web3Error::TreeApiUnavailable => 6.into(), + }, + message: match err { + Web3Error::SubmitTransactionError(_, _) => err.to_string(), + _ => err.to_string(), + }, + data: match err { + Web3Error::SubmitTransactionError(_, data) => { + Some(format!("0x{}", hex::encode(data)).into()) + } + _ => None, + }, + } +} + +pub fn internal_error(method_name: &'static str, error: impl fmt::Display) -> Web3Error { + tracing::error!("Internal error in method {method_name}: {error}"); + Web3Error::InternalError +} + #[cfg(test)] mod tests { use zksync_basic_types::{H256, U256};