diff --git a/.github/workflows/actions/use-nodes/README.md b/.github/workflows/actions/use-nodes/README.md new file mode 100644 index 0000000000..d78115a46f --- /dev/null +++ b/.github/workflows/actions/use-nodes/README.md @@ -0,0 +1,3 @@ +# use-nodes + +This action downloads the substrate and polkadot binaries produced from the `build-nodes` workflow and puts them into the `$PATH`. \ No newline at end of file diff --git a/.github/workflows/actions/use-nodes/action.yml b/.github/workflows/actions/use-nodes/action.yml new file mode 100644 index 0000000000..afbfe7584d --- /dev/null +++ b/.github/workflows/actions/use-nodes/action.yml @@ -0,0 +1,33 @@ +name: Use substrate and polkadot binaries +description: Downloads and configures the substrate and polkadot binaries built with `build-nodes` +runs: + using: composite + steps: + - name: Download substrate-node binary + id: download-substrate-binary + uses: dawidd6/action-download-artifact@268677152d06ba59fcec7a7f0b5d961b6ccd7e1e # v2.28.0 + with: + workflow: build-nodes.yml + name: nightly-substrate-binary + + - name: Download polkadot binary + id: download-polkadot-binary + uses: dawidd6/action-download-artifact@268677152d06ba59fcec7a7f0b5d961b6ccd7e1e # v2.28.0 + with: + workflow: build-nodes.yml + name: nightly-polkadot-binary + + - name: Prepare binaries + shell: bash + run: | + chmod u+x ./substrate-node + chmod u+x ./polkadot + chmod u+x ./polkadot-execute-worker + chmod u+x ./polkadot-prepare-worker + ./substrate-node --version + ./polkadot --version + mkdir -p ~/.local/bin + cp ./substrate-node ~/.local/bin + cp ./polkadot ~/.local/bin + cp ./polkadot-execute-worker ~/.local/bin + cp ./polkadot-prepare-worker ~/.local/bin diff --git a/.github/workflows/actions/use-substrate/README.md b/.github/workflows/actions/use-substrate/README.md deleted file mode 100644 index 71f0a55fbf..0000000000 --- a/.github/workflows/actions/use-substrate/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# use-substrate - -This action downloads the substrate binary produced from the `build-substrate` workflow and puts it into the `$PATH`. \ No newline at end of file diff --git a/.github/workflows/actions/use-substrate/action.yml b/.github/workflows/actions/use-substrate/action.yml deleted file mode 100644 index b3bffcd314..0000000000 --- a/.github/workflows/actions/use-substrate/action.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Use substrate binary -description: Downloads and configures the substrate binary built with build-substrate -runs: - using: composite - steps: - - name: Download substrate-node binary - id: download-artifact - uses: dawidd6/action-download-artifact@268677152d06ba59fcec7a7f0b5d961b6ccd7e1e # v2.28.0 - with: - workflow: build-substrate.yml - name: nightly-substrate-binary - - - name: Prepare substrate-node binary - shell: bash - run: | - chmod u+x ./substrate-node - ./substrate-node --version - mkdir -p ~/.local/bin - cp ./substrate-node ~/.local/bin diff --git a/.github/workflows/build-substrate.yml b/.github/workflows/build-nodes.yml similarity index 65% rename from .github/workflows/build-substrate.yml rename to .github/workflows/build-nodes.yml index 4cadcc7200..045355e8ea 100644 --- a/.github/workflows/build-substrate.yml +++ b/.github/workflows/build-nodes.yml @@ -1,4 +1,4 @@ -name: Build Substrate Binary +name: Build Substrate and Polkadot Binaries on: # Allow it to be manually ran to rebuild binary when needed: @@ -9,7 +9,7 @@ on: jobs: tests: - name: Build Substrate + name: Build Substrate and Polkadot Binaries runs-on: ubuntu-latest-16-cores steps: - name: checkout polkadot-sdk @@ -42,3 +42,20 @@ jobs: path: target/release/substrate-node retention-days: 2 if-no-files-found: error + + - name: build polkadot binary + uses: actions-rs/cargo@v1 + with: + command: build + args: --release --manifest-path polkadot/Cargo.toml + + - name: upload polkadot binary + uses: actions/upload-artifact@v3 + with: + name: nightly-polkadot-binary + path: | + target/release/polkadot + target/release/polkadot-execute-worker + target/release/polkadot-prepare-worker + retention-days: 2 + if-no-files-found: error diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 2add781112..e19296d1da 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -16,8 +16,8 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index fdfc639a35..1ae0289609 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -56,8 +56,8 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1 @@ -88,8 +88,8 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1 @@ -120,8 +120,8 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1 @@ -151,8 +151,8 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1 @@ -240,8 +240,8 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1 @@ -274,8 +274,8 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1 @@ -308,8 +308,8 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1 @@ -342,8 +342,8 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1 @@ -388,8 +388,8 @@ jobs: - name: Rust Cache uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3 - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Run subxt WASM tests run: | diff --git a/.github/workflows/update-artifacts.yml b/.github/workflows/update-artifacts.yml index fc60c801f6..a8f4d03812 100644 --- a/.github/workflows/update-artifacts.yml +++ b/.github/workflows/update-artifacts.yml @@ -21,8 +21,8 @@ jobs: uses: actions/checkout@v4 # We run this (up-to-date) node locally to fetch metadata from it for the artifacts - - name: Use substrate-node binary - uses: ./.github/workflows/actions/use-substrate + - name: Use substrate and polkadot node binaries + uses: ./.github/workflows/actions/use-nodes - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1 diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index 984506f6bc..0b5bec371c 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -32,7 +32,9 @@ "/dns/dot-bootnode.stakeworld.io/tcp/30311/ws/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg", "/dns/dot-bootnode.stakeworld.io/tcp/30312/wss/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg", "/dns/dot14.rotko.net/tcp/35214/wss/p2p/12D3KooWPyEvPEXghnMC67Gff6PuZiSvfx3fmziKiPZcGStZ5xff", - "/dns/dot14.rotko.net/tcp/33214/p2p/12D3KooWPyEvPEXghnMC67Gff6PuZiSvfx3fmziKiPZcGStZ5xff" + "/dns/dot14.rotko.net/tcp/33214/p2p/12D3KooWPyEvPEXghnMC67Gff6PuZiSvfx3fmziKiPZcGStZ5xff", + "/dns/ibp-boot-polkadot.luckyfriday.io/tcp/30333/p2p/12D3KooWEjk6QXrZJ26fLpaajisJGHiz6WiQsR8k7mkM9GmWKnRZ", + "/dns/ibp-boot-polkadot.luckyfriday.io/tcp/30334/wss/p2p/12D3KooWEjk6QXrZJ26fLpaajisJGHiz6WiQsR8k7mkM9GmWKnRZ" ], "chainType": "Live", "forkBlocks": null, @@ -41,10 +43,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x044736295f5ace57cb8f84fd667e8ed439db12f470d45736d046f67f54bccaada2b69c16010153bae41000000000b3c3e41000000000046646627e2646c3b728990fc968ec647c2170e66b55fbe48365e54557ae43756916a6160101b3c3e4100000000013cde41000000000086441c5d73eef491062ed18d31770e3f8a95eba0a9e78b407d28c706c6f06332775af16010113cde4100000000073d6e41000000000007494065a1f61226b66736add1b00a214e14611c3f78e1ab4d3e0d9c69ae732f875af16010113cde4100000000073d6e410000000000000104736295f5ace57cb8f84fd667e8ed439db12f470d45736d046f67f54bccaada2b69c160101da1d00000000000053bae410000000006009000000000000a50474a0fc84f72a4a9b8493379b7dfc59ca58a261a2e94997600d14b6b444c1475901000000000000009c40155989f6072e82caba245d7db7e40a60f866b403257976b89aba6be2b55b010000000000000014b0a3a620f70ada506d6ef1b7ab099219f2f05689523af7eebc81f9ba258e6001000000000000007067d4c5b492b11e2052a2bb0b4f729a52b3667afbca7dfefa863011254b5272010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b92001000000000000003ae9dfa8b24faaf16407328ff38a89b25fc7c673c44f9de3de0c011233d4226d01000000000000009e47382505cd1a803bdbe7803d36a61413e58697bd9396ce1607c89a48d1e051010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000000c78c9dfc0033ff87657c56b7ab8cec4d1249be2de18729f743f385343af0f160100000000000000002e496e564f088a075525d2f9155aadd1a7eb017fa36f9e16096e9db7e169330100000000000000ae40860237c8f606dfb6974046eaa6b6b96f8d0aef56fbe3ce4865f66646bd260100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000c48c594bb4e173544a0379055b65d995af53256f653d04f2cf4fdf8f3548943901000000000000003a80d898638dccd4aaa472e7948e7394969cc443335c494159948915c097c036010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e477588789720100000000000000466c0e97d043a4b0f4c3ac4849e11f901e9b31b28f8b3e40b7cdb0ba7f77480801000000000000002049288b4dbfb741109778c602f9308daf2e31b3b66e9aa550065e73c6787d7c0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae6036820010000000000000078c88041bbca9b2bebd62fde7c46f4dc5e55d8877a113d063a6b525dfd6f7f2a01000000000000002e85d3d2c07aaf1c0a5f63f544c34b87cfa90a98c4f6167e86cee0b74a20cb120100000000000000723f3865d97a772459da8942cbb4757164f1fe7485cbcefb4b206e157ee5ed0201000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b01000000000000001822493200c35242a149070784dca5e7012a8a52b61cd218ec7d65e469e8cc56010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000d8f30bc2ee88e69f60d0278998414c80f4a130b8e1738e873bcd14ef31e58d36010000000000000042e377034ce6b2a582bfd66c465252ab10ce790e4f0d3bbe99a42ff86b29965c01000000000000000e164f314984e9a172a3a1526d853ff70bd11f3c596f17accbbebe2f7820833c01000000000000007e91ca522b14cbb71b45348c699b7d65c3198516ee771079b672ee3d7cfc577501000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b74010000000000000098faca5e78664fd082bf47f0079de33a5021415c8f5f912941e651a0b7071d1f0100000000000000ca6e63cec4c0801ecd740073da08be68b9cf4c7ff76b740fb6a522a63e838b5a010000000000000042e7851b82d8b7722b9eeb5eead57b21bf533fd25acb10542a52889376fc3920010000000000000028ce9c093ac772f56acb8dfe8b33a3966d4b8699bd41814117352d397195bd5f010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc19010000000000000012a64d79e44f1adb33c85c4f2bdfcd8d8b38a34d984604f39289c9a7624a442d0100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a670100000000000000e297620b731b4958e3c6aa06611c6aa5a45f7e116362d64954a0a330d2a98f330100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000000e5e5f8e89cd8d58ef83abddd3d1c2079691dec4f6965af70436e84411c31f3901000000000000007c21799f6143fa837a8c18bebe3368d60f4e009b114f61490b54e6344034040d0100000000000000e2f4efaa91da8465ac7d109cd80be5c02b9ba7a0603ff372cd77824de17f6c4201000000000000000ef6f09a9e310abb5c57dd7050a94d56d766772b80789b997cbb40f3b40f625d0100000000000000a88864a0dc9e292aa7cc8eddaa8dd8b6be2a4bc7e8f290023c6604e5c4ad1a7a0100000000000000dc68569b46a09aebabe8fc4452e293fac635e4a2889739809b32e4e2303e3f71010000000000000034ffee048e511f4187a6f40339650ec60a3d99ac5a1158ae162c5729b59d51740100000000000000be7c58318c49ff328d53a6d67830a8a046a41f5124824d3ce2e72cc9965ef57e0100000000000000b06e3ee1ea6420fb73ebd502988420f51b977a83074e1aa5daf0121f4a8b6b1e01000000000000003843abe933fa3ce63f3a5e422e13ec05dc9c0e8f150b93a0fa97f1b193cfba2d01000000000000009cdd57a06bd22d104d539527a19033620becff73dd267f0c2f9f13bc37b0d32c0100000000000000e020b5e946e4c6b0603ceac71b44c330fa7d9cb3e79791ebe1e16bedbb9c71000100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf7101000000000000005a63824687de4f60534ee18a430396b95263f75a077655c751bc2045ca2ec84d010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000f23d1b22d1b03c9fb6eb203c85761fe429a60c38d6591d215e873d62f5d2e4010100000000000000283a77cab50b96f99a8e8287c1488ebbcf31fc3daa953ffa99ac16db982f1e1201000000000000007c3526dc5579f1ef841101b573c655c20f4346fa4a6b0b6ed773d147c3ad6d7f0100000000000000ee579514d7f544fc9fb8d6383ed7d109ee98a411bb4b0b45b9354b0f73fed9720100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d120010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b640100000000000000ec56243ac035f65b377444e20bc8fa7e3e75242a59b5ffa5f44270f451315f2b01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e660100000000000000c0e36251f9ce24d6fe429ecf14bc9599285e3e27c0a541d5ac0ad1902d7ad614010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000005620922a6765fd47abc96615ef5b8b8575f18aaf8507f6afb86129bc1080994f0100000000000000b4b145ce385b4a3d83f2daac46a61874f80e58c468dd624acc09a558be02c27d0100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a010000000000000072183c2429e4966be5cb14c9cb84d6e4092b4e55d8ebe2534cbfa179b6f85325010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa190100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c360100000000000000ae272f5ae4e197a1fc8e670d3aa7bcab325a39d1653b5440bb7593788d0526280100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d87081320100000000000000421f3fea780f04810915479b2b72ba55591d1db37a425cae170548a50127f83001000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000d08dade453078ef481107714d602bafaa5f1247ec053c3fb62fa8ce53c1df4700100000000000000c02283aab385e82cd28d831cd1ba21381597e0ed3b193f6aa22d7588434c24160100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000b47377c358164a12a68a76035ac0479022018f5e9a3fd8fc915b265f92b74d4a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c0100000000000000c01b5bef9653fd67a8b11907f4c2a9b12cb24237768ad9188330794e9242a723010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a520100000000000000783134a08ea27221e873043cd0ee52a9f79c2eb14d5cd25afed24d7c82cb2246010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000343d27f7f66355f47054ee18bfe7df92bdd8b1aaf9391ba3b8b022905f95f94e0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b351501000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000402a67126cd160c84edcb39374164f3a39aec59ae72cb66dd9fbd1e9891aa27c010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000c63dfd97609d6fbdd6300bb957b3feba86755bbd5a36d6b4ca40bea6a1b2517001000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000941f291e924d50ffa173fb0a86b37e11915b06910a54d418b0a20998d0303a6901000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd555801000000000000001e825121b8beecb30e9962a555ce06b9e2c65fcf3b0023178556330d565bcb4c01000000000000001682c3264fc0b2a36eff3a5864cdacfe726bf5972ca8f4c5cad6f18bd450d23e0100000000000000dcbaae9e44c778fd2914d5940c24033575b5b0ef13d0157a667e4a52d9e719070100000000000000d412fb5e47b946e69918a6391ac30283949ba6d99c491d78fc5014aaa2144b590100000000000000ce323186d64f267b11e6dd0bef533ae85d282b40f90e38eef37f191a7927663f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000b013a8307c3572f939c1a9759a832f35babc847cc022588903572c8def43267d0100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c0100000000000000dc5dac973975ef5f4edef722e9727d0c05a73e4e45f7e524a8d216d2a691a6710100000000000000a0887bd2c2058519096e8dcebf495f2ef274490994e969063f72a41b3fab80720100000000000000d2838a30fd86f5f19aa80481630ecd0ee0fe5aa565ea15786f37a22a87cc1b7d01000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b25101000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000c09be470dab56a2b45b94ba6dac8ed9d515f1d3785cb4eacab40d0a80aa42b1c01000000000000007878535e43226cf81c42183db4bbef4b1eed2a460f6cd423c03af9e86674647a0100000000000000526e1fca7613776cab9c7b4ef9b4577b35adbac416c48529b6058a5f9d133210010000000000000052c9327ca5c1ca830f8ff712d813a8cdc2a8be122f16bf0d1d9e77b7a9789372010000000000000026f2af62a2f0d847e3d2cccc93ec7f98c80a7b6d1bcca4cf1c4a6fc7f81775010100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d7101000000000000009c576fccaf2ffb4885a0ac8ed7ba0b80ee5fd060856fb9f80bdd3219e5d7800d010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d01000000000000000481a58bfdafecabbc96bd170a0ec04cc35100f1f928cca3ecc63b3639e476790100000000000000607fc085eaca16b6a51e44ac9f61a689e869efe15b4da37be15b78c17b193b0301000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000e4be18b8f5905bc41fe3cba2e5350d405e76036328042ae7edfbb6b6a9b43d5a0100000000000000824792c3ed55b88805009230d67bd8059eb9958dc23900e4b1a6efe61dc0e96b01000000000000008c73f71ea9e64834a5e048824978864a96c5c600f42f8a7350dd10ac088ecd2101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b14020100000000000000507e2aa1a2409b289b89c80f7ccb129e91a32e8d44c98723f8a97307f54a2d0601000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000078d986932e680d7bebce126a5aedae3e11ba0f4e28c03d63a491e8bcbd05ad2201000000000000007c552599ae2d251c1fb693009a0f904e41e59183027af5adfb8bba4133fc13620100000000000000502c19c77976b8cb0c47b08cd465a75bd7d25734fac0048342c697501533ee2101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca22010000000000000092239fbae2557ff2ea3952c962e478e6ac2a5b3e3cfffb0eb40e8d41860ab0470100000000000000524c4d2a0ab6f9687123f9c8a9ab4fe2c70f9fc3b1863b4fde16f4dfaddc7d570100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d26273010000000000000000e2ef06613c993996e6eddf381c0f035659593515d10d664fb6bc1002bb921a0100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d465010000000000000044c47763e8f2f1675b480c01304c4da58c8d276b5ecee722e45d17afdc3d391d01000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d8066640100000000000000742c0a1ea78a09c7454b48897bfde87bf4959b89c898623c8eeace7af714147d01000000000000007873ecedbae63dfbe5594da935e52c14dbd0e131b12879d573b9c002c6e5c4400100000000000000fc53d15453457faadc5540c5853f54324eec395d3647fbf99d5e6e97ef3876760100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce007601000000000000001049c5c0f0493537f48c6b122d697f28cf8ea36ab772591ae875da8aae1198520100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000864cbd281011a154d93d0320865ad67ae442bf0985f0ec220e2c7db4b09599310100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000a811cc491bb3487d5e604dcf6dca3bf529437162f3b8cfb8514ffab16809ff600100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e25290100000000000000d2fb72b7c3d020239ba45289122d0ae3fb560d01d0cb3caec01efa0c8701d45e0100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000052a0f4ee4ffddedc5b9fd2154ca213cf3f49df94f4b5c36c2d8f877f5a7010220100000000000000c2041cb909e2a314df816d3234a893c1d387f4d4f9a4379d11400963b134a753010000000000000028702457fd7ea52bb88284bfcd721493ceae3ea984492a1b82c55efa1b62fa390100000000000000484b6b8012254027636d95e66c5ea7ee68dbdf9ef6ad3c2fc00cfe5c39fdaf7c010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da720100000000000000e816e2e76f7ccbdefdfd484aa8b5f904d293ae8694e21a92990da54f17e244090100000000000000c664c419396f160467b184251d893f1a1d468e0d230691dd0123d60d446c5b6201000000000000006ef86d4533f47ffd133c63b9575c17234309ab6e16f487ae7cd8914169183c660100000000000000ce60d2c987bbeeaceff8463484b717ce80cbcf3d8f8b2102e95effc88000d95d010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c0100000000000000060edf92540ed4cbb944b399cabc91a7b9641bfd553bae0479b442f9d5bc7c2101000000000000002abc6a5d748978a4023c3597c49178db2349ea6af5a9b61783095af8e427027c010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f010000000000000050f5f5863f99e896975813fda8768c72ff25fb54e25385a4263d1ff9a19152500100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f5259050100000000000000540926fefa2d0424fd451bfca39a01c0e1a3fc811406e127d1dbfdc6cf9e9770010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e85290100000000000000e20f692ef4d1cdecf74a65aed29a64a001ca7a83f01f8440c5725ccaa8fb8e2f01000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000009a53749c83cc06460148d884f1ea5b71897466b237cf16baa45395d78ce48c1a010000000000000064615e1323ea003b7c5a63ba2c8bed2023103458eeee7cf45244580d3ca59b6a01000000000000000c68512e2e5dca7783df908fa702dce48d67a439655fe52de6d29cb07890445a010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000048afb25f7981cc67a66853ec05675d83a2d99e6318a6a7a135ed2916cb70a26e01000000000000008a0e2d0af87ffb812f6e6ec229d02056e812cc4f5f5743cc638a7d3f279f0153010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe083721560010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac5610100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000078fb9f8411552c70290a09cdc6a0e235c74364d37204ec06ab62a4d45201233e010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000004a547dfc28e6730b12b365a1cb7dbca5199e04d75aeb07c7b5da4b0245daff5d0100000000000000bc62cca37518b73aa22efed6a88147f84af5db7b82ef7671d9bbf03c76d22b490100000000000000163a52c9bc0e859d814e742b7b5c8ad8e9c603d3d1f2b896256df27320290f050100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e0100000000000000e063e31ccdf34c3372902f92ec915f213538370658d9272f9ba6d8d6943ccd130100000000000000f6d56c6aaa5121b6a63f13af233d5233b608d53eb7f789a3db3749a4cea2f34f010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d6401000000000000008e0b3a52dae8c17703f7093d386f5fd8fb1c35a585e7830ca06fa84ba489f2610100000000000000b4e86264fd55571f5016e82a1eeba2476b1d0349fdd175d2443ea30bee0b5207010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec1720100000000000000bec182c65eec6dbc4d89c474a6f6fc6cb6853946eacfc93762cc3616ecd3c47f0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee1901000000000000002271d61469f9f1e5a0832af7de453015b89979fd740526080116295f4a4a516d0100000000000000645077cf303943059891df150649d1d828052ea4249bf50ca3b6d29c6ef1984c010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe20010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000ea03f9dc29ae9b7a053c12b6079664592d2cf46a30b43edbb2d2d980223deb11010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe83233001000000000000003c8330f5d7f34fbec333663bab066cbac4403f892df7659b1c118c185c4f16220100000000000000b20050395fc81aa60508e362f02c75faebe3e4909c7a23721182ce791bb701130100000000000000aa92f32eab7cb844bfce67787d5921e9eb63368577d9c46e9c276dbd2288064c0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d69010000000000000068147c36d367eb1a203b303c65ab3d32fe777cabbca8d39e08ffcfd624b3614d0100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f0100000000000000c4687b6d8e527d1ad3be71f2b242bed92eac25b159d9e142e6922ace2dfe5f2101000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f01000000000000009ea2cb3e6c59685087e59d6d45fdccdd5e6fd4f77fd90b4749f65113e23f086f01000000000000000a43fe86fb05c4f76c85474f9867e987d7f894b0f7fdba0b85c323c3103d3b4a0100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a01000000000000004a7791775365fadbb61f37a0d2f6d298c0c7c3a4c9402821ec909972fd5f8a4c01000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000126a7f10393da0379401ed5fc6945ed0cc3a795c2a192b0bbc3708d24ada404401000000000000005ee252f56786ec8e512d233a09c3bbda21d0bd3a6ed7e8e8c0fe035dfe7989330100000000000000e0d28dc9623e77eeff6b0aee79793b3a00cf8b1c46fb79c8e6ff8cfeecc4af120100000000000000d0106f6fb9b008052da3223c389525681d9b6e4fdb73a4078f7f1949bfaa350201000000000000001e1f47deab3e4083f7d353b746b719a9f5aaee3ae2cf6b37a4d710f95d489a6101000000000000006638aad1c437c5f2f2ab4c46b786db51bb8c7e6af2ee745934811712f8d83e0601000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd932571210100000000000000aa8727e4b0a95c761b5f2506159a25195d3efca5dafa334f871c3cf262fcc56e01000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f0768520100000000000000c88d83d7927e1c1dff61de6b8321ee64746d983173bfb3a03c3d4789ae3f202701000000000000001a8de0dd57069c2986c48b25cd40c13d2acb62fad487a82f4f13738e34418c1f01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba620100000000000000102ed4107066f497e13d3c484a9fa60e506587e19541069dd4555a91d63f27040100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000003afb6b0dac3a05453f125943b8a26269202d297b991e054ca851fa68bb4c0853010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000000c3292b5065b7b78a2de5f4fe397fff21df37c0ff7eef94c5fc4397f760e6e4601000000000000002234e01370aa10159040ac893ffebe3eb28540b8eebe03f5ca658b20866de36e0100000000000000bc3bebcbf6142977fdbe8492bd2c5947a16d38925d56f09db1ef164b608b912601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009265e7be28a8f56a974027b630bc37703b7ef21b1b1e4253c54d605f4d10da1e010000000000000046b14e55053a02087c957664d32fdcae6ba1c96051239191c63df564d784e1720100000000000000aac332418d8cd5cc9a903a06cbc8f639d32b32163713dd60d065b949abf83679010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e2101000000000000009c4d874baeccbb19733cf93f6ffb2f44d9b9f5191ead84f3550c7b767a75061f0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000662f5ccb0a265c7438d4166b72c2d0106b74f928e995dcd24004c67ad715217e0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf00430100000000000000a49dbb103be9a66d67ad5c0d11032866488f39d0a106de579d913dc7099a09260100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000547c6a159db6eb46da71179d0d15dad5691617fc7f3c6a672864655997035c2d010000000000000040884e6b9876fe866d109aae2a5a6f1a18bfe3655ec9c1fee848ca92734468720100000000000000f7cff79458978cd2bff24aae8998623a56cd921ea318c40201b4fe2cd3fb781601000000000000000400000000000000026441c5d73eef491062ed18d31770e3f8a95eba0a9e78b407d28c706c6f06332775af160101dc1d00000000000013cde410000000006009000000000000a50474a0fc84f72a4a9b8493379b7dfc59ca58a261a2e94997600d14b6b444c1475901000000000000009c40155989f6072e82caba245d7db7e40a60f866b403257976b89aba6be2b55b010000000000000014b0a3a620f70ada506d6ef1b7ab099219f2f05689523af7eebc81f9ba258e6001000000000000007067d4c5b492b11e2052a2bb0b4f729a52b3667afbca7dfefa863011254b5272010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b92001000000000000003ae9dfa8b24faaf16407328ff38a89b25fc7c673c44f9de3de0c011233d4226d0100000000000000e84529a1a5d90df032f8a38981b1e973b2551ffd11eba49d54e278499708473201000000000000009e47382505cd1a803bdbe7803d36a61413e58697bd9396ce1607c89a48d1e0510100000000000000e07446ce5f2219527928039f41b43de71567e0d247a53064b32a1732a9bab306010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000000c78c9dfc0033ff87657c56b7ab8cec4d1249be2de18729f743f385343af0f160100000000000000002e496e564f088a075525d2f9155aadd1a7eb017fa36f9e16096e9db7e169330100000000000000ae40860237c8f606dfb6974046eaa6b6b96f8d0aef56fbe3ce4865f66646bd260100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000c48c594bb4e173544a0379055b65d995af53256f653d04f2cf4fdf8f3548943901000000000000003a80d898638dccd4aaa472e7948e7394969cc443335c494159948915c097c036010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e477588789720100000000000000466c0e97d043a4b0f4c3ac4849e11f901e9b31b28f8b3e40b7cdb0ba7f77480801000000000000002049288b4dbfb741109778c602f9308daf2e31b3b66e9aa550065e73c6787d7c0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae6036820010000000000000078c88041bbca9b2bebd62fde7c46f4dc5e55d8877a113d063a6b525dfd6f7f2a01000000000000002e85d3d2c07aaf1c0a5f63f544c34b87cfa90a98c4f6167e86cee0b74a20cb120100000000000000723f3865d97a772459da8942cbb4757164f1fe7485cbcefb4b206e157ee5ed0201000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b01000000000000001822493200c35242a149070784dca5e7012a8a52b61cd218ec7d65e469e8cc56010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000d8f30bc2ee88e69f60d0278998414c80f4a130b8e1738e873bcd14ef31e58d36010000000000000042e377034ce6b2a582bfd66c465252ab10ce790e4f0d3bbe99a42ff86b29965c01000000000000000e164f314984e9a172a3a1526d853ff70bd11f3c596f17accbbebe2f7820833c01000000000000007e91ca522b14cbb71b45348c699b7d65c3198516ee771079b672ee3d7cfc577501000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b74010000000000000098faca5e78664fd082bf47f0079de33a5021415c8f5f912941e651a0b7071d1f0100000000000000ca6e63cec4c0801ecd740073da08be68b9cf4c7ff76b740fb6a522a63e838b5a010000000000000042e7851b82d8b7722b9eeb5eead57b21bf533fd25acb10542a52889376fc3920010000000000000028ce9c093ac772f56acb8dfe8b33a3966d4b8699bd41814117352d397195bd5f010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc19010000000000000012a64d79e44f1adb33c85c4f2bdfcd8d8b38a34d984604f39289c9a7624a442d0100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a670100000000000000e297620b731b4958e3c6aa06611c6aa5a45f7e116362d64954a0a330d2a98f330100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000000e5e5f8e89cd8d58ef83abddd3d1c2079691dec4f6965af70436e84411c31f3901000000000000007c21799f6143fa837a8c18bebe3368d60f4e009b114f61490b54e6344034040d0100000000000000e2f4efaa91da8465ac7d109cd80be5c02b9ba7a0603ff372cd77824de17f6c4201000000000000000ef6f09a9e310abb5c57dd7050a94d56d766772b80789b997cbb40f3b40f625d0100000000000000a88864a0dc9e292aa7cc8eddaa8dd8b6be2a4bc7e8f290023c6604e5c4ad1a7a010000000000000034ffee048e511f4187a6f40339650ec60a3d99ac5a1158ae162c5729b59d51740100000000000000be7c58318c49ff328d53a6d67830a8a046a41f5124824d3ce2e72cc9965ef57e0100000000000000b06e3ee1ea6420fb73ebd502988420f51b977a83074e1aa5daf0121f4a8b6b1e01000000000000003843abe933fa3ce63f3a5e422e13ec05dc9c0e8f150b93a0fa97f1b193cfba2d01000000000000009cdd57a06bd22d104d539527a19033620becff73dd267f0c2f9f13bc37b0d32c0100000000000000e020b5e946e4c6b0603ceac71b44c330fa7d9cb3e79791ebe1e16bedbb9c71000100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf7101000000000000005a63824687de4f60534ee18a430396b95263f75a077655c751bc2045ca2ec84d010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000f23d1b22d1b03c9fb6eb203c85761fe429a60c38d6591d215e873d62f5d2e4010100000000000000283a77cab50b96f99a8e8287c1488ebbcf31fc3daa953ffa99ac16db982f1e1201000000000000007c3526dc5579f1ef841101b573c655c20f4346fa4a6b0b6ed773d147c3ad6d7f0100000000000000ee579514d7f544fc9fb8d6383ed7d109ee98a411bb4b0b45b9354b0f73fed9720100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d12001000000000000004052e492aef88954afd9666ecb54ef5303a87394cb0690610841955f3dab1175010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b640100000000000000ec56243ac035f65b377444e20bc8fa7e3e75242a59b5ffa5f44270f451315f2b01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e660100000000000000c0e36251f9ce24d6fe429ecf14bc9599285e3e27c0a541d5ac0ad1902d7ad614010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000005620922a6765fd47abc96615ef5b8b8575f18aaf8507f6afb86129bc1080994f0100000000000000b4b145ce385b4a3d83f2daac46a61874f80e58c468dd624acc09a558be02c27d0100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a010000000000000072183c2429e4966be5cb14c9cb84d6e4092b4e55d8ebe2534cbfa179b6f85325010000000000000062d976890a75034b16ddf5c2cfe9e50620782336e19159bb0a11b585b5920f71010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa190100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c360100000000000000ae272f5ae4e197a1fc8e670d3aa7bcab325a39d1653b5440bb7593788d0526280100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d87081320100000000000000421f3fea780f04810915479b2b72ba55591d1db37a425cae170548a50127f83001000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000c02283aab385e82cd28d831cd1ba21381597e0ed3b193f6aa22d7588434c24160100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000b47377c358164a12a68a76035ac0479022018f5e9a3fd8fc915b265f92b74d4a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c0100000000000000c01b5bef9653fd67a8b11907f4c2a9b12cb24237768ad9188330794e9242a723010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000343d27f7f66355f47054ee18bfe7df92bdd8b1aaf9391ba3b8b022905f95f94e0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b351501000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000402a67126cd160c84edcb39374164f3a39aec59ae72cb66dd9fbd1e9891aa27c010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000ea7a085eb85651e30b4420daeb2935d87931349e62728f7329b46755d424c2320100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000c63dfd97609d6fbdd6300bb957b3feba86755bbd5a36d6b4ca40bea6a1b2517001000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000941f291e924d50ffa173fb0a86b37e11915b06910a54d418b0a20998d0303a6901000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd555801000000000000001e825121b8beecb30e9962a555ce06b9e2c65fcf3b0023178556330d565bcb4c01000000000000001682c3264fc0b2a36eff3a5864cdacfe726bf5972ca8f4c5cad6f18bd450d23e0100000000000000d412fb5e47b946e69918a6391ac30283949ba6d99c491d78fc5014aaa2144b590100000000000000ce323186d64f267b11e6dd0bef533ae85d282b40f90e38eef37f191a7927663f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000b013a8307c3572f939c1a9759a832f35babc847cc022588903572c8def43267d0100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c0100000000000000a0887bd2c2058519096e8dcebf495f2ef274490994e969063f72a41b3fab80720100000000000000d2838a30fd86f5f19aa80481630ecd0ee0fe5aa565ea15786f37a22a87cc1b7d01000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000de5f9f5ad3209502cf429630c2038b8818b6f8ce5685c2730077349802c5792501000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000c09be470dab56a2b45b94ba6dac8ed9d515f1d3785cb4eacab40d0a80aa42b1c01000000000000007878535e43226cf81c42183db4bbef4b1eed2a460f6cd423c03af9e86674647a0100000000000000526e1fca7613776cab9c7b4ef9b4577b35adbac416c48529b6058a5f9d133210010000000000000052c9327ca5c1ca830f8ff712d813a8cdc2a8be122f16bf0d1d9e77b7a9789372010000000000000026f2af62a2f0d847e3d2cccc93ec7f98c80a7b6d1bcca4cf1c4a6fc7f81775010100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d71010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d01000000000000000481a58bfdafecabbc96bd170a0ec04cc35100f1f928cca3ecc63b3639e476790100000000000000607fc085eaca16b6a51e44ac9f61a689e869efe15b4da37be15b78c17b193b0301000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000e4be18b8f5905bc41fe3cba2e5350d405e76036328042ae7edfbb6b6a9b43d5a0100000000000000824792c3ed55b88805009230d67bd8059eb9958dc23900e4b1a6efe61dc0e96b01000000000000008c73f71ea9e64834a5e048824978864a96c5c600f42f8a7350dd10ac088ecd2101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b14020100000000000000507e2aa1a2409b289b89c80f7ccb129e91a32e8d44c98723f8a97307f54a2d0601000000000000008c6d9a2bb472764af439b9dd83d68dd0a0c1a77fbf1025a0e6bbfa3e9c8e857401000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000078d986932e680d7bebce126a5aedae3e11ba0f4e28c03d63a491e8bcbd05ad2201000000000000007c552599ae2d251c1fb693009a0f904e41e59183027af5adfb8bba4133fc136201000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca22010000000000000092239fbae2557ff2ea3952c962e478e6ac2a5b3e3cfffb0eb40e8d41860ab0470100000000000000524c4d2a0ab6f9687123f9c8a9ab4fe2c70f9fc3b1863b4fde16f4dfaddc7d570100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d26273010000000000000000e2ef06613c993996e6eddf381c0f035659593515d10d664fb6bc1002bb921a0100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d465010000000000000044c47763e8f2f1675b480c01304c4da58c8d276b5ecee722e45d17afdc3d391d01000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d8066640100000000000000742c0a1ea78a09c7454b48897bfde87bf4959b89c898623c8eeace7af714147d01000000000000007873ecedbae63dfbe5594da935e52c14dbd0e131b12879d573b9c002c6e5c4400100000000000000fc53d15453457faadc5540c5853f54324eec395d3647fbf99d5e6e97ef3876760100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000864cbd281011a154d93d0320865ad67ae442bf0985f0ec220e2c7db4b09599310100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000a811cc491bb3487d5e604dcf6dca3bf529437162f3b8cfb8514ffab16809ff600100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e25290100000000000000d2fb72b7c3d020239ba45289122d0ae3fb560d01d0cb3caec01efa0c8701d45e0100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000052a0f4ee4ffddedc5b9fd2154ca213cf3f49df94f4b5c36c2d8f877f5a7010220100000000000000c2041cb909e2a314df816d3234a893c1d387f4d4f9a4379d11400963b134a753010000000000000028702457fd7ea52bb88284bfcd721493ceae3ea984492a1b82c55efa1b62fa390100000000000000484b6b8012254027636d95e66c5ea7ee68dbdf9ef6ad3c2fc00cfe5c39fdaf7c010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da720100000000000000e816e2e76f7ccbdefdfd484aa8b5f904d293ae8694e21a92990da54f17e244090100000000000000c664c419396f160467b184251d893f1a1d468e0d230691dd0123d60d446c5b6201000000000000006ef86d4533f47ffd133c63b9575c17234309ab6e16f487ae7cd8914169183c660100000000000000ce60d2c987bbeeaceff8463484b717ce80cbcf3d8f8b2102e95effc88000d95d010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c0100000000000000060edf92540ed4cbb944b399cabc91a7b9641bfd553bae0479b442f9d5bc7c2101000000000000002abc6a5d748978a4023c3597c49178db2349ea6af5a9b61783095af8e427027c010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f010000000000000050f5f5863f99e896975813fda8768c72ff25fb54e25385a4263d1ff9a19152500100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000540926fefa2d0424fd451bfca39a01c0e1a3fc811406e127d1dbfdc6cf9e9770010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e85290100000000000000e20f692ef4d1cdecf74a65aed29a64a001ca7a83f01f8440c5725ccaa8fb8e2f01000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000009a53749c83cc06460148d884f1ea5b71897466b237cf16baa45395d78ce48c1a010000000000000064615e1323ea003b7c5a63ba2c8bed2023103458eeee7cf45244580d3ca59b6a010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000048afb25f7981cc67a66853ec05675d83a2d99e6318a6a7a135ed2916cb70a26e01000000000000008a0e2d0af87ffb812f6e6ec229d02056e812cc4f5f5743cc638a7d3f279f0153010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe083721560010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac5610100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000004a547dfc28e6730b12b365a1cb7dbca5199e04d75aeb07c7b5da4b0245daff5d0100000000000000bc62cca37518b73aa22efed6a88147f84af5db7b82ef7671d9bbf03c76d22b490100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e0100000000000000e063e31ccdf34c3372902f92ec915f213538370658d9272f9ba6d8d6943ccd13010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d6401000000000000008e0b3a52dae8c17703f7093d386f5fd8fb1c35a585e7830ca06fa84ba489f2610100000000000000b4e86264fd55571f5016e82a1eeba2476b1d0349fdd175d2443ea30bee0b5207010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec17201000000000000006ac767a27a7c0d66cc9493e93dc9d37a114b8a05ef7ee4b22db346661446e6280100000000000000bec182c65eec6dbc4d89c474a6f6fc6cb6853946eacfc93762cc3616ecd3c47f0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee1901000000000000002271d61469f9f1e5a0832af7de453015b89979fd740526080116295f4a4a516d0100000000000000645077cf303943059891df150649d1d828052ea4249bf50ca3b6d29c6ef1984c01000000000000006cb06d06d7955ca5e61897e7f2c4576469e09185f010d96e9bcc84533d1a036b010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe20010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000ea03f9dc29ae9b7a053c12b6079664592d2cf46a30b43edbb2d2d980223deb11010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe83233001000000000000003c8330f5d7f34fbec333663bab066cbac4403f892df7659b1c118c185c4f16220100000000000000b20050395fc81aa60508e362f02c75faebe3e4909c7a23721182ce791bb701130100000000000000aa92f32eab7cb844bfce67787d5921e9eb63368577d9c46e9c276dbd2288064c0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d69010000000000000068147c36d367eb1a203b303c65ab3d32fe777cabbca8d39e08ffcfd624b3614d0100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f0100000000000000c4687b6d8e527d1ad3be71f2b242bed92eac25b159d9e142e6922ace2dfe5f2101000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f0100000000000000d80eba00fd45442e9305434d637564baed7a12136c89734e4ca850db419f0c3a01000000000000009ea2cb3e6c59685087e59d6d45fdccdd5e6fd4f77fd90b4749f65113e23f086f01000000000000000a43fe86fb05c4f76c85474f9867e987d7f894b0f7fdba0b85c323c3103d3b4a0100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a01000000000000004a7791775365fadbb61f37a0d2f6d298c0c7c3a4c9402821ec909972fd5f8a4c01000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a01000000000000005ee252f56786ec8e512d233a09c3bbda21d0bd3a6ed7e8e8c0fe035dfe7989330100000000000000e0d28dc9623e77eeff6b0aee79793b3a00cf8b1c46fb79c8e6ff8cfeecc4af120100000000000000d0106f6fb9b008052da3223c389525681d9b6e4fdb73a4078f7f1949bfaa350201000000000000001e1f47deab3e4083f7d353b746b719a9f5aaee3ae2cf6b37a4d710f95d489a6101000000000000006638aad1c437c5f2f2ab4c46b786db51bb8c7e6af2ee745934811712f8d83e0601000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd932571210100000000000000aa8727e4b0a95c761b5f2506159a25195d3efca5dafa334f871c3cf262fcc56e01000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f0768520100000000000000c88d83d7927e1c1dff61de6b8321ee64746d983173bfb3a03c3d4789ae3f202701000000000000001a8de0dd57069c2986c48b25cd40c13d2acb62fad487a82f4f13738e34418c1f01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba620100000000000000102ed4107066f497e13d3c484a9fa60e506587e19541069dd4555a91d63f27040100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000003afb6b0dac3a05453f125943b8a26269202d297b991e054ca851fa68bb4c0853010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000000c3292b5065b7b78a2de5f4fe397fff21df37c0ff7eef94c5fc4397f760e6e4601000000000000006edcddd44823f4f48b53a4172c3bbe239842ac1e663eeb0222fd715d050d7a5101000000000000002234e01370aa10159040ac893ffebe3eb28540b8eebe03f5ca658b20866de36e0100000000000000bc3bebcbf6142977fdbe8492bd2c5947a16d38925d56f09db1ef164b608b912601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009265e7be28a8f56a974027b630bc37703b7ef21b1b1e4253c54d605f4d10da1e010000000000000046b14e55053a02087c957664d32fdcae6ba1c96051239191c63df564d784e1720100000000000000aac332418d8cd5cc9a903a06cbc8f639d32b32163713dd60d065b949abf8367901000000000000007011cf9db6405d2a4b0ffe11b6a6f9de0c8919d0f70e980d6c6e221e98590e0a010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e21010000000000000038ab6c4b18e1c86176cf53301ea990f1cdddcdc3f2c3e0f8dde126fa59f60b2f01000000000000009c4d874baeccbb19733cf93f6ffb2f44d9b9f5191ead84f3550c7b767a75061f0100000000000000dc9fce160b2cd9c97257b75c861d32348337de685c69042659eec13a0055b4500100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000662f5ccb0a265c7438d4166b72c2d0106b74f928e995dcd24004c67ad715217e0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf00430100000000000000a49dbb103be9a66d67ad5c0d11032866488f39d0a106de579d913dc7099a09260100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000547c6a159db6eb46da71179d0d15dad5691617fc7f3c6a672864655997035c2d010000000000000040884e6b9876fe866d109aae2a5a6f1a18bfe3655ec9c1fee848ca9273446872010000000000000049e7432ee40ede3d43ba6ed37822ac124d32bd6605844c728e889df99472bc1501000000000000000400000000000000026646627e2646c3b728990fc968ec647c2170e66b55fbe48365e54557ae43756916a6160101db1d000000000000b3c3e410000000006009000000000000a50474a0fc84f72a4a9b8493379b7dfc59ca58a261a2e94997600d14b6b444c1475901000000000000009c40155989f6072e82caba245d7db7e40a60f866b403257976b89aba6be2b55b010000000000000014b0a3a620f70ada506d6ef1b7ab099219f2f05689523af7eebc81f9ba258e6001000000000000007067d4c5b492b11e2052a2bb0b4f729a52b3667afbca7dfefa863011254b5272010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b92001000000000000003ae9dfa8b24faaf16407328ff38a89b25fc7c673c44f9de3de0c011233d4226d01000000000000009e47382505cd1a803bdbe7803d36a61413e58697bd9396ce1607c89a48d1e051010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000000c78c9dfc0033ff87657c56b7ab8cec4d1249be2de18729f743f385343af0f160100000000000000002e496e564f088a075525d2f9155aadd1a7eb017fa36f9e16096e9db7e169330100000000000000ae40860237c8f606dfb6974046eaa6b6b96f8d0aef56fbe3ce4865f66646bd260100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000c48c594bb4e173544a0379055b65d995af53256f653d04f2cf4fdf8f3548943901000000000000003a80d898638dccd4aaa472e7948e7394969cc443335c494159948915c097c036010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e477588789720100000000000000466c0e97d043a4b0f4c3ac4849e11f901e9b31b28f8b3e40b7cdb0ba7f77480801000000000000002049288b4dbfb741109778c602f9308daf2e31b3b66e9aa550065e73c6787d7c0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae6036820010000000000000078c88041bbca9b2bebd62fde7c46f4dc5e55d8877a113d063a6b525dfd6f7f2a01000000000000002e85d3d2c07aaf1c0a5f63f544c34b87cfa90a98c4f6167e86cee0b74a20cb120100000000000000723f3865d97a772459da8942cbb4757164f1fe7485cbcefb4b206e157ee5ed0201000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b01000000000000001822493200c35242a149070784dca5e7012a8a52b61cd218ec7d65e469e8cc56010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000d8f30bc2ee88e69f60d0278998414c80f4a130b8e1738e873bcd14ef31e58d36010000000000000042e377034ce6b2a582bfd66c465252ab10ce790e4f0d3bbe99a42ff86b29965c01000000000000000e164f314984e9a172a3a1526d853ff70bd11f3c596f17accbbebe2f7820833c01000000000000007e91ca522b14cbb71b45348c699b7d65c3198516ee771079b672ee3d7cfc577501000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b74010000000000000098faca5e78664fd082bf47f0079de33a5021415c8f5f912941e651a0b7071d1f0100000000000000ca6e63cec4c0801ecd740073da08be68b9cf4c7ff76b740fb6a522a63e838b5a010000000000000042e7851b82d8b7722b9eeb5eead57b21bf533fd25acb10542a52889376fc3920010000000000000028ce9c093ac772f56acb8dfe8b33a3966d4b8699bd41814117352d397195bd5f010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc19010000000000000012a64d79e44f1adb33c85c4f2bdfcd8d8b38a34d984604f39289c9a7624a442d0100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a670100000000000000e297620b731b4958e3c6aa06611c6aa5a45f7e116362d64954a0a330d2a98f330100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000000e5e5f8e89cd8d58ef83abddd3d1c2079691dec4f6965af70436e84411c31f3901000000000000007c21799f6143fa837a8c18bebe3368d60f4e009b114f61490b54e6344034040d0100000000000000e2f4efaa91da8465ac7d109cd80be5c02b9ba7a0603ff372cd77824de17f6c4201000000000000000ef6f09a9e310abb5c57dd7050a94d56d766772b80789b997cbb40f3b40f625d0100000000000000a88864a0dc9e292aa7cc8eddaa8dd8b6be2a4bc7e8f290023c6604e5c4ad1a7a0100000000000000dc68569b46a09aebabe8fc4452e293fac635e4a2889739809b32e4e2303e3f71010000000000000034ffee048e511f4187a6f40339650ec60a3d99ac5a1158ae162c5729b59d51740100000000000000be7c58318c49ff328d53a6d67830a8a046a41f5124824d3ce2e72cc9965ef57e0100000000000000b06e3ee1ea6420fb73ebd502988420f51b977a83074e1aa5daf0121f4a8b6b1e01000000000000003843abe933fa3ce63f3a5e422e13ec05dc9c0e8f150b93a0fa97f1b193cfba2d01000000000000009cdd57a06bd22d104d539527a19033620becff73dd267f0c2f9f13bc37b0d32c0100000000000000e020b5e946e4c6b0603ceac71b44c330fa7d9cb3e79791ebe1e16bedbb9c71000100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf7101000000000000005a63824687de4f60534ee18a430396b95263f75a077655c751bc2045ca2ec84d010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000f23d1b22d1b03c9fb6eb203c85761fe429a60c38d6591d215e873d62f5d2e4010100000000000000283a77cab50b96f99a8e8287c1488ebbcf31fc3daa953ffa99ac16db982f1e1201000000000000007c3526dc5579f1ef841101b573c655c20f4346fa4a6b0b6ed773d147c3ad6d7f0100000000000000ee579514d7f544fc9fb8d6383ed7d109ee98a411bb4b0b45b9354b0f73fed9720100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d120010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b640100000000000000ec56243ac035f65b377444e20bc8fa7e3e75242a59b5ffa5f44270f451315f2b01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e660100000000000000c0e36251f9ce24d6fe429ecf14bc9599285e3e27c0a541d5ac0ad1902d7ad614010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000005620922a6765fd47abc96615ef5b8b8575f18aaf8507f6afb86129bc1080994f0100000000000000b4b145ce385b4a3d83f2daac46a61874f80e58c468dd624acc09a558be02c27d0100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a010000000000000072183c2429e4966be5cb14c9cb84d6e4092b4e55d8ebe2534cbfa179b6f85325010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa190100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c360100000000000000ae272f5ae4e197a1fc8e670d3aa7bcab325a39d1653b5440bb7593788d0526280100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d87081320100000000000000421f3fea780f04810915479b2b72ba55591d1db37a425cae170548a50127f83001000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000d08dade453078ef481107714d602bafaa5f1247ec053c3fb62fa8ce53c1df4700100000000000000c02283aab385e82cd28d831cd1ba21381597e0ed3b193f6aa22d7588434c24160100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000b47377c358164a12a68a76035ac0479022018f5e9a3fd8fc915b265f92b74d4a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c0100000000000000c01b5bef9653fd67a8b11907f4c2a9b12cb24237768ad9188330794e9242a723010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a520100000000000000783134a08ea27221e873043cd0ee52a9f79c2eb14d5cd25afed24d7c82cb2246010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000343d27f7f66355f47054ee18bfe7df92bdd8b1aaf9391ba3b8b022905f95f94e0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b351501000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000402a67126cd160c84edcb39374164f3a39aec59ae72cb66dd9fbd1e9891aa27c010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000c63dfd97609d6fbdd6300bb957b3feba86755bbd5a36d6b4ca40bea6a1b2517001000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000941f291e924d50ffa173fb0a86b37e11915b06910a54d418b0a20998d0303a6901000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd555801000000000000001e825121b8beecb30e9962a555ce06b9e2c65fcf3b0023178556330d565bcb4c01000000000000001682c3264fc0b2a36eff3a5864cdacfe726bf5972ca8f4c5cad6f18bd450d23e0100000000000000dcbaae9e44c778fd2914d5940c24033575b5b0ef13d0157a667e4a52d9e719070100000000000000d412fb5e47b946e69918a6391ac30283949ba6d99c491d78fc5014aaa2144b590100000000000000ce323186d64f267b11e6dd0bef533ae85d282b40f90e38eef37f191a7927663f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000b013a8307c3572f939c1a9759a832f35babc847cc022588903572c8def43267d0100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c0100000000000000dc5dac973975ef5f4edef722e9727d0c05a73e4e45f7e524a8d216d2a691a6710100000000000000a0887bd2c2058519096e8dcebf495f2ef274490994e969063f72a41b3fab80720100000000000000d2838a30fd86f5f19aa80481630ecd0ee0fe5aa565ea15786f37a22a87cc1b7d01000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b25101000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000c09be470dab56a2b45b94ba6dac8ed9d515f1d3785cb4eacab40d0a80aa42b1c01000000000000007878535e43226cf81c42183db4bbef4b1eed2a460f6cd423c03af9e86674647a0100000000000000526e1fca7613776cab9c7b4ef9b4577b35adbac416c48529b6058a5f9d133210010000000000000052c9327ca5c1ca830f8ff712d813a8cdc2a8be122f16bf0d1d9e77b7a9789372010000000000000026f2af62a2f0d847e3d2cccc93ec7f98c80a7b6d1bcca4cf1c4a6fc7f81775010100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d7101000000000000009c576fccaf2ffb4885a0ac8ed7ba0b80ee5fd060856fb9f80bdd3219e5d7800d010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d01000000000000000481a58bfdafecabbc96bd170a0ec04cc35100f1f928cca3ecc63b3639e476790100000000000000607fc085eaca16b6a51e44ac9f61a689e869efe15b4da37be15b78c17b193b0301000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000e4be18b8f5905bc41fe3cba2e5350d405e76036328042ae7edfbb6b6a9b43d5a0100000000000000824792c3ed55b88805009230d67bd8059eb9958dc23900e4b1a6efe61dc0e96b01000000000000008c73f71ea9e64834a5e048824978864a96c5c600f42f8a7350dd10ac088ecd2101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b14020100000000000000507e2aa1a2409b289b89c80f7ccb129e91a32e8d44c98723f8a97307f54a2d0601000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000078d986932e680d7bebce126a5aedae3e11ba0f4e28c03d63a491e8bcbd05ad2201000000000000007c552599ae2d251c1fb693009a0f904e41e59183027af5adfb8bba4133fc13620100000000000000502c19c77976b8cb0c47b08cd465a75bd7d25734fac0048342c697501533ee2101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca22010000000000000092239fbae2557ff2ea3952c962e478e6ac2a5b3e3cfffb0eb40e8d41860ab0470100000000000000524c4d2a0ab6f9687123f9c8a9ab4fe2c70f9fc3b1863b4fde16f4dfaddc7d570100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d26273010000000000000000e2ef06613c993996e6eddf381c0f035659593515d10d664fb6bc1002bb921a0100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d465010000000000000044c47763e8f2f1675b480c01304c4da58c8d276b5ecee722e45d17afdc3d391d01000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d8066640100000000000000742c0a1ea78a09c7454b48897bfde87bf4959b89c898623c8eeace7af714147d01000000000000007873ecedbae63dfbe5594da935e52c14dbd0e131b12879d573b9c002c6e5c4400100000000000000fc53d15453457faadc5540c5853f54324eec395d3647fbf99d5e6e97ef3876760100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce007601000000000000001049c5c0f0493537f48c6b122d697f28cf8ea36ab772591ae875da8aae1198520100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000864cbd281011a154d93d0320865ad67ae442bf0985f0ec220e2c7db4b09599310100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000a811cc491bb3487d5e604dcf6dca3bf529437162f3b8cfb8514ffab16809ff600100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e25290100000000000000d2fb72b7c3d020239ba45289122d0ae3fb560d01d0cb3caec01efa0c8701d45e0100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000052a0f4ee4ffddedc5b9fd2154ca213cf3f49df94f4b5c36c2d8f877f5a7010220100000000000000c2041cb909e2a314df816d3234a893c1d387f4d4f9a4379d11400963b134a753010000000000000028702457fd7ea52bb88284bfcd721493ceae3ea984492a1b82c55efa1b62fa390100000000000000484b6b8012254027636d95e66c5ea7ee68dbdf9ef6ad3c2fc00cfe5c39fdaf7c010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da720100000000000000e816e2e76f7ccbdefdfd484aa8b5f904d293ae8694e21a92990da54f17e244090100000000000000c664c419396f160467b184251d893f1a1d468e0d230691dd0123d60d446c5b6201000000000000006ef86d4533f47ffd133c63b9575c17234309ab6e16f487ae7cd8914169183c660100000000000000ce60d2c987bbeeaceff8463484b717ce80cbcf3d8f8b2102e95effc88000d95d010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c0100000000000000060edf92540ed4cbb944b399cabc91a7b9641bfd553bae0479b442f9d5bc7c2101000000000000002abc6a5d748978a4023c3597c49178db2349ea6af5a9b61783095af8e427027c010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f010000000000000050f5f5863f99e896975813fda8768c72ff25fb54e25385a4263d1ff9a19152500100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f5259050100000000000000540926fefa2d0424fd451bfca39a01c0e1a3fc811406e127d1dbfdc6cf9e9770010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e85290100000000000000e20f692ef4d1cdecf74a65aed29a64a001ca7a83f01f8440c5725ccaa8fb8e2f01000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000009a53749c83cc06460148d884f1ea5b71897466b237cf16baa45395d78ce48c1a010000000000000064615e1323ea003b7c5a63ba2c8bed2023103458eeee7cf45244580d3ca59b6a01000000000000000c68512e2e5dca7783df908fa702dce48d67a439655fe52de6d29cb07890445a010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000048afb25f7981cc67a66853ec05675d83a2d99e6318a6a7a135ed2916cb70a26e01000000000000008a0e2d0af87ffb812f6e6ec229d02056e812cc4f5f5743cc638a7d3f279f0153010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe083721560010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac5610100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000078fb9f8411552c70290a09cdc6a0e235c74364d37204ec06ab62a4d45201233e010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000004a547dfc28e6730b12b365a1cb7dbca5199e04d75aeb07c7b5da4b0245daff5d0100000000000000bc62cca37518b73aa22efed6a88147f84af5db7b82ef7671d9bbf03c76d22b490100000000000000163a52c9bc0e859d814e742b7b5c8ad8e9c603d3d1f2b896256df27320290f050100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e0100000000000000e063e31ccdf34c3372902f92ec915f213538370658d9272f9ba6d8d6943ccd130100000000000000f6d56c6aaa5121b6a63f13af233d5233b608d53eb7f789a3db3749a4cea2f34f010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d6401000000000000008e0b3a52dae8c17703f7093d386f5fd8fb1c35a585e7830ca06fa84ba489f2610100000000000000b4e86264fd55571f5016e82a1eeba2476b1d0349fdd175d2443ea30bee0b5207010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec1720100000000000000bec182c65eec6dbc4d89c474a6f6fc6cb6853946eacfc93762cc3616ecd3c47f0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee1901000000000000002271d61469f9f1e5a0832af7de453015b89979fd740526080116295f4a4a516d0100000000000000645077cf303943059891df150649d1d828052ea4249bf50ca3b6d29c6ef1984c010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe20010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000ea03f9dc29ae9b7a053c12b6079664592d2cf46a30b43edbb2d2d980223deb11010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe83233001000000000000003c8330f5d7f34fbec333663bab066cbac4403f892df7659b1c118c185c4f16220100000000000000b20050395fc81aa60508e362f02c75faebe3e4909c7a23721182ce791bb701130100000000000000aa92f32eab7cb844bfce67787d5921e9eb63368577d9c46e9c276dbd2288064c0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d69010000000000000068147c36d367eb1a203b303c65ab3d32fe777cabbca8d39e08ffcfd624b3614d0100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f0100000000000000c4687b6d8e527d1ad3be71f2b242bed92eac25b159d9e142e6922ace2dfe5f2101000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f01000000000000009ea2cb3e6c59685087e59d6d45fdccdd5e6fd4f77fd90b4749f65113e23f086f01000000000000000a43fe86fb05c4f76c85474f9867e987d7f894b0f7fdba0b85c323c3103d3b4a0100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a01000000000000004a7791775365fadbb61f37a0d2f6d298c0c7c3a4c9402821ec909972fd5f8a4c01000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000126a7f10393da0379401ed5fc6945ed0cc3a795c2a192b0bbc3708d24ada404401000000000000005ee252f56786ec8e512d233a09c3bbda21d0bd3a6ed7e8e8c0fe035dfe7989330100000000000000e0d28dc9623e77eeff6b0aee79793b3a00cf8b1c46fb79c8e6ff8cfeecc4af120100000000000000d0106f6fb9b008052da3223c389525681d9b6e4fdb73a4078f7f1949bfaa350201000000000000001e1f47deab3e4083f7d353b746b719a9f5aaee3ae2cf6b37a4d710f95d489a6101000000000000006638aad1c437c5f2f2ab4c46b786db51bb8c7e6af2ee745934811712f8d83e0601000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd932571210100000000000000aa8727e4b0a95c761b5f2506159a25195d3efca5dafa334f871c3cf262fcc56e01000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f0768520100000000000000c88d83d7927e1c1dff61de6b8321ee64746d983173bfb3a03c3d4789ae3f202701000000000000001a8de0dd57069c2986c48b25cd40c13d2acb62fad487a82f4f13738e34418c1f01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba620100000000000000102ed4107066f497e13d3c484a9fa60e506587e19541069dd4555a91d63f27040100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000003afb6b0dac3a05453f125943b8a26269202d297b991e054ca851fa68bb4c0853010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000000c3292b5065b7b78a2de5f4fe397fff21df37c0ff7eef94c5fc4397f760e6e4601000000000000002234e01370aa10159040ac893ffebe3eb28540b8eebe03f5ca658b20866de36e0100000000000000bc3bebcbf6142977fdbe8492bd2c5947a16d38925d56f09db1ef164b608b912601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009265e7be28a8f56a974027b630bc37703b7ef21b1b1e4253c54d605f4d10da1e010000000000000046b14e55053a02087c957664d32fdcae6ba1c96051239191c63df564d784e1720100000000000000aac332418d8cd5cc9a903a06cbc8f639d32b32163713dd60d065b949abf83679010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e2101000000000000009c4d874baeccbb19733cf93f6ffb2f44d9b9f5191ead84f3550c7b767a75061f0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000662f5ccb0a265c7438d4166b72c2d0106b74f928e995dcd24004c67ad715217e0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf00430100000000000000a49dbb103be9a66d67ad5c0d11032866488f39d0a106de579d913dc7099a09260100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000547c6a159db6eb46da71179d0d15dad5691617fc7f3c6a672864655997035c2d010000000000000040884e6b9876fe866d109aae2a5a6f1a18bfe3655ec9c1fee848ca92734468720100000000000000f4751bb25e58daf18770161b19fc3c544f5b5d3986275612bfaeba70d882887101000000000000000400000000000000027494065a1f61226b66736add1b00a214e14611c3f78e1ab4d3e0d9c69ae732f875af160101dc1d00000000000013cde410000000006009000000000000a50474a0fc84f72a4a9b8493379b7dfc59ca58a261a2e94997600d14b6b444c1475901000000000000009c40155989f6072e82caba245d7db7e40a60f866b403257976b89aba6be2b55b010000000000000014b0a3a620f70ada506d6ef1b7ab099219f2f05689523af7eebc81f9ba258e6001000000000000007067d4c5b492b11e2052a2bb0b4f729a52b3667afbca7dfefa863011254b5272010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b92001000000000000003ae9dfa8b24faaf16407328ff38a89b25fc7c673c44f9de3de0c011233d4226d0100000000000000e84529a1a5d90df032f8a38981b1e973b2551ffd11eba49d54e278499708473201000000000000009e47382505cd1a803bdbe7803d36a61413e58697bd9396ce1607c89a48d1e0510100000000000000e07446ce5f2219527928039f41b43de71567e0d247a53064b32a1732a9bab306010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000000c78c9dfc0033ff87657c56b7ab8cec4d1249be2de18729f743f385343af0f160100000000000000002e496e564f088a075525d2f9155aadd1a7eb017fa36f9e16096e9db7e169330100000000000000ae40860237c8f606dfb6974046eaa6b6b96f8d0aef56fbe3ce4865f66646bd260100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000c48c594bb4e173544a0379055b65d995af53256f653d04f2cf4fdf8f3548943901000000000000003a80d898638dccd4aaa472e7948e7394969cc443335c494159948915c097c036010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e477588789720100000000000000466c0e97d043a4b0f4c3ac4849e11f901e9b31b28f8b3e40b7cdb0ba7f77480801000000000000002049288b4dbfb741109778c602f9308daf2e31b3b66e9aa550065e73c6787d7c0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae6036820010000000000000078c88041bbca9b2bebd62fde7c46f4dc5e55d8877a113d063a6b525dfd6f7f2a01000000000000002e85d3d2c07aaf1c0a5f63f544c34b87cfa90a98c4f6167e86cee0b74a20cb120100000000000000723f3865d97a772459da8942cbb4757164f1fe7485cbcefb4b206e157ee5ed0201000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b01000000000000001822493200c35242a149070784dca5e7012a8a52b61cd218ec7d65e469e8cc56010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000d8f30bc2ee88e69f60d0278998414c80f4a130b8e1738e873bcd14ef31e58d36010000000000000042e377034ce6b2a582bfd66c465252ab10ce790e4f0d3bbe99a42ff86b29965c01000000000000000e164f314984e9a172a3a1526d853ff70bd11f3c596f17accbbebe2f7820833c01000000000000007e91ca522b14cbb71b45348c699b7d65c3198516ee771079b672ee3d7cfc577501000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b74010000000000000098faca5e78664fd082bf47f0079de33a5021415c8f5f912941e651a0b7071d1f0100000000000000ca6e63cec4c0801ecd740073da08be68b9cf4c7ff76b740fb6a522a63e838b5a010000000000000042e7851b82d8b7722b9eeb5eead57b21bf533fd25acb10542a52889376fc3920010000000000000028ce9c093ac772f56acb8dfe8b33a3966d4b8699bd41814117352d397195bd5f010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc19010000000000000012a64d79e44f1adb33c85c4f2bdfcd8d8b38a34d984604f39289c9a7624a442d0100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a670100000000000000e297620b731b4958e3c6aa06611c6aa5a45f7e116362d64954a0a330d2a98f330100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000000e5e5f8e89cd8d58ef83abddd3d1c2079691dec4f6965af70436e84411c31f3901000000000000007c21799f6143fa837a8c18bebe3368d60f4e009b114f61490b54e6344034040d0100000000000000e2f4efaa91da8465ac7d109cd80be5c02b9ba7a0603ff372cd77824de17f6c4201000000000000000ef6f09a9e310abb5c57dd7050a94d56d766772b80789b997cbb40f3b40f625d0100000000000000a88864a0dc9e292aa7cc8eddaa8dd8b6be2a4bc7e8f290023c6604e5c4ad1a7a010000000000000034ffee048e511f4187a6f40339650ec60a3d99ac5a1158ae162c5729b59d51740100000000000000be7c58318c49ff328d53a6d67830a8a046a41f5124824d3ce2e72cc9965ef57e0100000000000000b06e3ee1ea6420fb73ebd502988420f51b977a83074e1aa5daf0121f4a8b6b1e01000000000000003843abe933fa3ce63f3a5e422e13ec05dc9c0e8f150b93a0fa97f1b193cfba2d01000000000000009cdd57a06bd22d104d539527a19033620becff73dd267f0c2f9f13bc37b0d32c0100000000000000e020b5e946e4c6b0603ceac71b44c330fa7d9cb3e79791ebe1e16bedbb9c71000100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf7101000000000000005a63824687de4f60534ee18a430396b95263f75a077655c751bc2045ca2ec84d010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000f23d1b22d1b03c9fb6eb203c85761fe429a60c38d6591d215e873d62f5d2e4010100000000000000283a77cab50b96f99a8e8287c1488ebbcf31fc3daa953ffa99ac16db982f1e1201000000000000007c3526dc5579f1ef841101b573c655c20f4346fa4a6b0b6ed773d147c3ad6d7f0100000000000000ee579514d7f544fc9fb8d6383ed7d109ee98a411bb4b0b45b9354b0f73fed9720100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d12001000000000000004052e492aef88954afd9666ecb54ef5303a87394cb0690610841955f3dab1175010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b640100000000000000ec56243ac035f65b377444e20bc8fa7e3e75242a59b5ffa5f44270f451315f2b01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e660100000000000000c0e36251f9ce24d6fe429ecf14bc9599285e3e27c0a541d5ac0ad1902d7ad614010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000005620922a6765fd47abc96615ef5b8b8575f18aaf8507f6afb86129bc1080994f0100000000000000b4b145ce385b4a3d83f2daac46a61874f80e58c468dd624acc09a558be02c27d0100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a010000000000000072183c2429e4966be5cb14c9cb84d6e4092b4e55d8ebe2534cbfa179b6f85325010000000000000062d976890a75034b16ddf5c2cfe9e50620782336e19159bb0a11b585b5920f71010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa190100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c360100000000000000ae272f5ae4e197a1fc8e670d3aa7bcab325a39d1653b5440bb7593788d0526280100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d87081320100000000000000421f3fea780f04810915479b2b72ba55591d1db37a425cae170548a50127f83001000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000c02283aab385e82cd28d831cd1ba21381597e0ed3b193f6aa22d7588434c24160100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000b47377c358164a12a68a76035ac0479022018f5e9a3fd8fc915b265f92b74d4a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c0100000000000000c01b5bef9653fd67a8b11907f4c2a9b12cb24237768ad9188330794e9242a723010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000343d27f7f66355f47054ee18bfe7df92bdd8b1aaf9391ba3b8b022905f95f94e0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b351501000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000402a67126cd160c84edcb39374164f3a39aec59ae72cb66dd9fbd1e9891aa27c010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000ea7a085eb85651e30b4420daeb2935d87931349e62728f7329b46755d424c2320100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000c63dfd97609d6fbdd6300bb957b3feba86755bbd5a36d6b4ca40bea6a1b2517001000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000941f291e924d50ffa173fb0a86b37e11915b06910a54d418b0a20998d0303a6901000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd555801000000000000001e825121b8beecb30e9962a555ce06b9e2c65fcf3b0023178556330d565bcb4c01000000000000001682c3264fc0b2a36eff3a5864cdacfe726bf5972ca8f4c5cad6f18bd450d23e0100000000000000d412fb5e47b946e69918a6391ac30283949ba6d99c491d78fc5014aaa2144b590100000000000000ce323186d64f267b11e6dd0bef533ae85d282b40f90e38eef37f191a7927663f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000b013a8307c3572f939c1a9759a832f35babc847cc022588903572c8def43267d0100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c0100000000000000a0887bd2c2058519096e8dcebf495f2ef274490994e969063f72a41b3fab80720100000000000000d2838a30fd86f5f19aa80481630ecd0ee0fe5aa565ea15786f37a22a87cc1b7d01000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000de5f9f5ad3209502cf429630c2038b8818b6f8ce5685c2730077349802c5792501000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000c09be470dab56a2b45b94ba6dac8ed9d515f1d3785cb4eacab40d0a80aa42b1c01000000000000007878535e43226cf81c42183db4bbef4b1eed2a460f6cd423c03af9e86674647a0100000000000000526e1fca7613776cab9c7b4ef9b4577b35adbac416c48529b6058a5f9d133210010000000000000052c9327ca5c1ca830f8ff712d813a8cdc2a8be122f16bf0d1d9e77b7a9789372010000000000000026f2af62a2f0d847e3d2cccc93ec7f98c80a7b6d1bcca4cf1c4a6fc7f81775010100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d71010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d01000000000000000481a58bfdafecabbc96bd170a0ec04cc35100f1f928cca3ecc63b3639e476790100000000000000607fc085eaca16b6a51e44ac9f61a689e869efe15b4da37be15b78c17b193b0301000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000e4be18b8f5905bc41fe3cba2e5350d405e76036328042ae7edfbb6b6a9b43d5a0100000000000000824792c3ed55b88805009230d67bd8059eb9958dc23900e4b1a6efe61dc0e96b01000000000000008c73f71ea9e64834a5e048824978864a96c5c600f42f8a7350dd10ac088ecd2101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b14020100000000000000507e2aa1a2409b289b89c80f7ccb129e91a32e8d44c98723f8a97307f54a2d0601000000000000008c6d9a2bb472764af439b9dd83d68dd0a0c1a77fbf1025a0e6bbfa3e9c8e857401000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000078d986932e680d7bebce126a5aedae3e11ba0f4e28c03d63a491e8bcbd05ad2201000000000000007c552599ae2d251c1fb693009a0f904e41e59183027af5adfb8bba4133fc136201000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca22010000000000000092239fbae2557ff2ea3952c962e478e6ac2a5b3e3cfffb0eb40e8d41860ab0470100000000000000524c4d2a0ab6f9687123f9c8a9ab4fe2c70f9fc3b1863b4fde16f4dfaddc7d570100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d26273010000000000000000e2ef06613c993996e6eddf381c0f035659593515d10d664fb6bc1002bb921a0100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d465010000000000000044c47763e8f2f1675b480c01304c4da58c8d276b5ecee722e45d17afdc3d391d01000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d8066640100000000000000742c0a1ea78a09c7454b48897bfde87bf4959b89c898623c8eeace7af714147d01000000000000007873ecedbae63dfbe5594da935e52c14dbd0e131b12879d573b9c002c6e5c4400100000000000000fc53d15453457faadc5540c5853f54324eec395d3647fbf99d5e6e97ef3876760100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000864cbd281011a154d93d0320865ad67ae442bf0985f0ec220e2c7db4b09599310100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000a811cc491bb3487d5e604dcf6dca3bf529437162f3b8cfb8514ffab16809ff600100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e25290100000000000000d2fb72b7c3d020239ba45289122d0ae3fb560d01d0cb3caec01efa0c8701d45e0100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000052a0f4ee4ffddedc5b9fd2154ca213cf3f49df94f4b5c36c2d8f877f5a7010220100000000000000c2041cb909e2a314df816d3234a893c1d387f4d4f9a4379d11400963b134a753010000000000000028702457fd7ea52bb88284bfcd721493ceae3ea984492a1b82c55efa1b62fa390100000000000000484b6b8012254027636d95e66c5ea7ee68dbdf9ef6ad3c2fc00cfe5c39fdaf7c010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da720100000000000000e816e2e76f7ccbdefdfd484aa8b5f904d293ae8694e21a92990da54f17e244090100000000000000c664c419396f160467b184251d893f1a1d468e0d230691dd0123d60d446c5b6201000000000000006ef86d4533f47ffd133c63b9575c17234309ab6e16f487ae7cd8914169183c660100000000000000ce60d2c987bbeeaceff8463484b717ce80cbcf3d8f8b2102e95effc88000d95d010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c0100000000000000060edf92540ed4cbb944b399cabc91a7b9641bfd553bae0479b442f9d5bc7c2101000000000000002abc6a5d748978a4023c3597c49178db2349ea6af5a9b61783095af8e427027c010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f010000000000000050f5f5863f99e896975813fda8768c72ff25fb54e25385a4263d1ff9a19152500100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000540926fefa2d0424fd451bfca39a01c0e1a3fc811406e127d1dbfdc6cf9e9770010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e85290100000000000000e20f692ef4d1cdecf74a65aed29a64a001ca7a83f01f8440c5725ccaa8fb8e2f01000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000009a53749c83cc06460148d884f1ea5b71897466b237cf16baa45395d78ce48c1a010000000000000064615e1323ea003b7c5a63ba2c8bed2023103458eeee7cf45244580d3ca59b6a010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000048afb25f7981cc67a66853ec05675d83a2d99e6318a6a7a135ed2916cb70a26e01000000000000008a0e2d0af87ffb812f6e6ec229d02056e812cc4f5f5743cc638a7d3f279f0153010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe083721560010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac5610100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000004a547dfc28e6730b12b365a1cb7dbca5199e04d75aeb07c7b5da4b0245daff5d0100000000000000bc62cca37518b73aa22efed6a88147f84af5db7b82ef7671d9bbf03c76d22b490100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e0100000000000000e063e31ccdf34c3372902f92ec915f213538370658d9272f9ba6d8d6943ccd13010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d6401000000000000008e0b3a52dae8c17703f7093d386f5fd8fb1c35a585e7830ca06fa84ba489f2610100000000000000b4e86264fd55571f5016e82a1eeba2476b1d0349fdd175d2443ea30bee0b5207010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec17201000000000000006ac767a27a7c0d66cc9493e93dc9d37a114b8a05ef7ee4b22db346661446e6280100000000000000bec182c65eec6dbc4d89c474a6f6fc6cb6853946eacfc93762cc3616ecd3c47f0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee1901000000000000002271d61469f9f1e5a0832af7de453015b89979fd740526080116295f4a4a516d0100000000000000645077cf303943059891df150649d1d828052ea4249bf50ca3b6d29c6ef1984c01000000000000006cb06d06d7955ca5e61897e7f2c4576469e09185f010d96e9bcc84533d1a036b010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe20010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000ea03f9dc29ae9b7a053c12b6079664592d2cf46a30b43edbb2d2d980223deb11010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe83233001000000000000003c8330f5d7f34fbec333663bab066cbac4403f892df7659b1c118c185c4f16220100000000000000b20050395fc81aa60508e362f02c75faebe3e4909c7a23721182ce791bb701130100000000000000aa92f32eab7cb844bfce67787d5921e9eb63368577d9c46e9c276dbd2288064c0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d69010000000000000068147c36d367eb1a203b303c65ab3d32fe777cabbca8d39e08ffcfd624b3614d0100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f0100000000000000c4687b6d8e527d1ad3be71f2b242bed92eac25b159d9e142e6922ace2dfe5f2101000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f0100000000000000d80eba00fd45442e9305434d637564baed7a12136c89734e4ca850db419f0c3a01000000000000009ea2cb3e6c59685087e59d6d45fdccdd5e6fd4f77fd90b4749f65113e23f086f01000000000000000a43fe86fb05c4f76c85474f9867e987d7f894b0f7fdba0b85c323c3103d3b4a0100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a01000000000000004a7791775365fadbb61f37a0d2f6d298c0c7c3a4c9402821ec909972fd5f8a4c01000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a01000000000000005ee252f56786ec8e512d233a09c3bbda21d0bd3a6ed7e8e8c0fe035dfe7989330100000000000000e0d28dc9623e77eeff6b0aee79793b3a00cf8b1c46fb79c8e6ff8cfeecc4af120100000000000000d0106f6fb9b008052da3223c389525681d9b6e4fdb73a4078f7f1949bfaa350201000000000000001e1f47deab3e4083f7d353b746b719a9f5aaee3ae2cf6b37a4d710f95d489a6101000000000000006638aad1c437c5f2f2ab4c46b786db51bb8c7e6af2ee745934811712f8d83e0601000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd932571210100000000000000aa8727e4b0a95c761b5f2506159a25195d3efca5dafa334f871c3cf262fcc56e01000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f0768520100000000000000c88d83d7927e1c1dff61de6b8321ee64746d983173bfb3a03c3d4789ae3f202701000000000000001a8de0dd57069c2986c48b25cd40c13d2acb62fad487a82f4f13738e34418c1f01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba620100000000000000102ed4107066f497e13d3c484a9fa60e506587e19541069dd4555a91d63f27040100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000003afb6b0dac3a05453f125943b8a26269202d297b991e054ca851fa68bb4c0853010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000000c3292b5065b7b78a2de5f4fe397fff21df37c0ff7eef94c5fc4397f760e6e4601000000000000006edcddd44823f4f48b53a4172c3bbe239842ac1e663eeb0222fd715d050d7a5101000000000000002234e01370aa10159040ac893ffebe3eb28540b8eebe03f5ca658b20866de36e0100000000000000bc3bebcbf6142977fdbe8492bd2c5947a16d38925d56f09db1ef164b608b912601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009265e7be28a8f56a974027b630bc37703b7ef21b1b1e4253c54d605f4d10da1e010000000000000046b14e55053a02087c957664d32fdcae6ba1c96051239191c63df564d784e1720100000000000000aac332418d8cd5cc9a903a06cbc8f639d32b32163713dd60d065b949abf8367901000000000000007011cf9db6405d2a4b0ffe11b6a6f9de0c8919d0f70e980d6c6e221e98590e0a010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e21010000000000000038ab6c4b18e1c86176cf53301ea990f1cdddcdc3f2c3e0f8dde126fa59f60b2f01000000000000009c4d874baeccbb19733cf93f6ffb2f44d9b9f5191ead84f3550c7b767a75061f0100000000000000dc9fce160b2cd9c97257b75c861d32348337de685c69042659eec13a0055b4500100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000662f5ccb0a265c7438d4166b72c2d0106b74f928e995dcd24004c67ad715217e0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf00430100000000000000a49dbb103be9a66d67ad5c0d11032866488f39d0a106de579d913dc7099a09260100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000547c6a159db6eb46da71179d0d15dad5691617fc7f3c6a672864655997035c2d010000000000000040884e6b9876fe866d109aae2a5a6f1a18bfe3655ec9c1fee848ca9273446872010000000000000049e7432ee40ede3d43ba6ed37822ac124d32bd6605844c728e889df99472bc150100000000000000040000000000000002", - "babeFinalizedBlockWeight": 4559738, - "finalizedBlockHeader": "0xd77079fcf54a7a83fb2b75b24bc4c7b8a776c50c5a6ca04fcf5eba857e2a7f5052c05a04443844f2007aff2b5c8afe4731e735126f337ad52776ffd32f586da47451186fd49b29a11d724d4a7e0eba71b2c74ce1f9fe5958264219cf8ec4160346bc6b12080642414245b501036200000052c4e410000000009a76cf5448916664e377946b2cdf61f1afdc50feae99314db4a62b2ecd5fb24c501e3f442fc8eb763a2fe20657380d5e43c7b8223b90137aeafca12dfe65cd01a3c5a3977a9f1d929cd0855d15aa6f8a5d304ad7f1745bcc857e6e69d0a0e9020542414245010186408d036b3647c440fec22006c5386f1eef56c4fb9314e8bcea8bd26c681f04f8910b1bb3332e0bd2ce3b2cb16a3a9cbf53cb7b1c1152b0693ac90b268eca89", - "grandpaAuthoritySet": "0xa5042f8da08bb2421ef844015c3b2ea23464fc66a9dcb4a2215fe0241f892d19afc50100000000000000fff437ff18629bf1490e5c9b3ec6f1515d46bb9b2aeaa6e39e36611f2479b50d01000000000000000334021ff54e46fb7da4bd257cf113519a0c7ee4a2251b66fe48466fed5853520100000000000000d95f04dc8ea4ac05deea7077457f0406fdd152bd03a7480e7d0de0983b959d3c010000000000000047f940bc985355be7187c709ded2b689b66d69e61e293a507f1d4f90bdbeceee01000000000000004a3fc0fe1020c7f460c7bd23d0b657c03368552b2f0a12d80a1c406fd066e0db01000000000000009b992b5e9b99eb2cd3b2b648d6db81ed722a2feb4938d998b58dcb5d159fadfa0100000000000000aee9de3938173700b3e3f4fbf2b200ae296173a0854157f40de2598dd4cad8f10100000000000000e0b1aae640bfbed119730710c584be65ef59abb3e9ee5dc8a754751e1ba163960100000000000000495a0370e02aadf1beff005feceb521a1d9bb0d85e7fe58658b97ec988fb996c0100000000000000b61e9b13e849779be8f5378a670d61991875d8e091f359384d7be73d02d506930100000000000000426b2be4596a759a15028d84e08c5c56440e6cede68d088f47c671cc3387c3e6010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc687601000000000000005b27660cd4c375f2654c6d923b29fd8abbab7e96ee040c79598be14f832f56ca010000000000000057ae0c85ebaf333a6ec3251f577cab910cce072f238d1e50046322b83bbc0dd5010000000000000072c09c9e2dc9ab20a65cf70e951352f554442514ba2ac7063966ea7bbe3e6cf001000000000000000139b946b46bee4c61be50c986f2a9ef2e76917644e2ecd842c59d61a94ee612010000000000000019a9d56ea35496122fc44fcb5c29d27fbb43520556d6f8d97753767aaa0f228e01000000000000007cd50f6921fade39653f847bddd48360668004225081a6a3ad7997f78debd34c010000000000000053a51c848834661c92e74b3c2492b8de2591f914ab75345d70e61c79be9699d70100000000000000a5b094ae7c156592baa68ce18dab6368d5b665e9a0f07dfc5f54f58309e086c1010000000000000053352e16d2a27fb3525d5d8750d6ad7f46b303a45e434a409ac727d5cb80432b01000000000000008c54298c6f8704498112ecb24f64f7a28ed2289ec573620b0d1e5a9a44f5fa78010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b010000000000000097743d6364cdb6c4790cd37c4c2ab5fbc6c65e8bb606625e70a6ee04ed1650d9010000000000000008cc1d6c743da905511a39a6f0a68809a6bc32f8ac25e53bb2d6aca4f493fc9b0100000000000000c9dc00c6a757495c50092362d5c70d2a971ae1da4eb67c9da9f4367c9d408c1d0100000000000000049cb09a86d544249f9e11cf6c348bc0561600343ebee89d1c90bbef3d13e517010000000000000086c42c0f6b8f7c06f9ce823eeecf7cf0371bb5b97f3c7af63872f8bbfb353abd0100000000000000d04d64a07f144638f20f081de122b88fed0cc8bda57e4810e7afb38036dd8bbf0100000000000000f26945a8a64032a1defa76e720a99649125b55751b6088205e7acab901de670b0100000000000000684768723f0efc2001562c3b2156b987601ae9431f8aaa6f4199649cba487aea01000000000000005cba2c6f569da1edc3778308da406f266aa53140381dbb3f14f22909ba6e30040100000000000000c9a741ab82126c4d4eaa6a758cfc1209bbd7b29330e89ccd97fb62ae567c8d4301000000000000009b94bc45bf79bb33f70430c82880456cd7bd5fb3ea131c1b26d493d01c5fe7100100000000000000ce8d085d4b0a9502a680280ecc162bd33533a5ebada62f3be19427542189cb5a0100000000000000a1a9debad5e4afb076cf293c2c797f0b5901ffdb8bd01611235e762411a0db3901000000000000006f4855725ebb9eced957bae43ffa7d30657ce7d06b251ce20e2218bcf929e40501000000000000007c10f10bd6eb9c1201b52c6025545fcbc310432781bbe02629b5cc9e5fdd229a0100000000000000b046cf7d24d49b720b28dd2476b36c157262208fb065c077b1b94db1e9ffa6050100000000000000749556da4a259bc1f0b8ea8e3726c2251656b92205c30b635ec9f42038f8defb01000000000000000ce4d93e25fa5302f4b059456f680047f87be428ae88579e0b862502b5ceed600100000000000000c1758f7cbffeb844419bc494a9dc65fb394259f01e9bf23789a75acc29d7d9620100000000000000c1c1ff5f66fefb5c0849e3b2333411d1f7e9dd4888600e334e7a33623f15fa360100000000000000fe240e80ff8a48a77947b394979cf361017cd906ddaab637d72cf72e729d79bf010000000000000006854c73f5703242d31d2576ac2297c93f0b5dc16ade0097c59d5dc0faa43c550100000000000000c650b1a6b34347bd80ed06b48aa4ae1a33adaa507e8ac23bf6c6b94223b63b9d01000000000000008aabd4f6d7ecec7a749c83fc7be33f3b4818cca6f93a4927b4964900df9454e50100000000000000b9186b95c90d2d00a31e7c68066bd37d73408271762604e3608e2f2c983f830901000000000000003948bfd09bbbc2fe6ac5dfe53146e32df50828eecf7b2b18cdcff8dc385cbd7501000000000000001ba602a293ccdb7a77042fb486c6e010d48b13dff2bef0a26c53637312aac7f70100000000000000ba8180cbc0dceb098ee6b22fe89978bf92ebf196a280470b1501bc2138ec02c70100000000000000f6373ec61f3d99dfcd0bcc6a2b5ddb7e9c8a7d8e5777aa58bc2ac949315dee250100000000000000dc1427d14e83926d22f6be25d1bd39cbc82a194f5e9373ecae644f156ae9c62e010000000000000003d105a30087d96b5f0684f6ded76f826b01dab61e4136e1d851a24f0088b5ed010000000000000020d4e595c50bb9558dad9be6a8784492bbbfc754b9c5fae17edf4f8a84e8b47101000000000000006ba031ff146af5199eeb335a4a9c2fd487685a489e1a154ba1d012e965fdd5ba0100000000000000608f61824d3ae16d443cd0fec15c18590c890d4105e9402cad8743fb423e52b401000000000000000ccee96768f9b1d29d5bd9e63afd2be78a90cc89d19653ff1910cb36000b48530100000000000000818a546c630b881c2161588866965649678cda0f4110cccc3533d0f20e5e41200100000000000000088f8736e1cf2ea3d102f0a96ccf51222b8aa1f93d8e42947892f4395cb5477c0100000000000000c3ff25a1743a9df92af4ccd9a7aed5cbc90f64fd538c3df0a9539128f596526701000000000000004e3fb8c16ad624c1852777456805e5352d0221269de66949c95da4076206b35a01000000000000007ad55381f9de00220678c95a19489640fc61331e2a40d927e3d833555575c6fc010000000000000069a6c84df1d25f855b91040e113a5557da8a89d80644ae7bf8d0ba416ab89b6d0100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000007727680e6caac998c03e3702c7f84e558b592dd76ab2a49cdd3dae16e7e853f0100000000000000e78c36a9d8b145c42c879754a79dde433fa2496c55d6d9f00ae577c6b1ff4dfe0100000000000000f8eb309ab851e8f98aa4bd68138a67dc4a435331598079969053a5325b874a51010000000000000059bba625d971d505a9c7d7c2f3ad69203e69e3e5e1fc1e4905fae7703fa19e030100000000000000ba95f5d0e987305bb794dfeae69d7dd6a7987aa66cd7c9d42aca15e9160ec6a1010000000000000016278af083f6d261762f8a97b6a09ff83e2f5927ce26c2e48f3c7e771dc7e6950100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000082a1428bcd525a2e77b8f5fb89c73e5fe1261e96e93b383dd2d66767c855c8f001000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b0100000000000000be0a28e5615d9ce3b866b5cf0babf6a7f0e6de06119463382e715b47c89853e40100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000007509d9697cb54f627f47b25e80f46f5d1bf483a9cab5f52df69e1a8f612e486f0100000000000000f3b1c0e43606bd49bc84e403db685b577e898b5f7c5db9052bdc3dacf38dc7ad01000000000000008a2b50acd1a4955fc814bf6720c7427902a6ce709f3a2d7c17c55b67f6f1c06301000000000000003a511828c0cdc0fd257387843fdbf6f19d5ca1ef1c29ec7e971fc9f1195eb60c0100000000000000ee5605c1a9ed9484a70b8a591339830f24530eefc4599a7c6188a78896908e2c010000000000000039dbc464cdd3a095627527d2c7cdfa40444369c636578a7e1129c3109ead35260100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000e4b2cffd0b9cacfc500050b27ecae3c55b9b51bd9a416d62605118c8ad4fb09f0100000000000000b28ba3f09e3521f7d09f0098c6743bc218ee2970068adfa5d908d9d06e627ae50100000000000000f6d74de7b39455519a5d6480c8f12c93fc7a4cfc9af39154fc60857a39ad888b010000000000000099f58256a4a5d6cf5d99f0cdebbcbe1477db461457647631cd21ca7f3120da6001000000000000002bb7b11dfe79a12110b0370510ef20d40ba8a563f517310f8bf37cf7f0403de40100000000000000b71a15131dd5df7c4fdc0b13abdd27488d2becdeacb8a42a227dd90ce92057f2010000000000000040533a786cd0be9618126633512666b1b1b9ab3b436fa653c93e2f65da9c196b0100000000000000be95095d93298171c6fb8a1847adfa173d127e13f53482dcb694f891d68f0c58010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f01000000000000006a5f902cdeda2c2161d16bd21d586720c08c0bbb7b463d9c59147338d26a8a960100000000000000bbad19c54e41fe818395f38b2771d4f83813441596016c9a01afd591c2bee87b0100000000000000f459c0d1b1e42bf6c6f976b70e15e2842d753200ce2f901a7cf1b8c9bfb10c0401000000000000009c11e35911f023df6e4d218e53412ab4e4a20c17961d63ba381c913b51f394c00100000000000000ac61d1b7ba7b5731e691f8293c6338ef8e909f97d7eb94c0e7874e17afb0ea5b0100000000000000ffcca343512faeffe1cb3a8a7ce62fa4ee0c7f6a5f3e5ac883482846e132813d0100000000000000fd4ae377dbe850ae5bdd50c71831ccf889ede1785d4011f20e3ca6edf0b93900010000000000000037483029302a84623f0a8db165fbed905b0a4fc25e7cfb56e975a0e98336a59b010000000000000053b5918f72e73f92f32b578d1b602f0cc554d98bee8c4e131ef0ac7a63399fb40100000000000000f9908ae5581496061d7e62b966463ac3fe3b52c4dffbffe4d565d4eb3b8b6dd00100000000000000c7d9cab0fb88dccd0cf4abbf5df9d7f36a3de439c5070c599d397e74133bdfed0100000000000000866fe4ae134938ccf4c5caf01358881c75cfde473b0bb8a2623cc231db2ea3b901000000000000005d202a011f023dfaa6713f16bfd4409dde8bfe594abd59e2be32484c73b979820100000000000000756dd17b3ef4077e4df06f9ce7eaa98fa7dd158f1cba596567f0b89cc12544270100000000000000fc555c014d927fe7838e840609916b9af5d93892ce6f394398858286802b8c6101000000000000006727561447ed474ff4e15645b952a37fa5008d4e694d4853bb55594fa34c4f340100000000000000ec295fb809e22c332aa36a57afe05f2c093b2d13e52b0971d8265c5514e4e9690100000000000000efb5f1e4c4ba37f8c159d452d897c607a58518b8355a8454620b3e3ccc3271230100000000000000f71fca8770328d06e9a45e650e5f58c15feb8ec77ca2dce397490bedfa37db4801000000000000008c3dbd5a1b928cb51e918452191e5328b0f6e8de0259517831a90b02dba3e6110100000000000000aa6fd06015b8309ea9103f4b0e29bfa7e21ab5bb1431c3a76433f591c739f8380100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000005b78368482b0584326a9c0176949523c03ab1446a8aa021701aa9837ccf04fc010000000000000023f07bcb8dade90cefd08732183d5fe32b89ad8a4f84987b9e4e7e767c2587560100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000035c917f27530f3f99142c77541cbc6ac4f27fd49008c0371e54640ec3b49dfe0100000000000000f916634f9fd7e54374e30ac6b722ad1793c13cb2d5f2ad38769eaca2f79d414b01000000000000007ba967a2dae0d8839cf44710591db994d18e53b25ec6d0f861da0037c4a4366a0100000000000000acc5d703d7819d7993784e6ce107cd4c5625954d3baab0bcc07afe7d8c473a2201000000000000004d4a140145f83598fc5a3839260723176f643ae286ff7b2fc460b897fb050a4501000000000000007d3011d58467b4677391062477ccc42adf126de1587287ea7f1af3510817840c01000000000000007e15c89cc954f1ddd6a5f2e9f482c1143f5b7b4ba406ed1264fd25a999f223f20100000000000000442fc5263e255282e1dd5fc8e56c3e72c18648243da370fbad832275de9abc5c0100000000000000d0b4aada93fb3d0b358e8d59f8914f5987acbc6f5b4f3e12a1ed8d962eded82701000000000000004f950be5bf61958a0ae6e6a036b85b33ba838de8bd5508b558cbe2602d341168010000000000000082e6b6bf1f275c59fbde0dad91393ae690d5e644d11d23898a9ccfdda025920a01000000000000004659b8114500937a2db0c810e194610c582865305e141d04e52ee989b80edd87010000000000000074b60dfb12745236ba9dc8f925efa21482b50c870c567638ba3240a05fe363d90100000000000000d761043f405069ac01285f1ff258450aac675f08d906b1ae0a1ce54eabcb36d901000000000000005047f4a799401d6a39e92c7331147b38b421ea59f96d87426c294c660d1ba3d10100000000000000147e7434965c27c972446e97a5f2e8c92e3031858a7d576ce5187eed4e6434d70100000000000000423e84653aad03ac3c5a6eba17239343a6856a514bf898ed61822f67f2bdcfcd0100000000000000d3b3d9703a265a51a137b9de348587c645a168981ef3e01c9dc482856751b8ef0100000000000000cfb9f7f1fcf903a51af729ed1647aee928630e148990309f9dc9f3b14b114b760100000000000000a2ee8d9c22eba97998d63854409d99c87b21d079f5c888d863a81d41d6abf0110100000000000000d14a779884de1b2fbf079b8e47e8c0edb1c29e282996899a4eab5aaf1f4f41130100000000000000c2344c6fb787621295335b6b5acbab9531199901492d41e13a64dfb2927f83be0100000000000000da0ea9347962105f4b59f4fd04a85b0493736dd9afddb20829771816bdc3ca6301000000000000004c51b84496e533a7f1bb2b806f3733a7f0a48543976d0a4e5410e831f93e041701000000000000009c39dae41fdfa2e72ce57a6c899b01edf5d1aa421d429ba86d4d1741c58317590100000000000000615d64d17a182504db609d14dc6a45a109817cfaaad1608b4c48382bee48d3780100000000000000155763a153e0c02b2eef1d8a9cd8a50a9eaac9d3af7ad1e559b1e2320b521e1c01000000000000005208fe27477acbc6750d0caa831c0b26801c58eca046a6cf9d4143f85d877e8301000000000000004242378110faf2970e19fa227955307e8fe2d055824a2aa3ca2600b933ceb63a010000000000000025ebbb2a00126545bbedf00318a78b6e61a0b52c81e30231ff45bd32e311472f01000000000000003773b05d2e2660498c8d407a1d6223423c26aa08b9b3656af94d78b861fba22f0100000000000000be177f23c0065f9135b057181534bbf09c5f9daecce6c99aa2e9267202fc4f900100000000000000500a9e1ea37636c24ebf4e32668897dae936eef42b6da49027f606d4f24a7e96010000000000000039712f967c4e06d284d6da4735cf2823c1f770674b668f7bc896071c3fd41eda010000000000000046f540d46498b7e5c53d650c28a682f61a769919fe3a3554114cde720c05ebea01000000000000009a5df54f5051a3f41be540c0eb233df31dd82a3acb755a3b42eafb6ca47b06d201000000000000004df6e4d7da2c11ddb9153c714699f9ab625bbcd5e8e38f1cdeee567dc04abc610100000000000000d9b96ab14d54cf0093b00b5bb592a6ea6036f844bf7eaa3b5181d0764e1724b901000000000000009cfeed14dd2f96550a0e7edebd9c9a8c8b1d8f7efdd1abca01987654239f3c860100000000000000fd2fe2f117d597b29474a740ec767fe51cec93544d00e34269b78ddb31225f3b0100000000000000a74ff082093aff29e9a0d9adeb6e6df264b39c15ef1a82bf942e8ba76872bac40100000000000000a9413b5f6af8458b220e467cfa30ec635e0690a843bae76b0c25a387238e45c701000000000000008404cabeb0674765bb77af690fa838ba28fa2045d602994a89f07680f4851c83010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b8cf76a8082d518016ea5588be57b64e156ed23b0f72248975522c23d15ef16101000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000c2e6a39d423f82b034e5370932f02653ee45254ced3ec2094640508e3d04d91b0100000000000000d0071dcdd61d5f4df542a2978fc2acd51996ab0abccddf4d64732fc7b83c073101000000000000002a38a4dcdffc571d547ee3e59121fdd378335df7c65877f983f0957cdc9824130100000000000000606f8c9ce630a1ce30fc7b7108fae524bc47bbbb2c838a985d9a651be4fa03450100000000000000620c78305072857b43dadced80ebc057dbfc82b58c14c7b63372ef02140867650100000000000000baf0112f613aa6fff341d67decad56d1c5744a3ebb8e3577e82febbf3535b3fe01000000000000004dc2e72680dbf0156818114fa34d3591f8e6948df25a128e191190c66f6ac35301000000000000001ebe41ca4cd399901ffe5f6f52642630820500e4a96cbef4c80c560cae38d2c601000000000000000442cfb3cd38604b2a5251638e9fa7ee6b05968c731f393b78a6604e0072b09f01000000000000007af0706d921a331b5c1f957a8d1decf15aa0e3377a80d72107693afd8614ef8f0100000000000000f5e2c973d4ccbdd36d8ed4e3dae75d3b50002cc1c74eb0a1fe29ef1ef8e3f0cc01000000000000003ded8aac5210831cbcc4d0cf1f96f2c711afc90a6f6f35a4ffb766be1dfbaee30100000000000000258f23d60623fcb1d699a35f79776a9e81e979150ba5098dcc8e3a69a407ff9a0100000000000000f56f5b3de4f46bcde88569888783fd60646806795807edb1e04ec3dff85ff3e10100000000000000b1f748c87b12edf7242b4719cfe68e6761acaa4329beee538d6ff740941d3cd301000000000000008b35aa0d212e4032ede352d5426696c260c9ecffa632a2e14e6a6629a6c9f637010000000000000072341ca1eb3a0fd4e790318b51ace114315573d5355c9d5336e39382ba0642560100000000000000a79cd2241bd68004641baac25c1900da3a9e6d83101aea3ef2a58d78c657272f0100000000000000b14911cb101f45b88c437a36bd82a5f8641b1c55052060ea46ea2baea570e8bf0100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a468101000000000000003c1dcee818434058b7de26ee874ade21bd1149185d6dcba1f67048b931ec3dda01000000000000009d31c78ebe9664e2bd8ba41cddcd9c5b9fb0cc6f8be0a2e5b91f6bcf66a5c7530100000000000000290be52ae5259f3e8bd0cdf454004607867a97c1db86d0c9ff16c8c83625bc830100000000000000c91199db47b7591bf1a928534cdbd3e5979a0d09d6a464f2a9607ec444bd8a9701000000000000005e0fad9f1e6837994babd7d55b2d4079af785ec48568cd1c4efd60ea28162e8e01000000000000004c43a374e6b3e6f7d6c5a6b8518ae0d0d232a1c46d63af8fbc800045a14cbe93010000000000000029a6535bac723c2f711e590c67f0bd60843cf7888eebca46025ae57f5ca1d9290100000000000000b5f8f28250bc934f684d57ce969bc3171e5a92085ea3fc4f5cbd3616cb4c7c63010000000000000022edc626e6c76166af032395ade8b874ac872074c72e3e6a70c8f668993d19e80100000000000000ee73c2912d35fe8d3f5bd51303d89bbd8500cd12b3a17594ab3e9ac4cee922200100000000000000ccc84b255e5e73b971f2e71d1903b5ef9bd6d0965ff3ce29c517c875bd7ab65701000000000000001babed13d56d28fdb937b07bce846689584099575382c273f7e425f822c8159f01000000000000003e6d39376bea51b81c57d4a308938c6552bea5433d6bed9f1ac3896cacbdc70d01000000000000004ace071bafa32176b1e916d9454f099b9306a2ad9efd86418bd83cd048935fec0100000000000000ac0ef45b1c0f242a4aeb0ef03a9c0d9e3ae2a4bee8cb4c35f0293bac4331e76501000000000000006bed5c36442ab221e4d825e3ef41e30bddd8bb3847153706d69d851e186092c101000000000000001887f7937a8ca4ec67ceaedebfad3d307b10f416219de1ed4f8646409eab730a0100000000000000b3772cbf76b589acf34786c7882bde8fbe77fd6474543ee882fdce09e50892410100000000000000e1c1327187f940cd73d5afb676b4b28399109aa6a6c3868707df1dc3d62a83820100000000000000ee40b85aa515fdbe6e559f815edc7ec1e321e0d152dd54258382ba31b54e447a010000000000000090517dbf339bac4cd01fcad403dd0803cb67a9b15bf024ce038eea2c7f2423040100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f0100000000000000316bafdefb60951da2738d6c9c2ef1866d139b34b5eab6944d6bae754dd3fb1101000000000000007a92827270cfa82f16145a44f9bdd9ff5038ef1b665dd520a2e61db9749094960100000000000000ebb1834a568ea7653bc66f394937a0aa4f2f617118d2161e2c11c0d7d2febb9d0100000000000000fd2d8b8e265ca440581956a7e36b57eba685631193bc4fe0a2b638887ca5cc0b0100000000000000b6d7ac98d6667fe8f4a186ef12a66b017df05a54e11b45d3f2967cb3d6b6827f0100000000000000e5f305cd6d930d41209036f066a86d3724aad2f388d354ac4979cc763c220a5601000000000000007ef02c62a02f0c18581cfb8ab7c2dcdff34e36a453a3700c568d61fdf9c8a7b4010000000000000045e03689170b9fc027db927a99842e2c13f9fcbd875a74e2b54a2663f3c23dfc010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000007a03c321222b7f7b34946e44850798fee20b9112a64e3950398cce19064b8723010000000000000035db4f9ab121f213b695b982f50c47ac04a14c54214e831ed1bbef7b9542310c01000000000000009bbc024bfe4f072b94735afda064dc3c7da2b4bc0c50cfad44722543583a372e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf0100000000000000ef27d1d5573e6419ffcc7c4372668105118256b810ab2e2dbb5e7d8280ee94250100000000000000ed3f97f83ee7799c4aeba9f40bd18134c862c1a30875fc1e038cd27bae3a739a01000000000000001e8548bd6c863891e2d9dd01c56e5e28355dc309f568cacce63d6ea61010b8700100000000000000348e8bacc2d40191a6a00e137c745a422ff8fb03148d2ff9cad75efbb7a670140100000000000000bfcc366ce0bfebc76ac157ed0814e2516786e48eb1a3313b5fe37283e9cf2c5a0100000000000000cafe2356af019d8b5f39c949b3dee71dd5356eb2655d819f485d0244e55b9fcd0100000000000000352738b28d7612806e53cb994ae9d0c04c29e66e74142b374149e9362d98070c0100000000000000efb31c5039e45fda750af5d2ea31b3210a407b168adec8f98db1f3dbc4cd94380100000000000000e2d564796e2660ba1bf553a21581f82116f775002a0dc0f26439f54c660fd84d01000000000000003732b4c704a4568eeced68b4347500bf3e5be27d612ff5382aea88100995ce1d0100000000000000bff74b6ff5ccdce9a659408871d486511938422a6e550fe0669ccd739f8010810100000000000000c149ee2bb1be4395301442de3b032c8596afa5588e1125258a172f837e8f0aa0010000000000000070603976fe118b79a53a29d112718649d8061b2a326a2809897ec904687df7a401000000000000002ff9330a8c344ad3adf4d97db014a2d0891d4dd69f5c8369dad3e0b25566173e01000000000000002667b3cc3064ffdc71758c12f2966407cdb1ac70e2cf972d547c688fd59080880100000000000000e01d6eda8094e949bfbb05c819b509a12eb662a414b822f841d9555d58e1ce760100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb0100000000000000de186294778cc927cb2a24ade9ad165956f3586979f1ac5f3b4a16edd2674339010000000000000043a9a2915f377cd4943f602be38c3bd6ef39e91562c09f18fb672884b4bf8eab010000000000000059dadf17dc0f84c1c334e6a815a04bdfcd0988a3f3bcb713c66ae29e17276cc60100000000000000297dc7cf28b3d40a42c5e8faac876bf7227c670e6e031dd0e0537f4fb70e6fbe01000000000000000909c1eff97923f6bd47e6ec8b5dc163b32d5b675a3b13138d3599e5cc77ab9f0100000000000000a5f788e86ee2d311357b7aa4a128f063fa4ee36958baf10304c10bde7421aa2c0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b630100000000000000f7bdbb5c598784ba157940b08b5c5aa967d0f3faf60da28b915650eb39afe47c01000000000000003bb30832d06cdd3e081afef0cf2b7770bfe81dc58081d1886443e4e4547da8a101000000000000002832b59000d2027d2bf57fdb40da04bd8aac1498923397517181cc487a92815201000000000000006c3829859c7b27da7f0528e6281a406cf713971a03fa4dbb4ea973ee33f7f3170100000000000000677358fc648638cbd854d2a009dd39b8508dd3047d0c5f13bb403a64d053ad030100000000000000645b81dc1769e34a815cc5682abd3c3b3ea60afa9705a5ff2908ad354b0f9ca4010000000000000073dce1727ec50c50366378cd389246e19543d900d7e9dab8e323d04cf5b202a701000000000000002ada479e1fde7211de15900ed29035f6f07506cdbadc4c232aab96d62006b9de0100000000000000ee1a56541083b083f1a13b5f8aa4042a098de2cec4c43f3250baaba8f03a52ea0100000000000000e2cc4424464983ada824bbef5aaa8995e80ef1017c15ef3b13902599841637ba01000000000000005246164c02e9e6bfb7a2dbf7ba8a5440a189f8048373678f5b1085f217464c050100000000000000dea69c3badff9b8d7571cb6c538cd099544da7460a19e1b8651c5c530a6dd53c01000000000000001889f1b031fa7d64c4b480a17cd2941be2c02681bca397c93607091f37bf5ee1010000000000000005062bede97a45c6e1c6b593675ee07ce969fae45136cc2b2afc6e705a77f4700100000000000000fd734da3c98d7d56f8b9cc92f389350f3b6de2fb5917d338fee9fd961978e2a30100000000000000dc6e03f650e4304ca8d1598dde8d4faf45891987bfc49ef785ace47c4c0b5573010000000000000084845f99ad8fe89b7aa136c30b71b791015e8801b1d42cbf9841a0b90e723aad0100000000000000ee145c84de0c536f9d5a7472fe520b20c036ebb714d5b4d51ff913b7cd69caae01000000000000008c258b4ca16dfb8e5afde4cf40fecf115307798117b4860475511b3b5d5615840100000000000000ea8c8bec277832ff4f31396f76d6117026cf73407bce46de9ccfd17c686ca11701000000000000000e7bc96895730726225e47e31c742fd44d3936f31ecd32658c694fc11df25224010000000000000016de137c03756dfabe67ce17e70158cf3d0ad00622b4ad02ed5ff16631f1c97901000000000000008873eb6d260a77ad37a779b9d6c87eabde1fb0be17ddfbd8c8bef64200cdf0db01000000000000003f6aeb3ed0d67d71ee11a1c2e1ed66da77abd8cc8c0f4d995d64fe4ec873684701000000000000006375ae0c1bf2b0388e16971715fd68c31ed179f38947531c165f0da2c3fe7667010000000000000012aa455c35356255f9ba286193962f3bc23f7fff565c1995ac21015bd946fe6e0100000000000000447a00c24ddef95382f0fce94aec3aefb0e8f0cb1a635bfb05faa030d63c1130010000000000000047ede3eca5f6c8f0a51f2d36d7d1c236aab07a8b2aaa6ab08c8ccf8d87ce3dd1010000000000000054c3e0cec10a6cade078942e7f79b242fc4a2eb1988eeb0ee6d92c8653a29c960100000000000000a5d172126aadfe80d2b711776674d61df5a1cd1a0129761fb2d2de58ed9d48a001000000000000006b5487e03da258c7c92add43a1b5a99a0b40f8316e758585150877bb6fe88b320100000000000000af470f2d66661e59ad85302877ba095309d859cea3d5086c5c184030c8f5bdf301000000000000009a0ea02dca493accceb975732f31c9d249d4c90ff1ca0bd86cbe00f1728146b401000000000000004485615186ae8ad33aff337594a7f8325d3a50201ee04320fb1dd2eab9643d1601000000000000002b07c366c1ed899a2ac9722b76e092828714a8177368e51ca05ec05c565866b30100000000000000e81206b483fdcf1fe42145f27d1efb8178a57ee24b196285374037da2a53b32301000000000000001ac44a1e32a5aabcb2bd23d6586da06e7d97d49a36cd670acaee574df1b912210100000000000000ff568b8e0dbe74604c6d04b5de6f2df03b343bea074c4495c6a10e511ba473d9010000000000000056563474f25233f9c2297766972922fd80f4dba402594c9ce82af58a9d0f9d07010000000000000085cf5e7395cdb93f9c9ba72075847443f040f22f440f0e868fbb5de594642dee01000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd880100000000000000db106e27c5b78f1a0d19e0abb47b4666c54906c5539c8596b43d36dc885e927a0100000000000000b5e0d0ae74b0ac76c0195fecca9660a241920ba97cdc5a247c7e941ee1f5407c010000000000000040d167daa1c3ef5c6b1982223618d955926af5b7670f6c1e732f4493fcd349ed0100000000000000f33b53556f28f27d250585317cd57a18f37c5d5f2b3c1bd00a0c91ea54f1636f0100000000000000e056900cabddb471de9e1846d7efdddd8b5ad400b02fc54b4402ba725c78bf9a010000000000000080629b67e7b2d6f57e9da3cb29cc8463a65d125039628124784f944b94c29e88010000000000000079f73931b31ce353119fb4063412e844b16cb3eb92e592ebd822a8c2130355480100000000000000b7d7f71a55b0e39262ab8d33e88e308d0ff39a79eae810ac8ec9cb8e37151fde010000000000000030afa9ef79458f844a27a3881655b6eafb90b3912737f1bcddb95e78eb098c1d010000000000000095885aaa49faca9622ac9eab12f2efa509361511039934ffeff93eb948eb517d010000000000000031a46e639e57d1a11119b17f76617a35b3606d206fb5c3e87710f464f7a57de50100000000000000c222ba3fffec09b85f1992db2dcaeaa48205903219789369855e347fd188144b010000000000000012c277c98d0593ec3d0f9d01e8ce08f67813197b67fe96d2be7c5ba6481515df01000000000000009606000000000000000114b0160100591a00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e11501930600000000000033101601940600000000000066481601950600000000000099801601" + "babeEpochChanges": "0x048524e13c03dabdfcd58bf3a783eb3f8af9f3beb1f83bf64f1edc5661ddbdcc76f44d260101f382f41000000000538cf4100000000004e49e35131f3b10c66f75045405b11e5742a400edb67f0fde4bcfc7a4d70839d94857260101538cf41000000000b395f41000000000048974cd9ebacb99e3425c068b00ff967287bafef687494d06c649cb83d42311079460260101b395f41000000000139ff4100000000000000c8524e13c03dabdfcd58bf3a783eb3f8af9f3beb1f83bf64f1edc5661ddbdcc76f44d260101891f000000000000f382f410000000006009000000000000a50474a0fc84f72a4a9b8493379b7dfc59ca58a261a2e94997600d14b6b444c1475901000000000000009c40155989f6072e82caba245d7db7e40a60f866b403257976b89aba6be2b55b010000000000000014b0a3a620f70ada506d6ef1b7ab099219f2f05689523af7eebc81f9ba258e6001000000000000007067d4c5b492b11e2052a2bb0b4f729a52b3667afbca7dfefa863011254b5272010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b9200100000000000000c681c1acaa82eddba6e394ddc9a2fd1af34418448d544c34966a31c837667f28010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000000c78c9dfc0033ff87657c56b7ab8cec4d1249be2de18729f743f385343af0f160100000000000000da541448a6094ef017385fa5492aefcc1880f3182fc1db64e551143604dcdc00010000000000000060f472588bedcbf6b27b576dcf2ac751e412b377a39fa82bc2b79f72ac9373140100000000000000002e496e564f088a075525d2f9155aadd1a7eb017fa36f9e16096e9db7e169330100000000000000e07afc6e4b429df62183d1e1c417703cf8467e0f1bc61f7e33954d8336c7a9350100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000c48c594bb4e173544a0379055b65d995af53256f653d04f2cf4fdf8f35489439010000000000000024d917b35ee19a72512caea1dbf92fa75f5ac2c247c4a0184d330f477c750543010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e477588789720100000000000000466c0e97d043a4b0f4c3ac4849e11f901e9b31b28f8b3e40b7cdb0ba7f7748080100000000000000aac890275190872d403950ad91e6c6c18538b3d1d65f63609e7317bf1869b40f0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae60368200100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000d8f30bc2ee88e69f60d0278998414c80f4a130b8e1738e873bcd14ef31e58d36010000000000000042e377034ce6b2a582bfd66c465252ab10ce790e4f0d3bbe99a42ff86b29965c01000000000000007e91ca522b14cbb71b45348c699b7d65c3198516ee771079b672ee3d7cfc577501000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b740100000000000000f44300f7ca18c59e32cb7d396a17c4c3b2a56bdd4aadc93b55922bb94a114a4c010000000000000042e7851b82d8b7722b9eeb5eead57b21bf533fd25acb10542a52889376fc3920010000000000000028ce9c093ac772f56acb8dfe8b33a3966d4b8699bd41814117352d397195bd5f010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc19010000000000000012a64d79e44f1adb33c85c4f2bdfcd8d8b38a34d984604f39289c9a7624a442d01000000000000009214538470b98cfa7437e630ad2f26ee55bfbd270c0a72d38e26c4f48e049d130100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a670100000000000000e297620b731b4958e3c6aa06611c6aa5a45f7e116362d64954a0a330d2a98f330100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000000e5e5f8e89cd8d58ef83abddd3d1c2079691dec4f6965af70436e84411c31f3901000000000000005c0494412a296a92296160ac510697d97288753829a5e9d02eafb5f101e60f5101000000000000007c21799f6143fa837a8c18bebe3368d60f4e009b114f61490b54e6344034040d01000000000000009a6223b8a7aac3a28f958d9f6c6abf55f87a38cd22fa563d6327a4d86da7b64d01000000000000006ca924ff8f8e69b8ea54dc988c67fbfc1d955f357f01e5ff4b8362ad7d756c3701000000000000009e280c8deea88069fe5118eefbb994d01373ff5dc213a65d06e6873b528f6c2f01000000000000002834c706b030a82a81ec43e2faf26a7d00392e1d8f2de8b7a876183ab612cb180100000000000000d0189a530b4048501596c4530054fe89f017360402da0ac197a8100ac693b06e01000000000000000aaa5fa196c5c2583c1cec2aa1c991b582fd819d8bd74e91ab76da894c4a0e3b010000000000000006ced0dafbe316bc507cfa57f506a58ad57ba7a69a8291ef87e8f0f5dceff6040100000000000000364360b4881f0f2831a226a422c79348776d43a2365dd636dea05a09381f8c2e01000000000000009092f9e937617716876caae2eee008bd44b0d0ed3f3af47073dcab55fcb1d5740100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000005a63824687de4f60534ee18a430396b95263f75a077655c751bc2045ca2ec84d010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000c665d82a27136f294df943ffa86053c5aefeca16630abc81c12943e1aebcec3401000000000000007c3526dc5579f1ef841101b573c655c20f4346fa4a6b0b6ed773d147c3ad6d7f0100000000000000ee579514d7f544fc9fb8d6383ed7d109ee98a411bb4b0b45b9354b0f73fed9720100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d1200100000000000000e41b3ecad757b0a5ecbc6b29691681df25b3d2b5f1ea325b648e607a5d76cf08010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b640100000000000000ec56243ac035f65b377444e20bc8fa7e3e75242a59b5ffa5f44270f451315f2b01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000004e5b37f3ecd0fb3131aba488083c145d60b924ef98b286a0066e0ded309e886b0100000000000000c0e36251f9ce24d6fe429ecf14bc9599285e3e27c0a541d5ac0ad1902d7ad6140100000000000000946071eab9c0fa1de9be2ad3c18041f1326faab41d84d9daf9f89c0daf9c0f00010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000005620922a6765fd47abc96615ef5b8b8575f18aaf8507f6afb86129bc1080994f0100000000000000b4b145ce385b4a3d83f2daac46a61874f80e58c468dd624acc09a558be02c27d0100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b01000000000000009eab0bf9d73d6ec7f04a484806584d29e59920968a9b9e699e45888d0767b5560100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a0100000000000000faa52c51af82fe8fcdde5ffa213721a8395acf22e30bbd2aa420626571e6183d010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa190100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c360100000000000000ae272f5ae4e197a1fc8e670d3aa7bcab325a39d1653b5440bb7593788d0526280100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d8708132010000000000000080413d2894759b53a03874bf96ffcb66117e4a08ad7f159c008f2b3b6cfcbb470100000000000000ea885fca10a9473631bcca2549cb8183beef534a7ee2bd59a0a6f74d97bcfc4401000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000f2e49b313ed23755c61ca69aaae54996c4b15e8ef882056b33c440bc7c6976170100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000902741c83009936926e687f91a203fc2bb0dea691895ef4dfd1d85d86f408c7c010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000098cd0a4eae6f560a9e760f8b806b36861b805798b4ee0ada29f6841855d51d030100000000000000584bf60b8b17ddaf70f87f371bd2b425a3637e05c1b75469f45ea85717063b6901000000000000004688e3afe0224c7d9f9ce7308a282aba1ddbcce69b0f18c10b1ec2fbc253d77d010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e01000000000000000ea183680db6337b592f7eb5e9112295d101bbd140b6064d6a662a93d13202000100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b351501000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000402a67126cd160c84edcb39374164f3a39aec59ae72cb66dd9fbd1e9891aa27c010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000c63dfd97609d6fbdd6300bb957b3feba86755bbd5a36d6b4ca40bea6a1b2517001000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c744501000000000000009604f5be9d0b0e4ee57cb7f1428abbad605be0423c4600cebbda85cbcb17ce300100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd555801000000000000001682c3264fc0b2a36eff3a5864cdacfe726bf5972ca8f4c5cad6f18bd450d23e0100000000000000d412fb5e47b946e69918a6391ac30283949ba6d99c491d78fc5014aaa2144b59010000000000000020778d1b86af98ab30d7adea5f3a4f215d6d4a9fdc892d8999275b2c311fb05f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000b013a8307c3572f939c1a9759a832f35babc847cc022588903572c8def43267d0100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000086cca25ca588d995ba36f447a87ee00073a24190e8335247875e1bb25823f8450100000000000000760016d0fe1d719588ff1b1e8057f1e7a14aa6c34947540e6fdaea91ca5c602601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000de5f9f5ad3209502cf429630c2038b8818b6f8ce5685c2730077349802c5792501000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000608b753074d6a1fd8e099224a7495f61e3db2cb91e1e88553113057a5f49533301000000000000007878535e43226cf81c42183db4bbef4b1eed2a460f6cd423c03af9e86674647a010000000000000052c9327ca5c1ca830f8ff712d813a8cdc2a8be122f16bf0d1d9e77b7a9789372010000000000000026f2af62a2f0d847e3d2cccc93ec7f98c80a7b6d1bcca4cf1c4a6fc7f81775010100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d71010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d01000000000000000481a58bfdafecabbc96bd170a0ec04cc35100f1f928cca3ecc63b3639e476790100000000000000e682cc2e71eeebb447a353fdf541b2ce7f9920ea1ad2d832bc35e3b49169bb6901000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000dac9ac99a034e57ae0f558ad981c1b12243c08cb140c483ba5dce6878ddab74d0100000000000000e4be18b8f5905bc41fe3cba2e5350d405e76036328042ae7edfbb6b6a9b43d5a010000000000000046d6f6331c4776c946073cfb18164ac2b7b0ab2836711373465794ef4a6d3c2f01000000000000009e5b6a03be0ed1cb27d61340f02efd1a285cf73519dead55195f001ffa274d4101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b14020100000000000000507e2aa1a2409b289b89c80f7ccb129e91a32e8d44c98723f8a97307f54a2d0601000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000078d986932e680d7bebce126a5aedae3e11ba0f4e28c03d63a491e8bcbd05ad2201000000000000007c552599ae2d251c1fb693009a0f904e41e59183027af5adfb8bba4133fc13620100000000000000a6cfacf0aff2d5c6e8eadf71f397a64f2863e5f0b8793e3068aebd5b3030e13101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e6e897a3011883adfe5d7c58e45c769c806277a5d8bb7aa36e232297b747b04f0100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d262730100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d465010000000000000044c47763e8f2f1675b480c01304c4da58c8d276b5ecee722e45d17afdc3d391d01000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d8066640100000000000000742c0a1ea78a09c7454b48897bfde87bf4959b89c898623c8eeace7af714147d01000000000000007873ecedbae63dfbe5594da935e52c14dbd0e131b12879d573b9c002c6e5c4400100000000000000fc53d15453457faadc5540c5853f54324eec395d3647fbf99d5e6e97ef38767601000000000000001e9c3192d1c2e7e1d5aa731c1bd3ffac1b55bfff1cc1beb0745a6b54b4b32b180100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000b8a51609827d3b5283567a63d2585b896a64cdeae91803154a419cb6febac0090100000000000000864cbd281011a154d93d0320865ad67ae442bf0985f0ec220e2c7db4b09599310100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e17601000000000000009cd8560fd122845a222340da6458ce97af240b695b3d22fdcd4287665cf5b3440100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000a811cc491bb3487d5e604dcf6dca3bf529437162f3b8cfb8514ffab16809ff600100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000d2fb72b7c3d020239ba45289122d0ae3fb560d01d0cb3caec01efa0c8701d45e0100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000052a0f4ee4ffddedc5b9fd2154ca213cf3f49df94f4b5c36c2d8f877f5a701022010000000000000096a550a5b080ba4f333c58a9f4113a664c6e335dfdbfa227bb6f4808351c045b0100000000000000343a9649237a3b9ed165df5a8b6655996a9920091530b4896b0edfa3afefa60e0100000000000000ca9919b307ac6204475ff029334863d464042fdb84da988119b6392d5862cc78010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da720100000000000000005330f74dbf024dccb42c34e008d84a5d5d8ee33603029b4176ad6579bc504f010000000000000060868aebd495f442d029a4a0eeab5285bf7ccc82988417429030dfeb4080fe3401000000000000006ef86d4533f47ffd133c63b9575c17234309ab6e16f487ae7cd8914169183c66010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c0100000000000000b45837a3683c303ef060d8126c919a1d13fe45b84c42ba393ce99eb28a9f70480100000000000000105cd6ed1f55fde42f7c82d0667316a4f1e26e9e53d96f540e5aff8905897b5c010000000000000088b3ccf1680a221f1ae9f8879fa7963262ab735078ded24cc2fb209f9188031b01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a7748010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f010000000000000050f5f5863f99e896975813fda8768c72ff25fb54e25385a4263d1ff9a19152500100000000000000ccb5a9652f3be5d85fcab3d0b8c2eae27519ae2f7befa40c34b89751bbcce40001000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f5259050100000000000000540926fefa2d0424fd451bfca39a01c0e1a3fc811406e127d1dbfdc6cf9e9770010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000009cf033522e1b00e5e1e4862b8de818c62a353c2ef900717405861a7b8afd911f01000000000000009a53749c83cc06460148d884f1ea5b71897466b237cf16baa45395d78ce48c1a010000000000000064615e1323ea003b7c5a63ba2c8bed2023103458eeee7cf45244580d3ca59b6a0100000000000000b60ce4c500ac9859bf4a3ad89aa03f37e4b25b33da50fd825ba53dcb222c9f45010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000048afb25f7981cc67a66853ec05675d83a2d99e6318a6a7a135ed2916cb70a26e01000000000000008a0e2d0af87ffb812f6e6ec229d02056e812cc4f5f5743cc638a7d3f279f0153010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe08372156001000000000000001e2543674c697ffa09657ce9f9c4b610e46da5d73124410b327e6ba5d432263c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac5610100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000004a09f648a1583e14379a3a2543bb6d67201cae1ac2cc90f351f58d5574e02f6201000000000000000e21a03fbe9885a475c4875f3f912c8703945e99cd2a85f75258fda7b6022b7c0100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e0100000000000000e063e31ccdf34c3372902f92ec915f213538370658d9272f9ba6d8d6943ccd13010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d640100000000000000fab301ce05079af0f67a042f807cb17a770c0e1a2ceb3d956d569b44625df87d010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec172010000000000000012af78070e965616e16ab8cdceb871c02e09b180e3f0a69083419196c9ec665d0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a01000000000000000e99696f88e19e20d306ad6f8afb760f16c34a1e7bfe6cd70848e2d55cd2463401000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee1901000000000000002271d61469f9f1e5a0832af7de453015b89979fd740526080116295f4a4a516d0100000000000000645077cf303943059891df150649d1d828052ea4249bf50ca3b6d29c6ef1984c010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f3401000000000000008681a5d5d2138be72753e197ea3616c760e062e2bf2660bc6b33a37615edb03f0100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000f2060145fed18a41469c808b9c9f489ab28bdd327529621512b7077add309d1e0100000000000000ac08cb32400c07259add7bea3d895233f121f29c1b6387bddbb121d5c122e3570100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000ea03f9dc29ae9b7a053c12b6079664592d2cf46a30b43edbb2d2d980223deb11010000000000000036ff2156d388346076b08a5c89aa760b714eb1bd293e2f3e4c4f35049cca9372010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe83233001000000000000003c8330f5d7f34fbec333663bab066cbac4403f892df7659b1c118c185c4f16220100000000000000b20050395fc81aa60508e362f02c75faebe3e4909c7a23721182ce791bb701130100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d69010000000000000068147c36d367eb1a203b303c65ab3d32fe777cabbca8d39e08ffcfd624b3614d0100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f0100000000000000c4687b6d8e527d1ad3be71f2b242bed92eac25b159d9e142e6922ace2dfe5f2101000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f01000000000000009ea2cb3e6c59685087e59d6d45fdccdd5e6fd4f77fd90b4749f65113e23f086f0100000000000000ec19137bec15ab7c3cd7625e029b026746f6a90d28bf28cfd61457c40a8f26660100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a01000000000000004a7791775365fadbb61f37a0d2f6d298c0c7c3a4c9402821ec909972fd5f8a4c01000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000cc52bd9b4a740735cf134a31165a2d024441d5ec6b561904c00d2193da41d15601000000000000005ee252f56786ec8e512d233a09c3bbda21d0bd3a6ed7e8e8c0fe035dfe7989330100000000000000408e999ea747d52cf805617489435c05b3e91fea3d7013aaeb6134065bac863f0100000000000000b08365edcdd4d34a08e76edcb6a883a99eb396bcff3534f65a5c722e6d15fe020100000000000000e0d28dc9623e77eeff6b0aee79793b3a00cf8b1c46fb79c8e6ff8cfeecc4af120100000000000000d0106f6fb9b008052da3223c389525681d9b6e4fdb73a4078f7f1949bfaa35020100000000000000fcf9f322548d27f949946778fac8738b187065d56fc3ef164055a14e1ff8192701000000000000001e1f47deab3e4083f7d353b746b719a9f5aaee3ae2cf6b37a4d710f95d489a6101000000000000006638aad1c437c5f2f2ab4c46b786db51bb8c7e6af2ee745934811712f8d83e0601000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd9325712101000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f0768520100000000000000c88d83d7927e1c1dff61de6b8321ee64746d983173bfb3a03c3d4789ae3f202701000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba620100000000000000102ed4107066f497e13d3c484a9fa60e506587e19541069dd4555a91d63f27040100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000003afb6b0dac3a05453f125943b8a26269202d297b991e054ca851fa68bb4c0853010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000000c3292b5065b7b78a2de5f4fe397fff21df37c0ff7eef94c5fc4397f760e6e4601000000000000009a62ccaeef1677fa3fde2e172bcea58f695a34304ccf5594b74fc7a7ce9fdd0001000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009265e7be28a8f56a974027b630bc37703b7ef21b1b1e4253c54d605f4d10da1e010000000000000046b14e55053a02087c957664d32fdcae6ba1c96051239191c63df564d784e17201000000000000005cf9e506e47672dd81188ac6eb1f4663ef21002e3b99689c772a21d52cdae553010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e210100000000000000fa2b11bf5823233f9811719bc222d1a99fe1ed274ff1761aec90b89be97c945c01000000000000009c4d874baeccbb19733cf93f6ffb2f44d9b9f5191ead84f3550c7b767a75061f0100000000000000ecc12a9407afd557edbf63ecf4e31c6d56c3a4b9f7b4a123ff3d4af9cdb4c6050100000000000000541be93561ac4abba30ffd6362cd8e0b0cc2e1dbdcca8e5394eaa80167e6993d0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf00430100000000000000a49dbb103be9a66d67ad5c0d11032866488f39d0a106de579d913dc7099a09260100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000e0ee8ff76b364ad2ccc3e82e69cd700c0895607a449c5af3745bb3018a184322010000000000000040884e6b9876fe866d109aae2a5a6f1a18bfe3655ec9c1fee848ca92734468720100000000000000fd91e3922a7945adc06dd75738a64c9a2d79d223fc60ce9fa68f247ce34a8ee401000000000000000400000000000000028974cd9ebacb99e3425c068b00ff967287bafef687494d06c649cb83d423110794602601018b1f000000000000b395f410000000006009000000000000a50474a0fc84f72a4a9b8493379b7dfc59ca58a261a2e94997600d14b6b444c1475901000000000000009c40155989f6072e82caba245d7db7e40a60f866b403257976b89aba6be2b55b010000000000000014b0a3a620f70ada506d6ef1b7ab099219f2f05689523af7eebc81f9ba258e6001000000000000007067d4c5b492b11e2052a2bb0b4f729a52b3667afbca7dfefa863011254b5272010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b9200100000000000000c681c1acaa82eddba6e394ddc9a2fd1af34418448d544c34966a31c837667f28010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000000c78c9dfc0033ff87657c56b7ab8cec4d1249be2de18729f743f385343af0f160100000000000000da541448a6094ef017385fa5492aefcc1880f3182fc1db64e551143604dcdc00010000000000000060f472588bedcbf6b27b576dcf2ac751e412b377a39fa82bc2b79f72ac9373140100000000000000002e496e564f088a075525d2f9155aadd1a7eb017fa36f9e16096e9db7e169330100000000000000e07afc6e4b429df62183d1e1c417703cf8467e0f1bc61f7e33954d8336c7a9350100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000c48c594bb4e173544a0379055b65d995af53256f653d04f2cf4fdf8f35489439010000000000000024d917b35ee19a72512caea1dbf92fa75f5ac2c247c4a0184d330f477c750543010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e477588789720100000000000000466c0e97d043a4b0f4c3ac4849e11f901e9b31b28f8b3e40b7cdb0ba7f7748080100000000000000aac890275190872d403950ad91e6c6c18538b3d1d65f63609e7317bf1869b40f0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae60368200100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000d8f30bc2ee88e69f60d0278998414c80f4a130b8e1738e873bcd14ef31e58d36010000000000000042e377034ce6b2a582bfd66c465252ab10ce790e4f0d3bbe99a42ff86b29965c01000000000000007e91ca522b14cbb71b45348c699b7d65c3198516ee771079b672ee3d7cfc577501000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b740100000000000000f44300f7ca18c59e32cb7d396a17c4c3b2a56bdd4aadc93b55922bb94a114a4c010000000000000042e7851b82d8b7722b9eeb5eead57b21bf533fd25acb10542a52889376fc3920010000000000000028ce9c093ac772f56acb8dfe8b33a3966d4b8699bd41814117352d397195bd5f010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc19010000000000000012a64d79e44f1adb33c85c4f2bdfcd8d8b38a34d984604f39289c9a7624a442d01000000000000009214538470b98cfa7437e630ad2f26ee55bfbd270c0a72d38e26c4f48e049d130100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a670100000000000000e297620b731b4958e3c6aa06611c6aa5a45f7e116362d64954a0a330d2a98f330100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000000e5e5f8e89cd8d58ef83abddd3d1c2079691dec4f6965af70436e84411c31f3901000000000000005c0494412a296a92296160ac510697d97288753829a5e9d02eafb5f101e60f5101000000000000007c21799f6143fa837a8c18bebe3368d60f4e009b114f61490b54e6344034040d01000000000000009a6223b8a7aac3a28f958d9f6c6abf55f87a38cd22fa563d6327a4d86da7b64d01000000000000006ca924ff8f8e69b8ea54dc988c67fbfc1d955f357f01e5ff4b8362ad7d756c3701000000000000009e280c8deea88069fe5118eefbb994d01373ff5dc213a65d06e6873b528f6c2f01000000000000002834c706b030a82a81ec43e2faf26a7d00392e1d8f2de8b7a876183ab612cb180100000000000000d0189a530b4048501596c4530054fe89f017360402da0ac197a8100ac693b06e01000000000000000aaa5fa196c5c2583c1cec2aa1c991b582fd819d8bd74e91ab76da894c4a0e3b010000000000000006ced0dafbe316bc507cfa57f506a58ad57ba7a69a8291ef87e8f0f5dceff6040100000000000000364360b4881f0f2831a226a422c79348776d43a2365dd636dea05a09381f8c2e01000000000000009092f9e937617716876caae2eee008bd44b0d0ed3f3af47073dcab55fcb1d5740100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000005a63824687de4f60534ee18a430396b95263f75a077655c751bc2045ca2ec84d010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000c665d82a27136f294df943ffa86053c5aefeca16630abc81c12943e1aebcec3401000000000000007c3526dc5579f1ef841101b573c655c20f4346fa4a6b0b6ed773d147c3ad6d7f0100000000000000ee579514d7f544fc9fb8d6383ed7d109ee98a411bb4b0b45b9354b0f73fed9720100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d1200100000000000000e41b3ecad757b0a5ecbc6b29691681df25b3d2b5f1ea325b648e607a5d76cf08010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b640100000000000000ec56243ac035f65b377444e20bc8fa7e3e75242a59b5ffa5f44270f451315f2b01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000004e5b37f3ecd0fb3131aba488083c145d60b924ef98b286a0066e0ded309e886b0100000000000000c0e36251f9ce24d6fe429ecf14bc9599285e3e27c0a541d5ac0ad1902d7ad6140100000000000000946071eab9c0fa1de9be2ad3c18041f1326faab41d84d9daf9f89c0daf9c0f00010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000005620922a6765fd47abc96615ef5b8b8575f18aaf8507f6afb86129bc1080994f0100000000000000b4b145ce385b4a3d83f2daac46a61874f80e58c468dd624acc09a558be02c27d0100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b01000000000000009eab0bf9d73d6ec7f04a484806584d29e59920968a9b9e699e45888d0767b5560100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a0100000000000000faa52c51af82fe8fcdde5ffa213721a8395acf22e30bbd2aa420626571e6183d010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa190100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c360100000000000000ae272f5ae4e197a1fc8e670d3aa7bcab325a39d1653b5440bb7593788d0526280100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d8708132010000000000000080413d2894759b53a03874bf96ffcb66117e4a08ad7f159c008f2b3b6cfcbb470100000000000000ea885fca10a9473631bcca2549cb8183beef534a7ee2bd59a0a6f74d97bcfc4401000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000f2e49b313ed23755c61ca69aaae54996c4b15e8ef882056b33c440bc7c6976170100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000902741c83009936926e687f91a203fc2bb0dea691895ef4dfd1d85d86f408c7c010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000098cd0a4eae6f560a9e760f8b806b36861b805798b4ee0ada29f6841855d51d030100000000000000584bf60b8b17ddaf70f87f371bd2b425a3637e05c1b75469f45ea85717063b6901000000000000004688e3afe0224c7d9f9ce7308a282aba1ddbcce69b0f18c10b1ec2fbc253d77d010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e01000000000000000ea183680db6337b592f7eb5e9112295d101bbd140b6064d6a662a93d13202000100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b351501000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000402a67126cd160c84edcb39374164f3a39aec59ae72cb66dd9fbd1e9891aa27c010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000c63dfd97609d6fbdd6300bb957b3feba86755bbd5a36d6b4ca40bea6a1b2517001000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c744501000000000000009604f5be9d0b0e4ee57cb7f1428abbad605be0423c4600cebbda85cbcb17ce300100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd555801000000000000001682c3264fc0b2a36eff3a5864cdacfe726bf5972ca8f4c5cad6f18bd450d23e0100000000000000d412fb5e47b946e69918a6391ac30283949ba6d99c491d78fc5014aaa2144b59010000000000000020778d1b86af98ab30d7adea5f3a4f215d6d4a9fdc892d8999275b2c311fb05f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000b013a8307c3572f939c1a9759a832f35babc847cc022588903572c8def43267d0100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000086cca25ca588d995ba36f447a87ee00073a24190e8335247875e1bb25823f8450100000000000000760016d0fe1d719588ff1b1e8057f1e7a14aa6c34947540e6fdaea91ca5c602601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000de5f9f5ad3209502cf429630c2038b8818b6f8ce5685c2730077349802c5792501000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000608b753074d6a1fd8e099224a7495f61e3db2cb91e1e88553113057a5f49533301000000000000007878535e43226cf81c42183db4bbef4b1eed2a460f6cd423c03af9e86674647a010000000000000052c9327ca5c1ca830f8ff712d813a8cdc2a8be122f16bf0d1d9e77b7a9789372010000000000000026f2af62a2f0d847e3d2cccc93ec7f98c80a7b6d1bcca4cf1c4a6fc7f81775010100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d71010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d01000000000000000481a58bfdafecabbc96bd170a0ec04cc35100f1f928cca3ecc63b3639e476790100000000000000e682cc2e71eeebb447a353fdf541b2ce7f9920ea1ad2d832bc35e3b49169bb6901000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000dac9ac99a034e57ae0f558ad981c1b12243c08cb140c483ba5dce6878ddab74d0100000000000000e4be18b8f5905bc41fe3cba2e5350d405e76036328042ae7edfbb6b6a9b43d5a010000000000000046d6f6331c4776c946073cfb18164ac2b7b0ab2836711373465794ef4a6d3c2f01000000000000009e5b6a03be0ed1cb27d61340f02efd1a285cf73519dead55195f001ffa274d4101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b14020100000000000000507e2aa1a2409b289b89c80f7ccb129e91a32e8d44c98723f8a97307f54a2d0601000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000078d986932e680d7bebce126a5aedae3e11ba0f4e28c03d63a491e8bcbd05ad2201000000000000007c552599ae2d251c1fb693009a0f904e41e59183027af5adfb8bba4133fc13620100000000000000a6cfacf0aff2d5c6e8eadf71f397a64f2863e5f0b8793e3068aebd5b3030e13101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e6e897a3011883adfe5d7c58e45c769c806277a5d8bb7aa36e232297b747b04f0100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d262730100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d465010000000000000044c47763e8f2f1675b480c01304c4da58c8d276b5ecee722e45d17afdc3d391d01000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d8066640100000000000000742c0a1ea78a09c7454b48897bfde87bf4959b89c898623c8eeace7af714147d01000000000000007873ecedbae63dfbe5594da935e52c14dbd0e131b12879d573b9c002c6e5c4400100000000000000fc53d15453457faadc5540c5853f54324eec395d3647fbf99d5e6e97ef38767601000000000000001e9c3192d1c2e7e1d5aa731c1bd3ffac1b55bfff1cc1beb0745a6b54b4b32b180100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000b8a51609827d3b5283567a63d2585b896a64cdeae91803154a419cb6febac0090100000000000000864cbd281011a154d93d0320865ad67ae442bf0985f0ec220e2c7db4b09599310100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e17601000000000000009cd8560fd122845a222340da6458ce97af240b695b3d22fdcd4287665cf5b3440100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000a811cc491bb3487d5e604dcf6dca3bf529437162f3b8cfb8514ffab16809ff600100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000d2fb72b7c3d020239ba45289122d0ae3fb560d01d0cb3caec01efa0c8701d45e0100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000052a0f4ee4ffddedc5b9fd2154ca213cf3f49df94f4b5c36c2d8f877f5a701022010000000000000096a550a5b080ba4f333c58a9f4113a664c6e335dfdbfa227bb6f4808351c045b0100000000000000343a9649237a3b9ed165df5a8b6655996a9920091530b4896b0edfa3afefa60e0100000000000000ca9919b307ac6204475ff029334863d464042fdb84da988119b6392d5862cc78010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da720100000000000000005330f74dbf024dccb42c34e008d84a5d5d8ee33603029b4176ad6579bc504f010000000000000060868aebd495f442d029a4a0eeab5285bf7ccc82988417429030dfeb4080fe3401000000000000006ef86d4533f47ffd133c63b9575c17234309ab6e16f487ae7cd8914169183c66010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c0100000000000000b45837a3683c303ef060d8126c919a1d13fe45b84c42ba393ce99eb28a9f70480100000000000000105cd6ed1f55fde42f7c82d0667316a4f1e26e9e53d96f540e5aff8905897b5c010000000000000088b3ccf1680a221f1ae9f8879fa7963262ab735078ded24cc2fb209f9188031b01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a7748010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f010000000000000050f5f5863f99e896975813fda8768c72ff25fb54e25385a4263d1ff9a19152500100000000000000ccb5a9652f3be5d85fcab3d0b8c2eae27519ae2f7befa40c34b89751bbcce40001000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f5259050100000000000000540926fefa2d0424fd451bfca39a01c0e1a3fc811406e127d1dbfdc6cf9e9770010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000009cf033522e1b00e5e1e4862b8de818c62a353c2ef900717405861a7b8afd911f01000000000000009a53749c83cc06460148d884f1ea5b71897466b237cf16baa45395d78ce48c1a010000000000000064615e1323ea003b7c5a63ba2c8bed2023103458eeee7cf45244580d3ca59b6a0100000000000000b60ce4c500ac9859bf4a3ad89aa03f37e4b25b33da50fd825ba53dcb222c9f45010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000048afb25f7981cc67a66853ec05675d83a2d99e6318a6a7a135ed2916cb70a26e01000000000000008a0e2d0af87ffb812f6e6ec229d02056e812cc4f5f5743cc638a7d3f279f0153010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe08372156001000000000000001e2543674c697ffa09657ce9f9c4b610e46da5d73124410b327e6ba5d432263c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac5610100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000004a09f648a1583e14379a3a2543bb6d67201cae1ac2cc90f351f58d5574e02f6201000000000000000e21a03fbe9885a475c4875f3f912c8703945e99cd2a85f75258fda7b6022b7c0100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e0100000000000000e063e31ccdf34c3372902f92ec915f213538370658d9272f9ba6d8d6943ccd13010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d640100000000000000fab301ce05079af0f67a042f807cb17a770c0e1a2ceb3d956d569b44625df87d010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec172010000000000000012af78070e965616e16ab8cdceb871c02e09b180e3f0a69083419196c9ec665d0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a01000000000000000e99696f88e19e20d306ad6f8afb760f16c34a1e7bfe6cd70848e2d55cd2463401000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee1901000000000000002271d61469f9f1e5a0832af7de453015b89979fd740526080116295f4a4a516d0100000000000000645077cf303943059891df150649d1d828052ea4249bf50ca3b6d29c6ef1984c010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f3401000000000000008681a5d5d2138be72753e197ea3616c760e062e2bf2660bc6b33a37615edb03f0100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000f2060145fed18a41469c808b9c9f489ab28bdd327529621512b7077add309d1e0100000000000000ac08cb32400c07259add7bea3d895233f121f29c1b6387bddbb121d5c122e3570100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000ea03f9dc29ae9b7a053c12b6079664592d2cf46a30b43edbb2d2d980223deb11010000000000000036ff2156d388346076b08a5c89aa760b714eb1bd293e2f3e4c4f35049cca9372010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe83233001000000000000003c8330f5d7f34fbec333663bab066cbac4403f892df7659b1c118c185c4f16220100000000000000b20050395fc81aa60508e362f02c75faebe3e4909c7a23721182ce791bb701130100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d69010000000000000068147c36d367eb1a203b303c65ab3d32fe777cabbca8d39e08ffcfd624b3614d0100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f0100000000000000c4687b6d8e527d1ad3be71f2b242bed92eac25b159d9e142e6922ace2dfe5f2101000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f01000000000000009ea2cb3e6c59685087e59d6d45fdccdd5e6fd4f77fd90b4749f65113e23f086f0100000000000000ec19137bec15ab7c3cd7625e029b026746f6a90d28bf28cfd61457c40a8f26660100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a01000000000000004a7791775365fadbb61f37a0d2f6d298c0c7c3a4c9402821ec909972fd5f8a4c01000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000cc52bd9b4a740735cf134a31165a2d024441d5ec6b561904c00d2193da41d15601000000000000005ee252f56786ec8e512d233a09c3bbda21d0bd3a6ed7e8e8c0fe035dfe7989330100000000000000408e999ea747d52cf805617489435c05b3e91fea3d7013aaeb6134065bac863f0100000000000000b08365edcdd4d34a08e76edcb6a883a99eb396bcff3534f65a5c722e6d15fe020100000000000000e0d28dc9623e77eeff6b0aee79793b3a00cf8b1c46fb79c8e6ff8cfeecc4af120100000000000000d0106f6fb9b008052da3223c389525681d9b6e4fdb73a4078f7f1949bfaa35020100000000000000fcf9f322548d27f949946778fac8738b187065d56fc3ef164055a14e1ff8192701000000000000001e1f47deab3e4083f7d353b746b719a9f5aaee3ae2cf6b37a4d710f95d489a6101000000000000006638aad1c437c5f2f2ab4c46b786db51bb8c7e6af2ee745934811712f8d83e0601000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd9325712101000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f0768520100000000000000c88d83d7927e1c1dff61de6b8321ee64746d983173bfb3a03c3d4789ae3f202701000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba620100000000000000102ed4107066f497e13d3c484a9fa60e506587e19541069dd4555a91d63f27040100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000003afb6b0dac3a05453f125943b8a26269202d297b991e054ca851fa68bb4c0853010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000000c3292b5065b7b78a2de5f4fe397fff21df37c0ff7eef94c5fc4397f760e6e4601000000000000009a62ccaeef1677fa3fde2e172bcea58f695a34304ccf5594b74fc7a7ce9fdd0001000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009265e7be28a8f56a974027b630bc37703b7ef21b1b1e4253c54d605f4d10da1e010000000000000046b14e55053a02087c957664d32fdcae6ba1c96051239191c63df564d784e17201000000000000005cf9e506e47672dd81188ac6eb1f4663ef21002e3b99689c772a21d52cdae553010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e210100000000000000fa2b11bf5823233f9811719bc222d1a99fe1ed274ff1761aec90b89be97c945c01000000000000009c4d874baeccbb19733cf93f6ffb2f44d9b9f5191ead84f3550c7b767a75061f0100000000000000ecc12a9407afd557edbf63ecf4e31c6d56c3a4b9f7b4a123ff3d4af9cdb4c6050100000000000000541be93561ac4abba30ffd6362cd8e0b0cc2e1dbdcca8e5394eaa80167e6993d0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf00430100000000000000a49dbb103be9a66d67ad5c0d11032866488f39d0a106de579d913dc7099a09260100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000e0ee8ff76b364ad2ccc3e82e69cd700c0895607a449c5af3745bb3018a184322010000000000000040884e6b9876fe866d109aae2a5a6f1a18bfe3655ec9c1fee848ca92734468720100000000000000551fc1f1f1606e53e38c244789213966e68960a5c2957ac8a3568a3fcd7369490100000000000000040000000000000002e49e35131f3b10c66f75045405b11e5742a400edb67f0fde4bcfc7a4d70839d948572601018a1f000000000000538cf410000000006009000000000000a50474a0fc84f72a4a9b8493379b7dfc59ca58a261a2e94997600d14b6b444c1475901000000000000009c40155989f6072e82caba245d7db7e40a60f866b403257976b89aba6be2b55b010000000000000014b0a3a620f70ada506d6ef1b7ab099219f2f05689523af7eebc81f9ba258e6001000000000000007067d4c5b492b11e2052a2bb0b4f729a52b3667afbca7dfefa863011254b5272010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b9200100000000000000c681c1acaa82eddba6e394ddc9a2fd1af34418448d544c34966a31c837667f28010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000000c78c9dfc0033ff87657c56b7ab8cec4d1249be2de18729f743f385343af0f160100000000000000da541448a6094ef017385fa5492aefcc1880f3182fc1db64e551143604dcdc00010000000000000060f472588bedcbf6b27b576dcf2ac751e412b377a39fa82bc2b79f72ac9373140100000000000000002e496e564f088a075525d2f9155aadd1a7eb017fa36f9e16096e9db7e169330100000000000000e07afc6e4b429df62183d1e1c417703cf8467e0f1bc61f7e33954d8336c7a9350100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000c48c594bb4e173544a0379055b65d995af53256f653d04f2cf4fdf8f35489439010000000000000024d917b35ee19a72512caea1dbf92fa75f5ac2c247c4a0184d330f477c750543010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e477588789720100000000000000466c0e97d043a4b0f4c3ac4849e11f901e9b31b28f8b3e40b7cdb0ba7f7748080100000000000000aac890275190872d403950ad91e6c6c18538b3d1d65f63609e7317bf1869b40f0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae60368200100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000d8f30bc2ee88e69f60d0278998414c80f4a130b8e1738e873bcd14ef31e58d36010000000000000042e377034ce6b2a582bfd66c465252ab10ce790e4f0d3bbe99a42ff86b29965c01000000000000007e91ca522b14cbb71b45348c699b7d65c3198516ee771079b672ee3d7cfc577501000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b740100000000000000f44300f7ca18c59e32cb7d396a17c4c3b2a56bdd4aadc93b55922bb94a114a4c010000000000000042e7851b82d8b7722b9eeb5eead57b21bf533fd25acb10542a52889376fc3920010000000000000028ce9c093ac772f56acb8dfe8b33a3966d4b8699bd41814117352d397195bd5f010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc19010000000000000012a64d79e44f1adb33c85c4f2bdfcd8d8b38a34d984604f39289c9a7624a442d01000000000000009214538470b98cfa7437e630ad2f26ee55bfbd270c0a72d38e26c4f48e049d130100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a670100000000000000e297620b731b4958e3c6aa06611c6aa5a45f7e116362d64954a0a330d2a98f330100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000000e5e5f8e89cd8d58ef83abddd3d1c2079691dec4f6965af70436e84411c31f3901000000000000005c0494412a296a92296160ac510697d97288753829a5e9d02eafb5f101e60f5101000000000000007c21799f6143fa837a8c18bebe3368d60f4e009b114f61490b54e6344034040d01000000000000009a6223b8a7aac3a28f958d9f6c6abf55f87a38cd22fa563d6327a4d86da7b64d01000000000000006ca924ff8f8e69b8ea54dc988c67fbfc1d955f357f01e5ff4b8362ad7d756c3701000000000000009e280c8deea88069fe5118eefbb994d01373ff5dc213a65d06e6873b528f6c2f01000000000000002834c706b030a82a81ec43e2faf26a7d00392e1d8f2de8b7a876183ab612cb180100000000000000d0189a530b4048501596c4530054fe89f017360402da0ac197a8100ac693b06e01000000000000000aaa5fa196c5c2583c1cec2aa1c991b582fd819d8bd74e91ab76da894c4a0e3b010000000000000006ced0dafbe316bc507cfa57f506a58ad57ba7a69a8291ef87e8f0f5dceff6040100000000000000364360b4881f0f2831a226a422c79348776d43a2365dd636dea05a09381f8c2e01000000000000009092f9e937617716876caae2eee008bd44b0d0ed3f3af47073dcab55fcb1d5740100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000005a63824687de4f60534ee18a430396b95263f75a077655c751bc2045ca2ec84d010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000c665d82a27136f294df943ffa86053c5aefeca16630abc81c12943e1aebcec3401000000000000007c3526dc5579f1ef841101b573c655c20f4346fa4a6b0b6ed773d147c3ad6d7f0100000000000000ee579514d7f544fc9fb8d6383ed7d109ee98a411bb4b0b45b9354b0f73fed9720100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d1200100000000000000e41b3ecad757b0a5ecbc6b29691681df25b3d2b5f1ea325b648e607a5d76cf08010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b640100000000000000ec56243ac035f65b377444e20bc8fa7e3e75242a59b5ffa5f44270f451315f2b01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000004e5b37f3ecd0fb3131aba488083c145d60b924ef98b286a0066e0ded309e886b0100000000000000c0e36251f9ce24d6fe429ecf14bc9599285e3e27c0a541d5ac0ad1902d7ad6140100000000000000946071eab9c0fa1de9be2ad3c18041f1326faab41d84d9daf9f89c0daf9c0f00010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000005620922a6765fd47abc96615ef5b8b8575f18aaf8507f6afb86129bc1080994f0100000000000000b4b145ce385b4a3d83f2daac46a61874f80e58c468dd624acc09a558be02c27d0100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b01000000000000009eab0bf9d73d6ec7f04a484806584d29e59920968a9b9e699e45888d0767b5560100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a0100000000000000faa52c51af82fe8fcdde5ffa213721a8395acf22e30bbd2aa420626571e6183d010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa190100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c360100000000000000ae272f5ae4e197a1fc8e670d3aa7bcab325a39d1653b5440bb7593788d0526280100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d8708132010000000000000080413d2894759b53a03874bf96ffcb66117e4a08ad7f159c008f2b3b6cfcbb470100000000000000ea885fca10a9473631bcca2549cb8183beef534a7ee2bd59a0a6f74d97bcfc4401000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000f2e49b313ed23755c61ca69aaae54996c4b15e8ef882056b33c440bc7c6976170100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000902741c83009936926e687f91a203fc2bb0dea691895ef4dfd1d85d86f408c7c010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000098cd0a4eae6f560a9e760f8b806b36861b805798b4ee0ada29f6841855d51d030100000000000000584bf60b8b17ddaf70f87f371bd2b425a3637e05c1b75469f45ea85717063b6901000000000000004688e3afe0224c7d9f9ce7308a282aba1ddbcce69b0f18c10b1ec2fbc253d77d010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e01000000000000000ea183680db6337b592f7eb5e9112295d101bbd140b6064d6a662a93d13202000100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b351501000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000402a67126cd160c84edcb39374164f3a39aec59ae72cb66dd9fbd1e9891aa27c010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000c63dfd97609d6fbdd6300bb957b3feba86755bbd5a36d6b4ca40bea6a1b2517001000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c744501000000000000009604f5be9d0b0e4ee57cb7f1428abbad605be0423c4600cebbda85cbcb17ce300100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd555801000000000000001682c3264fc0b2a36eff3a5864cdacfe726bf5972ca8f4c5cad6f18bd450d23e0100000000000000d412fb5e47b946e69918a6391ac30283949ba6d99c491d78fc5014aaa2144b59010000000000000020778d1b86af98ab30d7adea5f3a4f215d6d4a9fdc892d8999275b2c311fb05f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000b013a8307c3572f939c1a9759a832f35babc847cc022588903572c8def43267d0100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000086cca25ca588d995ba36f447a87ee00073a24190e8335247875e1bb25823f8450100000000000000760016d0fe1d719588ff1b1e8057f1e7a14aa6c34947540e6fdaea91ca5c602601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000de5f9f5ad3209502cf429630c2038b8818b6f8ce5685c2730077349802c5792501000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000608b753074d6a1fd8e099224a7495f61e3db2cb91e1e88553113057a5f49533301000000000000007878535e43226cf81c42183db4bbef4b1eed2a460f6cd423c03af9e86674647a010000000000000052c9327ca5c1ca830f8ff712d813a8cdc2a8be122f16bf0d1d9e77b7a9789372010000000000000026f2af62a2f0d847e3d2cccc93ec7f98c80a7b6d1bcca4cf1c4a6fc7f81775010100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d71010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d01000000000000000481a58bfdafecabbc96bd170a0ec04cc35100f1f928cca3ecc63b3639e476790100000000000000e682cc2e71eeebb447a353fdf541b2ce7f9920ea1ad2d832bc35e3b49169bb6901000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000dac9ac99a034e57ae0f558ad981c1b12243c08cb140c483ba5dce6878ddab74d0100000000000000e4be18b8f5905bc41fe3cba2e5350d405e76036328042ae7edfbb6b6a9b43d5a010000000000000046d6f6331c4776c946073cfb18164ac2b7b0ab2836711373465794ef4a6d3c2f01000000000000009e5b6a03be0ed1cb27d61340f02efd1a285cf73519dead55195f001ffa274d4101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b14020100000000000000507e2aa1a2409b289b89c80f7ccb129e91a32e8d44c98723f8a97307f54a2d0601000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000078d986932e680d7bebce126a5aedae3e11ba0f4e28c03d63a491e8bcbd05ad2201000000000000007c552599ae2d251c1fb693009a0f904e41e59183027af5adfb8bba4133fc13620100000000000000a6cfacf0aff2d5c6e8eadf71f397a64f2863e5f0b8793e3068aebd5b3030e13101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e6e897a3011883adfe5d7c58e45c769c806277a5d8bb7aa36e232297b747b04f0100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d262730100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d465010000000000000044c47763e8f2f1675b480c01304c4da58c8d276b5ecee722e45d17afdc3d391d01000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d8066640100000000000000742c0a1ea78a09c7454b48897bfde87bf4959b89c898623c8eeace7af714147d01000000000000007873ecedbae63dfbe5594da935e52c14dbd0e131b12879d573b9c002c6e5c4400100000000000000fc53d15453457faadc5540c5853f54324eec395d3647fbf99d5e6e97ef38767601000000000000001e9c3192d1c2e7e1d5aa731c1bd3ffac1b55bfff1cc1beb0745a6b54b4b32b180100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000b8a51609827d3b5283567a63d2585b896a64cdeae91803154a419cb6febac0090100000000000000864cbd281011a154d93d0320865ad67ae442bf0985f0ec220e2c7db4b09599310100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e17601000000000000009cd8560fd122845a222340da6458ce97af240b695b3d22fdcd4287665cf5b3440100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000a811cc491bb3487d5e604dcf6dca3bf529437162f3b8cfb8514ffab16809ff600100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000d2fb72b7c3d020239ba45289122d0ae3fb560d01d0cb3caec01efa0c8701d45e0100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000052a0f4ee4ffddedc5b9fd2154ca213cf3f49df94f4b5c36c2d8f877f5a701022010000000000000096a550a5b080ba4f333c58a9f4113a664c6e335dfdbfa227bb6f4808351c045b0100000000000000343a9649237a3b9ed165df5a8b6655996a9920091530b4896b0edfa3afefa60e0100000000000000ca9919b307ac6204475ff029334863d464042fdb84da988119b6392d5862cc78010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da720100000000000000005330f74dbf024dccb42c34e008d84a5d5d8ee33603029b4176ad6579bc504f010000000000000060868aebd495f442d029a4a0eeab5285bf7ccc82988417429030dfeb4080fe3401000000000000006ef86d4533f47ffd133c63b9575c17234309ab6e16f487ae7cd8914169183c66010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c0100000000000000b45837a3683c303ef060d8126c919a1d13fe45b84c42ba393ce99eb28a9f70480100000000000000105cd6ed1f55fde42f7c82d0667316a4f1e26e9e53d96f540e5aff8905897b5c010000000000000088b3ccf1680a221f1ae9f8879fa7963262ab735078ded24cc2fb209f9188031b01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a7748010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f010000000000000050f5f5863f99e896975813fda8768c72ff25fb54e25385a4263d1ff9a19152500100000000000000ccb5a9652f3be5d85fcab3d0b8c2eae27519ae2f7befa40c34b89751bbcce40001000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f5259050100000000000000540926fefa2d0424fd451bfca39a01c0e1a3fc811406e127d1dbfdc6cf9e9770010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000009cf033522e1b00e5e1e4862b8de818c62a353c2ef900717405861a7b8afd911f01000000000000009a53749c83cc06460148d884f1ea5b71897466b237cf16baa45395d78ce48c1a010000000000000064615e1323ea003b7c5a63ba2c8bed2023103458eeee7cf45244580d3ca59b6a0100000000000000b60ce4c500ac9859bf4a3ad89aa03f37e4b25b33da50fd825ba53dcb222c9f45010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000048afb25f7981cc67a66853ec05675d83a2d99e6318a6a7a135ed2916cb70a26e01000000000000008a0e2d0af87ffb812f6e6ec229d02056e812cc4f5f5743cc638a7d3f279f0153010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe08372156001000000000000001e2543674c697ffa09657ce9f9c4b610e46da5d73124410b327e6ba5d432263c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac5610100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000004a09f648a1583e14379a3a2543bb6d67201cae1ac2cc90f351f58d5574e02f6201000000000000000e21a03fbe9885a475c4875f3f912c8703945e99cd2a85f75258fda7b6022b7c0100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e0100000000000000e063e31ccdf34c3372902f92ec915f213538370658d9272f9ba6d8d6943ccd13010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d640100000000000000fab301ce05079af0f67a042f807cb17a770c0e1a2ceb3d956d569b44625df87d010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec172010000000000000012af78070e965616e16ab8cdceb871c02e09b180e3f0a69083419196c9ec665d0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a01000000000000000e99696f88e19e20d306ad6f8afb760f16c34a1e7bfe6cd70848e2d55cd2463401000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee1901000000000000002271d61469f9f1e5a0832af7de453015b89979fd740526080116295f4a4a516d0100000000000000645077cf303943059891df150649d1d828052ea4249bf50ca3b6d29c6ef1984c010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f3401000000000000008681a5d5d2138be72753e197ea3616c760e062e2bf2660bc6b33a37615edb03f0100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000f2060145fed18a41469c808b9c9f489ab28bdd327529621512b7077add309d1e0100000000000000ac08cb32400c07259add7bea3d895233f121f29c1b6387bddbb121d5c122e3570100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000ea03f9dc29ae9b7a053c12b6079664592d2cf46a30b43edbb2d2d980223deb11010000000000000036ff2156d388346076b08a5c89aa760b714eb1bd293e2f3e4c4f35049cca9372010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe83233001000000000000003c8330f5d7f34fbec333663bab066cbac4403f892df7659b1c118c185c4f16220100000000000000b20050395fc81aa60508e362f02c75faebe3e4909c7a23721182ce791bb701130100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d69010000000000000068147c36d367eb1a203b303c65ab3d32fe777cabbca8d39e08ffcfd624b3614d0100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f0100000000000000c4687b6d8e527d1ad3be71f2b242bed92eac25b159d9e142e6922ace2dfe5f2101000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f01000000000000009ea2cb3e6c59685087e59d6d45fdccdd5e6fd4f77fd90b4749f65113e23f086f0100000000000000ec19137bec15ab7c3cd7625e029b026746f6a90d28bf28cfd61457c40a8f26660100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a01000000000000004a7791775365fadbb61f37a0d2f6d298c0c7c3a4c9402821ec909972fd5f8a4c01000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000cc52bd9b4a740735cf134a31165a2d024441d5ec6b561904c00d2193da41d15601000000000000005ee252f56786ec8e512d233a09c3bbda21d0bd3a6ed7e8e8c0fe035dfe7989330100000000000000408e999ea747d52cf805617489435c05b3e91fea3d7013aaeb6134065bac863f0100000000000000b08365edcdd4d34a08e76edcb6a883a99eb396bcff3534f65a5c722e6d15fe020100000000000000e0d28dc9623e77eeff6b0aee79793b3a00cf8b1c46fb79c8e6ff8cfeecc4af120100000000000000d0106f6fb9b008052da3223c389525681d9b6e4fdb73a4078f7f1949bfaa35020100000000000000fcf9f322548d27f949946778fac8738b187065d56fc3ef164055a14e1ff8192701000000000000001e1f47deab3e4083f7d353b746b719a9f5aaee3ae2cf6b37a4d710f95d489a6101000000000000006638aad1c437c5f2f2ab4c46b786db51bb8c7e6af2ee745934811712f8d83e0601000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd9325712101000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f0768520100000000000000c88d83d7927e1c1dff61de6b8321ee64746d983173bfb3a03c3d4789ae3f202701000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba620100000000000000102ed4107066f497e13d3c484a9fa60e506587e19541069dd4555a91d63f27040100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000003afb6b0dac3a05453f125943b8a26269202d297b991e054ca851fa68bb4c0853010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000000c3292b5065b7b78a2de5f4fe397fff21df37c0ff7eef94c5fc4397f760e6e4601000000000000009a62ccaeef1677fa3fde2e172bcea58f695a34304ccf5594b74fc7a7ce9fdd0001000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009265e7be28a8f56a974027b630bc37703b7ef21b1b1e4253c54d605f4d10da1e010000000000000046b14e55053a02087c957664d32fdcae6ba1c96051239191c63df564d784e17201000000000000005cf9e506e47672dd81188ac6eb1f4663ef21002e3b99689c772a21d52cdae553010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e210100000000000000fa2b11bf5823233f9811719bc222d1a99fe1ed274ff1761aec90b89be97c945c01000000000000009c4d874baeccbb19733cf93f6ffb2f44d9b9f5191ead84f3550c7b767a75061f0100000000000000ecc12a9407afd557edbf63ecf4e31c6d56c3a4b9f7b4a123ff3d4af9cdb4c6050100000000000000541be93561ac4abba30ffd6362cd8e0b0cc2e1dbdcca8e5394eaa80167e6993d0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf00430100000000000000a49dbb103be9a66d67ad5c0d11032866488f39d0a106de579d913dc7099a09260100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000e0ee8ff76b364ad2ccc3e82e69cd700c0895607a449c5af3745bb3018a184322010000000000000040884e6b9876fe866d109aae2a5a6f1a18bfe3655ec9c1fee848ca92734468720100000000000000e281b9e781d0d122cad53deec70cd1880eb29c2a034201c2821014b6fe84d1ff0100000000000000040000000000000002", + "babeFinalizedBlockWeight": 4816932, + "finalizedBlockHeader": "0xf292bdff983836444cd51784c192c3925d734c7936f309581c817f9f74c51d380e8b9904f4fb3330f79ddda3ffbbce59c7b93774122fe32463d7de711ffc820fa69508525cb2b1a9b578fa9e8dd457f2c904649d00557bb1724bb8d7b313e9a1211eccdd080642414245b501015c000000878ef41000000000c4d48a2a2e5364af41319264fee671a26023eebdb6d98a1687466dc44e8fb239263e94e02749bd0e7c63a41103dd01d531405bf5e18d535a9553bd14816aa7047c2019652e0c689625fb677b0f43de704da3daa485ad1d8a0a1b3b754bdcab0e054241424501017659dc71591dfa2561e074163f1aca684a515928b07bbf63f300beabd8d8b4720ee75fa0a487f1e7ef90840e0caaed103e489eec9a1a3b4f70aff8c76e6e6982", + "grandpaAuthoritySet": "0xa5042f8da08bb2421ef844015c3b2ea23464fc66a9dcb4a2215fe0241f892d19afc50100000000000000fff437ff18629bf1490e5c9b3ec6f1515d46bb9b2aeaa6e39e36611f2479b50d01000000000000000334021ff54e46fb7da4bd257cf113519a0c7ee4a2251b66fe48466fed5853520100000000000000d95f04dc8ea4ac05deea7077457f0406fdd152bd03a7480e7d0de0983b959d3c010000000000000047f940bc985355be7187c709ded2b689b66d69e61e293a507f1d4f90bdbeceee01000000000000004a3fc0fe1020c7f460c7bd23d0b657c03368552b2f0a12d80a1c406fd066e0db01000000000000009b992b5e9b99eb2cd3b2b648d6db81ed722a2feb4938d998b58dcb5d159fadfa0100000000000000aee9de3938173700b3e3f4fbf2b200ae296173a0854157f40de2598dd4cad8f10100000000000000243f110deac5efe8e963d794eb8706a1895ae1942523ab0fe9e1623515b7dea80100000000000000b61e9b13e849779be8f5378a670d61991875d8e091f359384d7be73d02d506930100000000000000426b2be4596a759a15028d84e08c5c56440e6cede68d088f47c671cc3387c3e6010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc687601000000000000005b27660cd4c375f2654c6d923b29fd8abbab7e96ee040c79598be14f832f56ca0100000000000000d3cc98d4ef2959052d0850c5803739a81b4fb31196cb8602c45e19a7a56977cf0100000000000000577f3db377f6b69115658f17f32323071b8e0c67695057353d0ad9ad2d8eea1a010000000000000057ae0c85ebaf333a6ec3251f577cab910cce072f238d1e50046322b83bbc0dd50100000000000000a15896b8bbf01f757f120813bc2e78b21388eea66db4b0dc2e1afeabd3d46dc001000000000000000139b946b46bee4c61be50c986f2a9ef2e76917644e2ecd842c59d61a94ee612010000000000000019a9d56ea35496122fc44fcb5c29d27fbb43520556d6f8d97753767aaa0f228e01000000000000007cd50f6921fade39653f847bddd48360668004225081a6a3ad7997f78debd34c0100000000000000f1578b8007e34ba6b1c4c480a8249758eaa356a6e5b1be0efbe5c35e802fe3cf0100000000000000a5b094ae7c156592baa68ce18dab6368d5b665e9a0f07dfc5f54f58309e086c1010000000000000053352e16d2a27fb3525d5d8750d6ad7f46b303a45e434a409ac727d5cb80432b0100000000000000f2c819e8ed3ae8aab35a7edb7d21cabc889eb5928dd6a5281b42f3b00f808e1b010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b010000000000000097743d6364cdb6c4790cd37c4c2ab5fbc6c65e8bb606625e70a6ee04ed1650d9010000000000000008cc1d6c743da905511a39a6f0a68809a6bc32f8ac25e53bb2d6aca4f493fc9b0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da810100000000000000d04d64a07f144638f20f081de122b88fed0cc8bda57e4810e7afb38036dd8bbf0100000000000000f26945a8a64032a1defa76e720a99649125b55751b6088205e7acab901de670b01000000000000005cba2c6f569da1edc3778308da406f266aa53140381dbb3f14f22909ba6e30040100000000000000c9a741ab82126c4d4eaa6a758cfc1209bbd7b29330e89ccd97fb62ae567c8d4301000000000000009b94bc45bf79bb33f70430c82880456cd7bd5fb3ea131c1b26d493d01c5fe7100100000000000000a1a9debad5e4afb076cf293c2c797f0b5901ffdb8bd01611235e762411a0db3901000000000000006f4855725ebb9eced957bae43ffa7d30657ce7d06b251ce20e2218bcf929e40501000000000000001165cac368b7336c0dfd184027e03ae2945761538b05365611ad4d731f4917fc0100000000000000749556da4a259bc1f0b8ea8e3726c2251656b92205c30b635ec9f42038f8defb01000000000000000ce4d93e25fa5302f4b059456f680047f87be428ae88579e0b862502b5ceed600100000000000000c1758f7cbffeb844419bc494a9dc65fb394259f01e9bf23789a75acc29d7d9620100000000000000c1c1ff5f66fefb5c0849e3b2333411d1f7e9dd4888600e334e7a33623f15fa360100000000000000fe240e80ff8a48a77947b394979cf361017cd906ddaab637d72cf72e729d79bf010000000000000006854c73f5703242d31d2576ac2297c93f0b5dc16ade0097c59d5dc0faa43c550100000000000000c650b1a6b34347bd80ed06b48aa4ae1a33adaa507e8ac23bf6c6b94223b63b9d01000000000000000d2892cca10a62c24727ffacba6a57b1a35b0dea5c9d82d7d6c971e2335ced7001000000000000008aabd4f6d7ecec7a749c83fc7be33f3b4818cca6f93a4927b4964900df9454e50100000000000000b9186b95c90d2d00a31e7c68066bd37d73408271762604e3608e2f2c983f830901000000000000003948bfd09bbbc2fe6ac5dfe53146e32df50828eecf7b2b18cdcff8dc385cbd7501000000000000001ba602a293ccdb7a77042fb486c6e010d48b13dff2bef0a26c53637312aac7f701000000000000002385953f1ac49461b9c243159d9668b26e7322e19fff7bc18d90634f0f767ce80100000000000000ba8180cbc0dceb098ee6b22fe89978bf92ebf196a280470b1501bc2138ec02c70100000000000000070bae15860ce96e4a0cbdcc051c75e37a458c8e6c5ae59681d0ed938e588d4501000000000000003ec37919f9f43a9f85f539edfde3ceebea1b0e8279cb036641d588a9da81a6ad01000000000000005e48598ca89db19a4c279a251216d81e33f6b69e7d2ab4450968a1f9409df4a30100000000000000f510cb6c7032c9134dd3e50014ff6d391cfc91606d003fd4acd37e00f919d8350100000000000000cbd74a646a84b73518eadc73b1983dc9733839739576af9a98c698070a3a4b590100000000000000950459187f6d368ccf940574b1fad05f88aea3303858daaae072443b219410a90100000000000000d2e72b0ab02a001b2e573c0d3b78404a7d3c600c3a9fd8ef38e823cad6ed3d6601000000000000003047f8f7e9c47fda9130ccd57d5dc8d407bd89b8dcf8ecbaccf00da184c73a570100000000000000024743c39cd9e151344dc23c65ee0346132d190a224b687be5c5ae31c5e7bb0a01000000000000004e3fb8c16ad624c1852777456805e5352d0221269de66949c95da4076206b35a010000000000000069a6c84df1d25f855b91040e113a5557da8a89d80644ae7bf8d0ba416ab89b6d0100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad390100000000000000997b35c2de1a7ee0cd6744eea2c589ff487059544539bb099ceb6fe78150b68f0100000000000000f8eb309ab851e8f98aa4bd68138a67dc4a435331598079969053a5325b874a51010000000000000059bba625d971d505a9c7d7c2f3ad69203e69e3e5e1fc1e4905fae7703fa19e030100000000000000ba95f5d0e987305bb794dfeae69d7dd6a7987aa66cd7c9d42aca15e9160ec6a10100000000000000ffd82ddc49373448bed6feb0032744e20068f4e21adc4cb6d2cbf05ce73f4ce4010000000000000016278af083f6d261762f8a97b6a09ff83e2f5927ce26c2e48f3c7e771dc7e6950100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000082a1428bcd525a2e77b8f5fb89c73e5fe1261e96e93b383dd2d66767c855c8f001000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b010000000000000067ccabbf18c035791cee9c748bea2ca03cf72c40f5ae786f297f84fb059732620100000000000000be0a28e5615d9ce3b866b5cf0babf6a7f0e6de06119463382e715b47c89853e40100000000000000b8183b905f28b87c68c2d5b2f39f009f2ee22b47235f6c6d6cf6e63121b490300100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000007509d9697cb54f627f47b25e80f46f5d1bf483a9cab5f52df69e1a8f612e486f0100000000000000f3b1c0e43606bd49bc84e403db685b577e898b5f7c5db9052bdc3dacf38dc7ad01000000000000008a2b50acd1a4955fc814bf6720c7427902a6ce709f3a2d7c17c55b67f6f1c06301000000000000003a511828c0cdc0fd257387843fdbf6f19d5ca1ef1c29ec7e971fc9f1195eb60c0100000000000000f9e59cf53bdc07c716fda737a754e45e4aa53860054ce1511a4e8abbf1e366070100000000000000ee5605c1a9ed9484a70b8a591339830f24530eefc4599a7c6188a78896908e2c0100000000000000ad06042b85ed16ff4e46f5a68eba9ac12395366ab17c2da24b4f6747b2c8934f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000e4b2cffd0b9cacfc500050b27ecae3c55b9b51bd9a416d62605118c8ad4fb09f0100000000000000b28ba3f09e3521f7d09f0098c6743bc218ee2970068adfa5d908d9d06e627ae50100000000000000f6d74de7b39455519a5d6480c8f12c93fc7a4cfc9af39154fc60857a39ad888b010000000000000099f58256a4a5d6cf5d99f0cdebbcbe1477db461457647631cd21ca7f3120da6001000000000000002bb7b11dfe79a12110b0370510ef20d40ba8a563f517310f8bf37cf7f0403de40100000000000000f86e50733ff2142e88fe5b898087b4b1d6a3250064a439097f8995069624adef0100000000000000bba7a1ccb67a410afedb8e033ad69c39e7c554ce0ce6584b0e6688bae30f7d69010000000000000040533a786cd0be9618126633512666b1b1b9ab3b436fa653c93e2f65da9c196b0100000000000000be95095d93298171c6fb8a1847adfa173d127e13f53482dcb694f891d68f0c58010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f01000000000000006a5f902cdeda2c2161d16bd21d586720c08c0bbb7b463d9c59147338d26a8a9601000000000000003a9d3ecc0b675f0c6ffb45637d48c61fbeeb5cc48dbd1422acb94e7dbc9f001a01000000000000009c11e35911f023df6e4d218e53412ab4e4a20c17961d63ba381c913b51f394c001000000000000005a16e068132523621b4e714999d3d856f2728d4667ce954a68b1fd6876bd962f0100000000000000ffcca343512faeffe1cb3a8a7ce62fa4ee0c7f6a5f3e5ac883482846e132813d010000000000000037483029302a84623f0a8db165fbed905b0a4fc25e7cfb56e975a0e98336a59b010000000000000053b5918f72e73f92f32b578d1b602f0cc554d98bee8c4e131ef0ac7a63399fb4010000000000000063e935d23d285cec7b014cb7736d65b4acffc45ca589003d3231de8e6db8a8aa01000000000000006180a56305eff3231eebe895b44751f075f826684ef42a862f11e79c3e689cd301000000000000004a6b88e9110bc8184be0e612404f4781cbeae67cd3fa510668cb21748e750e880100000000000000c7d9cab0fb88dccd0cf4abbf5df9d7f36a3de439c5070c599d397e74133bdfed0100000000000000866fe4ae134938ccf4c5caf01358881c75cfde473b0bb8a2623cc231db2ea3b901000000000000005d202a011f023dfaa6713f16bfd4409dde8bfe594abd59e2be32484c73b979820100000000000000df11dd2be629ba8bf3ef7b4b0478a91bba5c7f928adcf28f3d00ce1f27410ff60100000000000000fc555c014d927fe7838e840609916b9af5d93892ce6f394398858286802b8c6101000000000000006727561447ed474ff4e15645b952a37fa5008d4e694d4853bb55594fa34c4f340100000000000000ec295fb809e22c332aa36a57afe05f2c093b2d13e52b0971d8265c5514e4e9690100000000000000efb5f1e4c4ba37f8c159d452d897c607a58518b8355a8454620b3e3ccc3271230100000000000000f71fca8770328d06e9a45e650e5f58c15feb8ec77ca2dce397490bedfa37db4801000000000000008c3dbd5a1b928cb51e918452191e5328b0f6e8de0259517831a90b02dba3e6110100000000000000aa6fd06015b8309ea9103f4b0e29bfa7e21ab5bb1431c3a76433f591c739f8380100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000005b78368482b0584326a9c0176949523c03ab1446a8aa021701aa9837ccf04fc010000000000000023f07bcb8dade90cefd08732183d5fe32b89ad8a4f84987b9e4e7e767c2587560100000000000000a571c0788c864df547070c9d9a1991a9664ae7466bd83495a8ae20dbe6bff6980100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000f916634f9fd7e54374e30ac6b722ad1793c13cb2d5f2ad38769eaca2f79d414b01000000000000007ba967a2dae0d8839cf44710591db994d18e53b25ec6d0f861da0037c4a4366a01000000000000004d4a140145f83598fc5a3839260723176f643ae286ff7b2fc460b897fb050a4501000000000000007e15c89cc954f1ddd6a5f2e9f482c1143f5b7b4ba406ed1264fd25a999f223f20100000000000000d0a196fdff4cbca9c7d8a893f9ed66d86038378d8faa1fd8543fcce60ff1cd8c0100000000000000d0b4aada93fb3d0b358e8d59f8914f5987acbc6f5b4f3e12a1ed8d962eded82701000000000000004f950be5bf61958a0ae6e6a036b85b33ba838de8bd5508b558cbe2602d341168010000000000000082e6b6bf1f275c59fbde0dad91393ae690d5e644d11d23898a9ccfdda025920a01000000000000004659b8114500937a2db0c810e194610c582865305e141d04e52ee989b80edd87010000000000000074b60dfb12745236ba9dc8f925efa21482b50c870c567638ba3240a05fe363d90100000000000000d761043f405069ac01285f1ff258450aac675f08d906b1ae0a1ce54eabcb36d90100000000000000b770208e14dc236c373cad93e19b092e9c6c7a90604d941c19ca19923d33013f01000000000000008da8d5949a791c5ca60438cb48670d0ee22dcd4ed87a56b5056fa171f38148220100000000000000d3b3d9703a265a51a137b9de348587c645a168981ef3e01c9dc482856751b8ef0100000000000000c0444bc7cff2374b76ba49e5ce25b632b0db77f08f6c40799077ce3f5b035f3f0100000000000000cfb9f7f1fcf903a51af729ed1647aee928630e148990309f9dc9f3b14b114b760100000000000000a2ee8d9c22eba97998d63854409d99c87b21d079f5c888d863a81d41d6abf0110100000000000000d14a779884de1b2fbf079b8e47e8c0edb1c29e282996899a4eab5aaf1f4f41130100000000000000c2344c6fb787621295335b6b5acbab9531199901492d41e13a64dfb2927f83be01000000000000002ba5634557f15c4e9198d1ce0cc525e897d3fdecb0c18af8a53fe4e3384f4a1d01000000000000004c51b84496e533a7f1bb2b806f3733a7f0a48543976d0a4e5410e831f93e04170100000000000000615d64d17a182504db609d14dc6a45a109817cfaaad1608b4c48382bee48d3780100000000000000155763a153e0c02b2eef1d8a9cd8a50a9eaac9d3af7ad1e559b1e2320b521e1c01000000000000005208fe27477acbc6750d0caa831c0b26801c58eca046a6cf9d4143f85d877e83010000000000000025ebbb2a00126545bbedf00318a78b6e61a0b52c81e30231ff45bd32e311472f01000000000000003773b05d2e2660498c8d407a1d6223423c26aa08b9b3656af94d78b861fba22f01000000000000007bbd4f800c34110b6c739ff1e8913a36ab62f25641c4bb7413cd354894b602930100000000000000500a9e1ea37636c24ebf4e32668897dae936eef42b6da49027f606d4f24a7e960100000000000000ddb8ed355e1389d3a12e9e55fb7723e89bc5020144bd832e02c47f7f672c9f14010000000000000039712f967c4e06d284d6da4735cf2823c1f770674b668f7bc896071c3fd41eda01000000000000000d4c26111d95a762e990acd0a15417be572ee390c7b9dd91f5e7ddd4a015f1bb01000000000000001e1fe4a3c9f590aff5a70b9cae569605ac78531cc10d310436fe0c306cf2e36101000000000000004df6e4d7da2c11ddb9153c714699f9ab625bbcd5e8e38f1cdeee567dc04abc610100000000000000d9b96ab14d54cf0093b00b5bb592a6ea6036f844bf7eaa3b5181d0764e1724b901000000000000009cfeed14dd2f96550a0e7edebd9c9a8c8b1d8f7efdd1abca01987654239f3c860100000000000000fd2fe2f117d597b29474a740ec767fe51cec93544d00e34269b78ddb31225f3b0100000000000000a74ff082093aff29e9a0d9adeb6e6df264b39c15ef1a82bf942e8ba76872bac401000000000000004c3b4b0a3acf902acec7f5d868f77d78b17fa4cfc5f785d393c9f3d15e04880501000000000000008404cabeb0674765bb77af690fa838ba28fa2045d602994a89f07680f4851c83010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b8cf76a8082d518016ea5588be57b64e156ed23b0f72248975522c23d15ef16101000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000a4f516aea3a92e379a03a2a9f9fcc757af022ce3572b00ffff21151fda41e79601000000000000002a38a4dcdffc571d547ee3e59121fdd378335df7c65877f983f0957cdc9824130100000000000000620c78305072857b43dadced80ebc057dbfc82b58c14c7b63372ef02140867650100000000000000baf0112f613aa6fff341d67decad56d1c5744a3ebb8e3577e82febbf3535b3fe01000000000000004dc2e72680dbf0156818114fa34d3591f8e6948df25a128e191190c66f6ac35301000000000000001ebe41ca4cd399901ffe5f6f52642630820500e4a96cbef4c80c560cae38d2c601000000000000000442cfb3cd38604b2a5251638e9fa7ee6b05968c731f393b78a6604e0072b09f01000000000000007af0706d921a331b5c1f957a8d1decf15aa0e3377a80d72107693afd8614ef8f0100000000000000811038f59afeb084566271eb138b0106a8ca013f57e589d6f777bc7bb2219e760100000000000000f5e2c973d4ccbdd36d8ed4e3dae75d3b50002cc1c74eb0a1fe29ef1ef8e3f0cc0100000000000000f5df4d76a1df9b6a7940a07f23b909a0e03feaa0cc84743674678c7a1d5412760100000000000000f56f5b3de4f46bcde88569888783fd60646806795807edb1e04ec3dff85ff3e10100000000000000b1f748c87b12edf7242b4719cfe68e6761acaa4329beee538d6ff740941d3cd30100000000000000a85cec5e853b5891796fd58cdddc4c6c017140db44777c9a1e94c0d757a2e51f01000000000000008b35aa0d212e4032ede352d5426696c260c9ecffa632a2e14e6a6629a6c9f637010000000000000072341ca1eb3a0fd4e790318b51ace114315573d5355c9d5336e39382ba0642560100000000000000a79cd2241bd68004641baac25c1900da3a9e6d83101aea3ef2a58d78c657272f0100000000000000b14911cb101f45b88c437a36bd82a5f8641b1c55052060ea46ea2baea570e8bf0100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a468101000000000000003c1dcee818434058b7de26ee874ade21bd1149185d6dcba1f67048b931ec3dda01000000000000009d31c78ebe9664e2bd8ba41cddcd9c5b9fb0cc6f8be0a2e5b91f6bcf66a5c7530100000000000000290be52ae5259f3e8bd0cdf454004607867a97c1db86d0c9ff16c8c83625bc8301000000000000005e0fad9f1e6837994babd7d55b2d4079af785ec48568cd1c4efd60ea28162e8e01000000000000004c43a374e6b3e6f7d6c5a6b8518ae0d0d232a1c46d63af8fbc800045a14cbe93010000000000000029a6535bac723c2f711e590c67f0bd60843cf7888eebca46025ae57f5ca1d92901000000000000004b3210303cc88f1495bf5a42c50dc7c51c8bc1db98bf3722b894462346e9221d01000000000000004d9b0bbfc6a294ee0492bdc595a5d8f7cf371c729c5c319a3822f0248bb4fef70100000000000000bbff79a9b92ef586f0be053cc01639b9a335ad8e2910146d070997e285007d830100000000000000ccc84b255e5e73b971f2e71d1903b5ef9bd6d0965ff3ce29c517c875bd7ab65701000000000000001babed13d56d28fdb937b07bce846689584099575382c273f7e425f822c8159f0100000000000000530f022bda69f1ea2ee55570057ca38fda313213b9c02a7c6560ee53e40b108501000000000000009bde702d9265dd3f62a8c9bd36d5e2f4e0dfb91ff812885cf2497eee667660950100000000000000ac0ef45b1c0f242a4aeb0ef03a9c0d9e3ae2a4bee8cb4c35f0293bac4331e76501000000000000001887f7937a8ca4ec67ceaedebfad3d307b10f416219de1ed4f8646409eab730a0100000000000000dfb56f8dbbc94ce17a85087b4dce709c5bd4289650c0eed35f244a21c91c1f1b010000000000000042f20843bf75f4916ade8eb2faad0ada3795b3cacd29b679f18805f2826367550100000000000000a4984d27a16bb575649bc55d16f927d12beb0b5373f8db1aac9f2f88a721628d0100000000000000be724139e9bdd099b70f7edab7d1acf0d05fa1a4ca212f5e2958d31f4272dcda0100000000000000ee40b85aa515fdbe6e559f815edc7ec1e321e0d152dd54258382ba31b54e447a010000000000000090517dbf339bac4cd01fcad403dd0803cb67a9b15bf024ce038eea2c7f24230401000000000000008dc1439b28d488419535c2fea9c821023f7bce423fa02d9f42e60c07c3d6ab560100000000000000c3150e4ca47e7bc6486f198bf0a742a18ab0871bb1efa34e82c4ce81f27926670100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f0100000000000000316bafdefb60951da2738d6c9c2ef1866d139b34b5eab6944d6bae754dd3fb1101000000000000007a92827270cfa82f16145a44f9bdd9ff5038ef1b665dd520a2e61db9749094960100000000000000ebb1834a568ea7653bc66f394937a0aa4f2f617118d2161e2c11c0d7d2febb9d0100000000000000b6d7ac98d6667fe8f4a186ef12a66b017df05a54e11b45d3f2967cb3d6b6827f010000000000000012e9b2bfe3d95c70fe8036a6cc8f677d67c9c65724aef87cc2a2eba5555d81070100000000000000e5f305cd6d930d41209036f066a86d3724aad2f388d354ac4979cc763c220a5601000000000000007ef02c62a02f0c18581cfb8ab7c2dcdff34e36a453a3700c568d61fdf9c8a7b40100000000000000eea623df46d1f301cf567672971c6895edf7316a5639dcee698730641950fb8b010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000007a03c321222b7f7b34946e44850798fee20b9112a64e3950398cce19064b8723010000000000000035db4f9ab121f213b695b982f50c47ac04a14c54214e831ed1bbef7b9542310c01000000000000009bbc024bfe4f072b94735afda064dc3c7da2b4bc0c50cfad44722543583a372e01000000000000002b71a8a81bc2be65f3224ba3711d1bb243446d154369e209f97d8375b5fe8deb0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf0100000000000000ef27d1d5573e6419ffcc7c4372668105118256b810ab2e2dbb5e7d8280ee94250100000000000000ed3f97f83ee7799c4aeba9f40bd18134c862c1a30875fc1e038cd27bae3a739a0100000000000000348e8bacc2d40191a6a00e137c745a422ff8fb03148d2ff9cad75efbb7a670140100000000000000316d5dbafd16258b7077d46a3dc32c46986a56a3eb095094d3f8fdd6acbf91cf01000000000000006a5dcdf2c3598c00d31a010dece5bf744f203856712531b07a31babcf06d09e30100000000000000efb31c5039e45fda750af5d2ea31b3210a407b168adec8f98db1f3dbc4cd94380100000000000000e2d564796e2660ba1bf553a21581f82116f775002a0dc0f26439f54c660fd84d0100000000000000bff74b6ff5ccdce9a659408871d486511938422a6e550fe0669ccd739f80108101000000000000009ac13f915431b39f99d8c0bed7e9c62d22e1e8b6daaee809920f491154ef6f8b01000000000000002ff9330a8c344ad3adf4d97db014a2d0891d4dd69f5c8369dad3e0b25566173e01000000000000008f44b6746d8d809da87915d6ec208a07ee63481d24b275c6424429e16ff4d25e0100000000000000e01d6eda8094e949bfbb05c819b509a12eb662a414b822f841d9555d58e1ce7601000000000000008fc9be34cc95e087c83cb6f86e2d2b7a22a7015558e8fcb1260740bcbd346d630100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb0100000000000000de186294778cc927cb2a24ade9ad165956f3586979f1ac5f3b4a16edd2674339010000000000000043a9a2915f377cd4943f602be38c3bd6ef39e91562c09f18fb672884b4bf8eab010000000000000059dadf17dc0f84c1c334e6a815a04bdfcd0988a3f3bcb713c66ae29e17276cc6010000000000000010caeb8c977dfd960736b1c5dd8840cd623b044fccf4054bb7854a53d5cf26610100000000000000297dc7cf28b3d40a42c5e8faac876bf7227c670e6e031dd0e0537f4fb70e6fbe0100000000000000f442190c846bbf5764bda138c075360be77a8fcb27ad889adbffdc7b881a33f601000000000000004a9ff9736a4c0907996106f8de8151f1a98f4f3c7dd21fcb85829d6a0e42063d0100000000000000a5f788e86ee2d311357b7aa4a128f063fa4ee36958baf10304c10bde7421aa2c0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b630100000000000000f7bdbb5c598784ba157940b08b5c5aa967d0f3faf60da28b915650eb39afe47c0100000000000000e3a73e5e042574299206b6520770553482e099d075bf00cbeb139b5f6737afed01000000000000003bb30832d06cdd3e081afef0cf2b7770bfe81dc58081d1886443e4e4547da8a101000000000000002832b59000d2027d2bf57fdb40da04bd8aac1498923397517181cc487a92815201000000000000006c3829859c7b27da7f0528e6281a406cf713971a03fa4dbb4ea973ee33f7f3170100000000000000677358fc648638cbd854d2a009dd39b8508dd3047d0c5f13bb403a64d053ad03010000000000000073dce1727ec50c50366378cd389246e19543d900d7e9dab8e323d04cf5b202a701000000000000002ada479e1fde7211de15900ed29035f6f07506cdbadc4c232aab96d62006b9de0100000000000000ee1a56541083b083f1a13b5f8aa4042a098de2cec4c43f3250baaba8f03a52ea0100000000000000e2cc4424464983ada824bbef5aaa8995e80ef1017c15ef3b13902599841637ba01000000000000005246164c02e9e6bfb7a2dbf7ba8a5440a189f8048373678f5b1085f217464c050100000000000000dea69c3badff9b8d7571cb6c538cd099544da7460a19e1b8651c5c530a6dd53c01000000000000001889f1b031fa7d64c4b480a17cd2941be2c02681bca397c93607091f37bf5ee1010000000000000005062bede97a45c6e1c6b593675ee07ce969fae45136cc2b2afc6e705a77f4700100000000000000fd734da3c98d7d56f8b9cc92f389350f3b6de2fb5917d338fee9fd961978e2a30100000000000000dc6e03f650e4304ca8d1598dde8d4faf45891987bfc49ef785ace47c4c0b5573010000000000000084845f99ad8fe89b7aa136c30b71b791015e8801b1d42cbf9841a0b90e723aad010000000000000018ede59e820bcdd0ed2faf99a21bdc916d71577dd35117f90efe77b8513e631001000000000000008c258b4ca16dfb8e5afde4cf40fecf115307798117b4860475511b3b5d5615840100000000000000ea8c8bec277832ff4f31396f76d6117026cf73407bce46de9ccfd17c686ca11701000000000000000e7bc96895730726225e47e31c742fd44d3936f31ecd32658c694fc11df2522401000000000000002299bac5f0a0570861899eed87f7f1faf65d74bb8120b8f498a6af503762c37901000000000000008873eb6d260a77ad37a779b9d6c87eabde1fb0be17ddfbd8c8bef64200cdf0db01000000000000008600604f01fa82a628ce3cb883cc6ff391cc6b7a348f3fd0d90b6657461013260100000000000000e08a65617167ad46c5217d67de29bf79e1f8f417e0d6d8e64bed10ae13312d8401000000000000003f6aeb3ed0d67d71ee11a1c2e1ed66da77abd8cc8c0f4d995d64fe4ec873684701000000000000006375ae0c1bf2b0388e16971715fd68c31ed179f38947531c165f0da2c3fe766701000000000000000cfb71d3e8d694979c35bbfce53fd595f2df0f1679ce32799c1774a22222433d010000000000000012aa455c35356255f9ba286193962f3bc23f7fff565c1995ac21015bd946fe6e0100000000000000447a00c24ddef95382f0fce94aec3aefb0e8f0cb1a635bfb05faa030d63c1130010000000000000047ede3eca5f6c8f0a51f2d36d7d1c236aab07a8b2aaa6ab08c8ccf8d87ce3dd10100000000000000a5d172126aadfe80d2b711776674d61df5a1cd1a0129761fb2d2de58ed9d48a001000000000000006b5487e03da258c7c92add43a1b5a99a0b40f8316e758585150877bb6fe88b3201000000000000009a0ea02dca493accceb975732f31c9d249d4c90ff1ca0bd86cbe00f1728146b401000000000000004485615186ae8ad33aff337594a7f8325d3a50201ee04320fb1dd2eab9643d1601000000000000002b07c366c1ed899a2ac9722b76e092828714a8177368e51ca05ec05c565866b30100000000000000e81206b483fdcf1fe42145f27d1efb8178a57ee24b196285374037da2a53b32301000000000000001ac44a1e32a5aabcb2bd23d6586da06e7d97d49a36cd670acaee574df1b912210100000000000000ff568b8e0dbe74604c6d04b5de6f2df03b343bea074c4495c6a10e511ba473d9010000000000000032bbff551f7ed51452d264d796315e578d982e942eebb60e519ca648935d8b0c01000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd880100000000000000db106e27c5b78f1a0d19e0abb47b4666c54906c5539c8596b43d36dc885e927a0100000000000000b5e0d0ae74b0ac76c0195fecca9660a241920ba97cdc5a247c7e941ee1f5407c01000000000000001450fb02aedbbfce8ec62c79767acd6b9e881390ad868d07713bb1d41d9c74b90100000000000000f33b53556f28f27d250585317cd57a18f37c5d5f2b3c1bd00a0c91ea54f1636f0100000000000000e056900cabddb471de9e1846d7efdddd8b5ad400b02fc54b4402ba725c78bf9a0100000000000000f1d8f202f4766a1eddc43c209636d25771988a0058ae1e16797219337771307f010000000000000080629b67e7b2d6f57e9da3cb29cc8463a65d125039628124784f944b94c29e8801000000000000008a92eb6852ec8ed6a1721d33f6f671e488fb995c3fa36c5e55400721bcacef75010000000000000080a35afdc67bbec0e3e5ef1fa569249264c54d74df218b46e1dc0fd585149f45010000000000000079f73931b31ce353119fb4063412e844b16cb3eb92e592ebd822a8c213035548010000000000000030afa9ef79458f844a27a3881655b6eafb90b3912737f1bcddb95e78eb098c1d010000000000000095885aaa49faca9622ac9eab12f2efa509361511039934ffeff93eb948eb517d010000000000000031a46e639e57d1a11119b17f76617a35b3606d206fb5c3e87710f464f7a57de50100000000000000ed25d7114e2aef2f0e57dc2be1401a4994d8aaafb30223162634a512604a2366010000000000000012c277c98d0593ec3d0f9d01e8ce08f67813197b67fe96d2be7c5ba6481515df010000000000000008070000000000000001c362260100211c00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b2601070700000000000048572601" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index 2f58b0fd9e..27dd4fac61 100644 Binary files a/artifacts/polkadot_metadata_full.scale and b/artifacts/polkadot_metadata_full.scale differ diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index 1e89a0ce91..34c8a218b6 100644 Binary files a/artifacts/polkadot_metadata_small.scale and b/artifacts/polkadot_metadata_small.scale differ diff --git a/artifacts/polkadot_metadata_tiny.scale b/artifacts/polkadot_metadata_tiny.scale index 7dce918539..8de6b32b05 100644 Binary files a/artifacts/polkadot_metadata_tiny.scale and b/artifacts/polkadot_metadata_tiny.scale differ diff --git a/scripts/artifacts/src/main.rs b/scripts/artifacts/src/main.rs index 0b5d247735..17ca76cb1a 100644 --- a/scripts/artifacts/src/main.rs +++ b/scripts/artifacts/src/main.rs @@ -10,7 +10,7 @@ use substrate_runner::SubstrateNode; /// Run with `cargo run --bin artifacts` from the root of the repository. fn main() { let mut node_builder = SubstrateNode::builder(); - node_builder.binary_paths(["substrate-node", "substrate"]); + node_builder.polkadot(); // Spawn the node and retrieve a ws URL to it: let proc = node_builder @@ -37,13 +37,13 @@ fn main() { // Generate a metadata file that only contains a few pallets that we need for our examples. run_cmd( - r#"cargo run --bin subxt metadata --file artifacts/polkadot_metadata_full.scale --pallets "Balances,Staking,System,Multisig,Timestamp,ParaInherent""#, + "cargo run --bin subxt metadata --file artifacts/polkadot_metadata_full.scale --pallets Balances,Staking,System,Multisig,Timestamp,ParaInherent", Some("artifacts/polkadot_metadata_small.scale"), ); // Generate a metadata file that contains no pallets run_cmd( - r#"cargo run --bin subxt metadata --file artifacts/polkadot_metadata_full.scale --pallets """#, + "cargo run --bin subxt metadata --file artifacts/polkadot_metadata_full.scale --pallets \"\"", Some("artifacts/polkadot_metadata_tiny.scale"), ); diff --git a/testing/integration-tests/src/full_client/codegen/polkadot.rs b/testing/integration-tests/src/full_client/codegen/polkadot.rs index 1e3fd1092b..03502244c3 100644 --- a/testing/integration-tests/src/full_client/codegen/polkadot.rs +++ b/testing/integration-tests/src/full_client/codegen/polkadot.rs @@ -6,7 +6,7 @@ pub mod api { mod root_mod { pub use super::*; } - pub static PALLETS: [&str; 65usize] = [ + pub static PALLETS: [&str; 67usize] = [ "System", "Babe", "Timestamp", @@ -21,13 +21,13 @@ pub mod api { "MmrLeaf", "Session", "Grandpa", - "ImOnline", "AuthorityDiscovery", "Treasury", "ConvictionVoting", "Referenda", "FellowshipCollective", "FellowshipReferenda", + "Origins", "Whitelist", "Claims", "Utility", @@ -58,14 +58,16 @@ pub mod api { "ParasDisputes", "ParasSlashing", "MessageQueue", - "ParaAssignmentProvider", "OnDemandAssignmentProvider", "ParachainsAssignmentProvider", + "CoretimeAssignmentProvider", "Registrar", "Slots", "Auctions", "Crowdloan", + "Coretime", "XcmPallet", + "IdentityMigrator", "ParasSudoWrapper", "AssignedSlots", "ValidatorManager", @@ -1023,9 +1025,10 @@ pub mod api { "on_chain_votes", types::OnChainVotes {}, [ - 8u8, 253u8, 248u8, 13u8, 221u8, 83u8, 199u8, 65u8, 180u8, 193u8, 232u8, - 179u8, 56u8, 186u8, 72u8, 128u8, 27u8, 168u8, 177u8, 82u8, 194u8, - 139u8, 78u8, 32u8, 147u8, 67u8, 27u8, 252u8, 118u8, 60u8, 74u8, 31u8, + 158u8, 98u8, 68u8, 85u8, 65u8, 186u8, 211u8, 5u8, 16u8, 63u8, 34u8, + 85u8, 16u8, 114u8, 115u8, 174u8, 154u8, 127u8, 176u8, 205u8, 12u8, + 231u8, 3u8, 170u8, 102u8, 223u8, 25u8, 130u8, 225u8, 214u8, 98u8, + 255u8, ], ) } @@ -1149,9 +1152,9 @@ pub mod api { "session_executor_params", types::SessionExecutorParams { session_index }, [ - 207u8, 66u8, 10u8, 104u8, 146u8, 219u8, 75u8, 157u8, 93u8, 224u8, - 215u8, 13u8, 255u8, 62u8, 134u8, 168u8, 185u8, 101u8, 39u8, 78u8, 98u8, - 44u8, 129u8, 38u8, 48u8, 244u8, 103u8, 205u8, 66u8, 121u8, 18u8, 247u8, + 94u8, 35u8, 29u8, 188u8, 247u8, 116u8, 165u8, 43u8, 248u8, 76u8, 21u8, + 237u8, 26u8, 25u8, 105u8, 27u8, 24u8, 245u8, 97u8, 25u8, 47u8, 118u8, + 98u8, 231u8, 27u8, 76u8, 172u8, 207u8, 90u8, 103u8, 52u8, 168u8, ], ) } @@ -1296,6 +1299,44 @@ pub mod api { ], ) } + #[doc = " Get node features."] + #[doc = " This is a staging method! Do not use on production runtimes!"] + pub fn node_features( + &self, + ) -> ::subxt::runtime_api::Payload< + types::NodeFeatures, + types::node_features::output::Output, + > { + ::subxt::runtime_api::Payload::new_static( + "ParachainHost", + "node_features", + types::NodeFeatures {}, + [ + 94u8, 110u8, 38u8, 62u8, 66u8, 234u8, 216u8, 228u8, 36u8, 17u8, 33u8, + 56u8, 184u8, 122u8, 34u8, 254u8, 46u8, 62u8, 107u8, 227u8, 3u8, 126u8, + 220u8, 142u8, 92u8, 226u8, 123u8, 236u8, 34u8, 234u8, 82u8, 80u8, + ], + ) + } + #[doc = " Approval voting configuration parameters"] + pub fn approval_voting_params( + &self, + ) -> ::subxt::runtime_api::Payload< + types::ApprovalVotingParams, + types::approval_voting_params::output::Output, + > { + ::subxt::runtime_api::Payload::new_static( + "ParachainHost", + "approval_voting_params", + types::ApprovalVotingParams {}, + [ + 89u8, 130u8, 95u8, 58u8, 124u8, 176u8, 43u8, 109u8, 222u8, 178u8, + 241u8, 177u8, 242u8, 32u8, 84u8, 22u8, 252u8, 178u8, 168u8, 17u8, 38u8, + 249u8, 25u8, 229u8, 75u8, 119u8, 150u8, 112u8, 144u8, 118u8, 189u8, + 253u8, + ], + ) + } } pub mod types { use super::runtime_types; @@ -1920,6 +1961,46 @@ pub mod api { #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] pub struct DisabledValidators {} + pub mod node_features { + use super::runtime_types; + pub mod output { + use super::runtime_types; + pub type Output = ::subxt::utils::bits::DecodedBits< + ::core::primitive::u8, + ::subxt::utils::bits::Lsb0, + >; + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct NodeFeatures {} + pub mod approval_voting_params { + use super::runtime_types; + pub mod output { + use super::runtime_types; + pub type Output = + runtime_types::polkadot_primitives::vstaging::ApprovalVotingParams; + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct ApprovalVotingParams {} } } pub mod beefy_api { @@ -3485,9 +3566,6 @@ pub mod api { pub fn grandpa(&self) -> grandpa::constants::ConstantsApi { grandpa::constants::ConstantsApi } - pub fn im_online(&self) -> im_online::constants::ConstantsApi { - im_online::constants::ConstantsApi - } pub fn treasury(&self) -> treasury::constants::ConstantsApi { treasury::constants::ConstantsApi } @@ -3564,6 +3642,9 @@ pub mod api { pub fn crowdloan(&self) -> crowdloan::constants::ConstantsApi { crowdloan::constants::ConstantsApi } + pub fn coretime(&self) -> coretime::constants::ConstantsApi { + coretime::constants::ConstantsApi + } pub fn assigned_slots(&self) -> assigned_slots::constants::ConstantsApi { assigned_slots::constants::ConstantsApi } @@ -3597,6 +3678,9 @@ pub mod api { pub fn offences(&self) -> offences::storage::StorageApi { offences::storage::StorageApi } + pub fn historical(&self) -> historical::storage::StorageApi { + historical::storage::StorageApi + } pub fn beefy(&self) -> beefy::storage::StorageApi { beefy::storage::StorageApi } @@ -3612,8 +3696,8 @@ pub mod api { pub fn grandpa(&self) -> grandpa::storage::StorageApi { grandpa::storage::StorageApi } - pub fn im_online(&self) -> im_online::storage::StorageApi { - im_online::storage::StorageApi + pub fn authority_discovery(&self) -> authority_discovery::storage::StorageApi { + authority_discovery::storage::StorageApi } pub fn treasury(&self) -> treasury::storage::StorageApi { treasury::storage::StorageApi @@ -3714,14 +3798,16 @@ pub mod api { pub fn message_queue(&self) -> message_queue::storage::StorageApi { message_queue::storage::StorageApi } - pub fn para_assignment_provider(&self) -> para_assignment_provider::storage::StorageApi { - para_assignment_provider::storage::StorageApi - } pub fn on_demand_assignment_provider( &self, ) -> on_demand_assignment_provider::storage::StorageApi { on_demand_assignment_provider::storage::StorageApi } + pub fn coretime_assignment_provider( + &self, + ) -> coretime_assignment_provider::storage::StorageApi { + coretime_assignment_provider::storage::StorageApi + } pub fn registrar(&self) -> registrar::storage::StorageApi { registrar::storage::StorageApi } @@ -3746,9 +3832,6 @@ pub mod api { pub fn state_trie_migration(&self) -> state_trie_migration::storage::StorageApi { state_trie_migration::storage::StorageApi } - pub fn root_testing(&self) -> root_testing::storage::StorageApi { - root_testing::storage::StorageApi - } pub fn sudo(&self) -> sudo::storage::StorageApi { sudo::storage::StorageApi } @@ -3779,9 +3862,6 @@ pub mod api { pub fn grandpa(&self) -> grandpa::calls::TransactionApi { grandpa::calls::TransactionApi } - pub fn im_online(&self) -> im_online::calls::TransactionApi { - im_online::calls::TransactionApi - } pub fn treasury(&self) -> treasury::calls::TransactionApi { treasury::calls::TransactionApi } @@ -3892,9 +3972,15 @@ pub mod api { pub fn crowdloan(&self) -> crowdloan::calls::TransactionApi { crowdloan::calls::TransactionApi } + pub fn coretime(&self) -> coretime::calls::TransactionApi { + coretime::calls::TransactionApi + } pub fn xcm_pallet(&self) -> xcm_pallet::calls::TransactionApi { xcm_pallet::calls::TransactionApi } + pub fn identity_migrator(&self) -> identity_migrator::calls::TransactionApi { + identity_migrator::calls::TransactionApi + } pub fn paras_sudo_wrapper(&self) -> paras_sudo_wrapper::calls::TransactionApi { paras_sudo_wrapper::calls::TransactionApi } @@ -3923,9 +4009,9 @@ pub mod api { .hash(); runtime_metadata_hash == [ - 217u8, 170u8, 7u8, 110u8, 237u8, 43u8, 49u8, 116u8, 87u8, 190u8, 100u8, 30u8, - 165u8, 15u8, 56u8, 52u8, 43u8, 64u8, 243u8, 187u8, 213u8, 229u8, 138u8, 173u8, - 223u8, 202u8, 95u8, 218u8, 85u8, 15u8, 85u8, 240u8, + 159u8, 248u8, 20u8, 74u8, 93u8, 145u8, 235u8, 204u8, 107u8, 155u8, 56u8, 127u8, + 31u8, 147u8, 245u8, 22u8, 198u8, 239u8, 90u8, 246u8, 169u8, 84u8, 180u8, 252u8, + 22u8, 163u8, 134u8, 37u8, 147u8, 44u8, 109u8, 13u8, ] } pub mod system { @@ -4122,6 +4208,72 @@ pub mod api { const PALLET: &'static str = "System"; const CALL: &'static str = "remark_with_event"; } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::authorize_upgrade`]."] + pub struct AuthorizeUpgrade { + pub code_hash: authorize_upgrade::CodeHash, + } + pub mod authorize_upgrade { + use super::runtime_types; + pub type CodeHash = ::subxt::utils::H256; + } + impl ::subxt::blocks::StaticExtrinsic for AuthorizeUpgrade { + const PALLET: &'static str = "System"; + const CALL: &'static str = "authorize_upgrade"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::authorize_upgrade_without_checks`]."] + pub struct AuthorizeUpgradeWithoutChecks { + pub code_hash: authorize_upgrade_without_checks::CodeHash, + } + pub mod authorize_upgrade_without_checks { + use super::runtime_types; + pub type CodeHash = ::subxt::utils::H256; + } + impl ::subxt::blocks::StaticExtrinsic for AuthorizeUpgradeWithoutChecks { + const PALLET: &'static str = "System"; + const CALL: &'static str = "authorize_upgrade_without_checks"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::apply_authorized_upgrade`]."] + pub struct ApplyAuthorizedUpgrade { + pub code: apply_authorized_upgrade::Code, + } + pub mod apply_authorized_upgrade { + use super::runtime_types; + pub type Code = ::std::vec::Vec<::core::primitive::u8>; + } + impl ::subxt::blocks::StaticExtrinsic for ApplyAuthorizedUpgrade { + const PALLET: &'static str = "System"; + const CALL: &'static str = "apply_authorized_upgrade"; + } } pub struct TransactionApi; impl TransactionApi { @@ -4260,6 +4412,56 @@ pub mod api { ], ) } + #[doc = "See [`Pallet::authorize_upgrade`]."] + pub fn authorize_upgrade( + &self, + code_hash: types::authorize_upgrade::CodeHash, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "System", + "authorize_upgrade", + types::AuthorizeUpgrade { code_hash }, + [ + 4u8, 14u8, 76u8, 107u8, 209u8, 129u8, 9u8, 39u8, 193u8, 17u8, 84u8, + 254u8, 170u8, 214u8, 24u8, 155u8, 29u8, 184u8, 249u8, 241u8, 109u8, + 58u8, 145u8, 131u8, 109u8, 63u8, 38u8, 165u8, 107u8, 215u8, 217u8, + 172u8, + ], + ) + } + #[doc = "See [`Pallet::authorize_upgrade_without_checks`]."] + pub fn authorize_upgrade_without_checks( + &self, + code_hash: types::authorize_upgrade_without_checks::CodeHash, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "System", + "authorize_upgrade_without_checks", + types::AuthorizeUpgradeWithoutChecks { code_hash }, + [ + 126u8, 126u8, 55u8, 26u8, 47u8, 55u8, 66u8, 8u8, 167u8, 18u8, 29u8, + 136u8, 146u8, 14u8, 189u8, 117u8, 16u8, 227u8, 162u8, 61u8, 149u8, + 197u8, 104u8, 184u8, 185u8, 161u8, 99u8, 154u8, 80u8, 125u8, 181u8, + 233u8, + ], + ) + } + #[doc = "See [`Pallet::apply_authorized_upgrade`]."] + pub fn apply_authorized_upgrade( + &self, + code: types::apply_authorized_upgrade::Code, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "System", + "apply_authorized_upgrade", + types::ApplyAuthorizedUpgrade { code }, + [ + 232u8, 107u8, 127u8, 38u8, 230u8, 29u8, 97u8, 4u8, 160u8, 191u8, 222u8, + 156u8, 245u8, 102u8, 196u8, 141u8, 44u8, 163u8, 98u8, 68u8, 125u8, + 32u8, 124u8, 101u8, 108u8, 93u8, 211u8, 52u8, 0u8, 231u8, 33u8, 227u8, + ], + ) + } } } #[doc = "Event for the System pallet."] @@ -4396,6 +4598,30 @@ pub mod api { const PALLET: &'static str = "System"; const EVENT: &'static str = "Remarked"; } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "An upgrade was authorized."] + pub struct UpgradeAuthorized { + pub code_hash: upgrade_authorized::CodeHash, + pub check_version: upgrade_authorized::CheckVersion, + } + pub mod upgrade_authorized { + use super::runtime_types; + pub type CodeHash = ::subxt::utils::H256; + pub type CheckVersion = ::core::primitive::bool; + } + impl ::subxt::events::StaticEvent for UpgradeAuthorized { + const PALLET: &'static str = "System"; + const EVENT: &'static str = "UpgradeAuthorized"; + } } pub mod storage { use super::runtime_types; @@ -4481,6 +4707,11 @@ pub mod api { use super::runtime_types; pub type ExecutionPhase = runtime_types::frame_system::Phase; } + pub mod authorized_upgrade { + use super::runtime_types; + pub type AuthorizedUpgrade = + runtime_types::frame_system::CodeUpgradeAuthorization; + } } pub struct StorageApi; impl StorageApi { @@ -4770,9 +5001,10 @@ pub mod api { "Events", vec![], [ - 203u8, 185u8, 202u8, 46u8, 60u8, 247u8, 185u8, 43u8, 177u8, 237u8, - 118u8, 62u8, 238u8, 44u8, 3u8, 32u8, 190u8, 212u8, 99u8, 224u8, 24u8, - 233u8, 250u8, 1u8, 75u8, 204u8, 1u8, 179u8, 199u8, 201u8, 61u8, 228u8, + 250u8, 105u8, 172u8, 217u8, 228u8, 110u8, 176u8, 187u8, 176u8, 96u8, + 251u8, 246u8, 10u8, 91u8, 10u8, 130u8, 149u8, 248u8, 60u8, 2u8, 95u8, + 25u8, 249u8, 73u8, 160u8, 204u8, 142u8, 109u8, 77u8, 204u8, 159u8, + 218u8, ], ) } @@ -4947,6 +5179,27 @@ pub mod api { ], ) } + #[doc = " `Some` if a code upgrade has been authorized."] + pub fn authorized_upgrade( + &self, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::authorized_upgrade::AuthorizedUpgrade, + ::subxt::storage::address::Yes, + (), + (), + > { + ::subxt::storage::address::Address::new_static( + "System", + "AuthorizedUpgrade", + vec![], + [ + 165u8, 97u8, 27u8, 138u8, 2u8, 28u8, 55u8, 92u8, 96u8, 96u8, 168u8, + 169u8, 55u8, 178u8, 44u8, 127u8, 58u8, 140u8, 206u8, 178u8, 1u8, 37u8, + 214u8, 213u8, 251u8, 123u8, 5u8, 111u8, 90u8, 148u8, 217u8, 135u8, + ], + ) + } } } pub mod constants { @@ -5581,9 +5834,10 @@ pub mod api { "Initialized", vec![], [ - 137u8, 31u8, 4u8, 130u8, 35u8, 232u8, 67u8, 108u8, 17u8, 123u8, 26u8, - 96u8, 238u8, 95u8, 138u8, 208u8, 163u8, 83u8, 218u8, 143u8, 8u8, 119u8, - 138u8, 130u8, 9u8, 194u8, 92u8, 40u8, 7u8, 89u8, 53u8, 237u8, + 169u8, 217u8, 237u8, 78u8, 186u8, 202u8, 206u8, 213u8, 54u8, 85u8, + 206u8, 166u8, 22u8, 138u8, 236u8, 60u8, 211u8, 169u8, 12u8, 183u8, + 23u8, 69u8, 194u8, 236u8, 112u8, 21u8, 62u8, 219u8, 92u8, 131u8, 134u8, + 145u8, ], ) } @@ -7461,10 +7715,10 @@ pub mod api { "Holds", vec![], [ - 72u8, 161u8, 107u8, 123u8, 240u8, 3u8, 198u8, 75u8, 46u8, 131u8, 122u8, - 141u8, 253u8, 141u8, 232u8, 192u8, 146u8, 54u8, 174u8, 162u8, 48u8, - 165u8, 226u8, 233u8, 12u8, 227u8, 23u8, 17u8, 237u8, 179u8, 193u8, - 166u8, + 181u8, 39u8, 29u8, 45u8, 45u8, 198u8, 129u8, 210u8, 189u8, 183u8, + 121u8, 125u8, 57u8, 90u8, 95u8, 107u8, 51u8, 13u8, 22u8, 105u8, 191u8, + 61u8, 54u8, 182u8, 50u8, 200u8, 137u8, 247u8, 180u8, 158u8, 16u8, + 193u8, ], ) } @@ -7486,10 +7740,10 @@ pub mod api { _0.borrow(), )], [ - 72u8, 161u8, 107u8, 123u8, 240u8, 3u8, 198u8, 75u8, 46u8, 131u8, 122u8, - 141u8, 253u8, 141u8, 232u8, 192u8, 146u8, 54u8, 174u8, 162u8, 48u8, - 165u8, 226u8, 233u8, 12u8, 227u8, 23u8, 17u8, 237u8, 179u8, 193u8, - 166u8, + 181u8, 39u8, 29u8, 45u8, 45u8, 198u8, 129u8, 210u8, 189u8, 183u8, + 121u8, 125u8, 57u8, 90u8, 95u8, 107u8, 51u8, 13u8, 22u8, 105u8, 191u8, + 61u8, 54u8, 182u8, 50u8, 200u8, 137u8, 247u8, 180u8, 158u8, 16u8, + 193u8, ], ) } @@ -7979,6 +8233,92 @@ pub mod api { pub mod historical { use super::root_mod; use super::runtime_types; + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod historical_sessions { + use super::runtime_types; + pub type HistoricalSessions = (::subxt::utils::H256, ::core::primitive::u32); + pub type Param0 = ::core::primitive::u32; + } + pub mod stored_range { + use super::runtime_types; + pub type StoredRange = (::core::primitive::u32, ::core::primitive::u32); + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " Mapping from historical session indices to session-data root hash and validator count."] + pub fn historical_sessions_iter( + &self, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::historical_sessions::HistoricalSessions, + (), + (), + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::Address::new_static( + "Historical", + "HistoricalSessions", + vec![], + [ + 9u8, 138u8, 247u8, 141u8, 178u8, 146u8, 124u8, 81u8, 162u8, 211u8, + 205u8, 149u8, 222u8, 254u8, 253u8, 188u8, 170u8, 242u8, 218u8, 41u8, + 124u8, 178u8, 109u8, 209u8, 163u8, 125u8, 225u8, 206u8, 249u8, 175u8, + 117u8, 75u8, + ], + ) + } + #[doc = " Mapping from historical session indices to session-data root hash and validator count."] + pub fn historical_sessions( + &self, + _0: impl ::std::borrow::Borrow, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::historical_sessions::HistoricalSessions, + ::subxt::storage::address::Yes, + (), + (), + > { + ::subxt::storage::address::Address::new_static( + "Historical", + "HistoricalSessions", + vec![::subxt::storage::address::make_static_storage_map_key( + _0.borrow(), + )], + [ + 9u8, 138u8, 247u8, 141u8, 178u8, 146u8, 124u8, 81u8, 162u8, 211u8, + 205u8, 149u8, 222u8, 254u8, 253u8, 188u8, 170u8, 242u8, 218u8, 41u8, + 124u8, 178u8, 109u8, 209u8, 163u8, 125u8, 225u8, 206u8, 249u8, 175u8, + 117u8, 75u8, + ], + ) + } + #[doc = " The range of historical sessions we store. [first, last)"] + pub fn stored_range( + &self, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::stored_range::StoredRange, + ::subxt::storage::address::Yes, + (), + (), + > { + ::subxt::storage::address::Address::new_static( + "Historical", + "StoredRange", + vec![], + [ + 134u8, 32u8, 250u8, 13u8, 201u8, 25u8, 54u8, 243u8, 231u8, 81u8, 252u8, + 231u8, 68u8, 217u8, 235u8, 43u8, 22u8, 223u8, 220u8, 133u8, 198u8, + 218u8, 95u8, 152u8, 189u8, 87u8, 6u8, 228u8, 242u8, 59u8, 232u8, 59u8, + ], + ) + } + } + } } pub mod beefy { use super::root_mod; @@ -8639,9 +8979,10 @@ pub mod api { "set_keys", types::SetKeys { keys, proof }, [ - 50u8, 154u8, 235u8, 252u8, 160u8, 25u8, 233u8, 90u8, 76u8, 227u8, 22u8, - 129u8, 221u8, 129u8, 95u8, 124u8, 117u8, 117u8, 43u8, 17u8, 109u8, - 252u8, 39u8, 115u8, 150u8, 80u8, 38u8, 34u8, 62u8, 237u8, 248u8, 246u8, + 160u8, 137u8, 167u8, 56u8, 165u8, 202u8, 149u8, 39u8, 16u8, 52u8, + 173u8, 215u8, 250u8, 158u8, 78u8, 126u8, 236u8, 153u8, 173u8, 68u8, + 237u8, 8u8, 47u8, 77u8, 119u8, 226u8, 248u8, 220u8, 139u8, 68u8, 145u8, + 207u8, ], ) } @@ -8813,9 +9154,10 @@ pub mod api { "QueuedKeys", vec![], [ - 251u8, 240u8, 64u8, 86u8, 241u8, 74u8, 141u8, 38u8, 46u8, 18u8, 92u8, - 101u8, 227u8, 161u8, 58u8, 222u8, 17u8, 29u8, 248u8, 237u8, 74u8, 69u8, - 18u8, 16u8, 129u8, 187u8, 172u8, 249u8, 162u8, 96u8, 218u8, 186u8, + 123u8, 8u8, 241u8, 219u8, 141u8, 50u8, 254u8, 247u8, 130u8, 71u8, + 105u8, 18u8, 149u8, 204u8, 28u8, 104u8, 184u8, 6u8, 165u8, 31u8, 153u8, + 54u8, 235u8, 78u8, 48u8, 182u8, 83u8, 221u8, 243u8, 110u8, 249u8, + 212u8, ], ) } @@ -8859,9 +9201,10 @@ pub mod api { "NextKeys", vec![], [ - 87u8, 61u8, 243u8, 159u8, 164u8, 196u8, 130u8, 218u8, 136u8, 189u8, - 253u8, 151u8, 230u8, 9u8, 214u8, 58u8, 102u8, 67u8, 61u8, 138u8, 242u8, - 214u8, 80u8, 166u8, 130u8, 47u8, 141u8, 197u8, 11u8, 73u8, 100u8, 16u8, + 13u8, 219u8, 184u8, 220u8, 199u8, 150u8, 34u8, 166u8, 125u8, 46u8, + 26u8, 160u8, 113u8, 243u8, 227u8, 6u8, 121u8, 176u8, 222u8, 250u8, + 108u8, 240u8, 0u8, 15u8, 177u8, 220u8, 206u8, 94u8, 179u8, 41u8, 209u8, + 23u8, ], ) } @@ -8883,9 +9226,10 @@ pub mod api { _0.borrow(), )], [ - 87u8, 61u8, 243u8, 159u8, 164u8, 196u8, 130u8, 218u8, 136u8, 189u8, - 253u8, 151u8, 230u8, 9u8, 214u8, 58u8, 102u8, 67u8, 61u8, 138u8, 242u8, - 214u8, 80u8, 166u8, 130u8, 47u8, 141u8, 197u8, 11u8, 73u8, 100u8, 16u8, + 13u8, 219u8, 184u8, 220u8, 199u8, 150u8, 34u8, 166u8, 125u8, 46u8, + 26u8, 160u8, 113u8, 243u8, 227u8, 6u8, 121u8, 176u8, 222u8, 250u8, + 108u8, 240u8, 0u8, 15u8, 177u8, 220u8, 206u8, 94u8, 179u8, 41u8, 209u8, + 23u8, ], ) } @@ -9219,6 +9563,14 @@ pub mod api { pub type SetIdSession = ::core::primitive::u32; pub type Param0 = ::core::primitive::u64; } + pub mod authorities { + use super::runtime_types; + pub type Authorities = + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<( + runtime_types::sp_consensus_grandpa::app::Public, + ::core::primitive::u64, + )>; + } } pub struct StorageApi; impl StorageApi { @@ -9393,6 +9745,28 @@ pub mod api { ], ) } + #[doc = " The current list of authorities."] + pub fn authorities( + &self, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::authorities::Authorities, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + (), + > { + ::subxt::storage::address::Address::new_static( + "Grandpa", + "Authorities", + vec![], + [ + 67u8, 196u8, 244u8, 13u8, 246u8, 245u8, 198u8, 98u8, 81u8, 55u8, 182u8, + 187u8, 214u8, 5u8, 181u8, 76u8, 251u8, 213u8, 144u8, 166u8, 36u8, + 153u8, 234u8, 181u8, 252u8, 55u8, 198u8, 175u8, 55u8, 211u8, 105u8, + 85u8, + ], + ) + } } } pub mod constants { @@ -9452,198 +9826,31 @@ pub mod api { } } } - pub mod im_online { + pub mod authority_discovery { use super::root_mod; use super::runtime_types; - #[doc = "The `Error` enum of this pallet."] - pub type Error = runtime_types::pallet_im_online::pallet::Error; - #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] - pub type Call = runtime_types::pallet_im_online::pallet::Call; - pub mod calls { - use super::root_mod; - use super::runtime_types; - type DispatchError = runtime_types::sp_runtime::DispatchError; - pub mod types { - use super::runtime_types; - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::heartbeat`]."] - pub struct Heartbeat { - pub heartbeat: heartbeat::Heartbeat, - pub signature: heartbeat::Signature, - } - pub mod heartbeat { - use super::runtime_types; - pub type Heartbeat = - runtime_types::pallet_im_online::Heartbeat<::core::primitive::u32>; - pub type Signature = - runtime_types::pallet_im_online::sr25519::app_sr25519::Signature; - } - impl ::subxt::blocks::StaticExtrinsic for Heartbeat { - const PALLET: &'static str = "ImOnline"; - const CALL: &'static str = "heartbeat"; - } - } - pub struct TransactionApi; - impl TransactionApi { - #[doc = "See [`Pallet::heartbeat`]."] - pub fn heartbeat( - &self, - heartbeat: types::heartbeat::Heartbeat, - signature: types::heartbeat::Signature, - ) -> ::subxt::tx::Payload { - ::subxt::tx::Payload::new_static( - "ImOnline", - "heartbeat", - types::Heartbeat { - heartbeat, - signature, - }, - [ - 41u8, 78u8, 115u8, 250u8, 94u8, 34u8, 215u8, 28u8, 33u8, 175u8, 203u8, - 205u8, 14u8, 40u8, 197u8, 51u8, 24u8, 198u8, 173u8, 32u8, 119u8, 154u8, - 213u8, 125u8, 219u8, 3u8, 128u8, 52u8, 166u8, 223u8, 241u8, 129u8, - ], - ) - } - } - } - #[doc = "The `Event` enum of this pallet"] - pub type Event = runtime_types::pallet_im_online::pallet::Event; - pub mod events { - use super::runtime_types; - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "A new heartbeat was received from `AuthorityId`."] - pub struct HeartbeatReceived { - pub authority_id: heartbeat_received::AuthorityId, - } - pub mod heartbeat_received { - use super::runtime_types; - pub type AuthorityId = - runtime_types::pallet_im_online::sr25519::app_sr25519::Public; - } - impl ::subxt::events::StaticEvent for HeartbeatReceived { - const PALLET: &'static str = "ImOnline"; - const EVENT: &'static str = "HeartbeatReceived"; - } - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "At the end of the session, no offence was committed."] - pub struct AllGood; - impl ::subxt::events::StaticEvent for AllGood { - const PALLET: &'static str = "ImOnline"; - const EVENT: &'static str = "AllGood"; - } - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "At the end of the session, at least one validator was found to be offline."] - pub struct SomeOffline { - pub offline: some_offline::Offline, - } - pub mod some_offline { - use super::runtime_types; - pub type Offline = ::std::vec::Vec<(::subxt::utils::AccountId32, ())>; - } - impl ::subxt::events::StaticEvent for SomeOffline { - const PALLET: &'static str = "ImOnline"; - const EVENT: &'static str = "SomeOffline"; - } - } pub mod storage { use super::runtime_types; pub mod types { use super::runtime_types; - pub mod heartbeat_after { - use super::runtime_types; - pub type HeartbeatAfter = ::core::primitive::u32; - } pub mod keys { use super::runtime_types; pub type Keys = runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< - runtime_types::pallet_im_online::sr25519::app_sr25519::Public, + runtime_types::sp_authority_discovery::app::Public, >; } - pub mod received_heartbeats { + pub mod next_keys { use super::runtime_types; - pub type ReceivedHeartbeats = ::core::primitive::bool; - pub type Param0 = ::core::primitive::u32; - pub type Param1 = ::core::primitive::u32; - } - pub mod authored_blocks { - use super::runtime_types; - pub type AuthoredBlocks = ::core::primitive::u32; - pub type Param0 = ::core::primitive::u32; - pub type Param1 = ::subxt::utils::AccountId32; + pub type NextKeys = + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< + runtime_types::sp_authority_discovery::app::Public, + >; } } pub struct StorageApi; impl StorageApi { - #[doc = " The block number after which it's ok to send heartbeats in the current"] - #[doc = " session."] - #[doc = ""] - #[doc = " At the beginning of each session we set this to a value that should fall"] - #[doc = " roughly in the middle of the session duration. The idea is to first wait for"] - #[doc = " the validators to produce a block in the current session, so that the"] - #[doc = " heartbeat later on will not be necessary."] - #[doc = ""] - #[doc = " This value will only be used as a fallback if we fail to get a proper session"] - #[doc = " progress estimate from `NextSessionRotation`, as those estimates should be"] - #[doc = " more accurate then the value we calculate for `HeartbeatAfter`."] - pub fn heartbeat_after( - &self, - ) -> ::subxt::storage::address::Address< - ::subxt::storage::address::StaticStorageMapKey, - types::heartbeat_after::HeartbeatAfter, - ::subxt::storage::address::Yes, - ::subxt::storage::address::Yes, - (), - > { - ::subxt::storage::address::Address::new_static( - "ImOnline", - "HeartbeatAfter", - vec![], - [ - 36u8, 179u8, 76u8, 254u8, 3u8, 184u8, 154u8, 142u8, 70u8, 104u8, 44u8, - 244u8, 39u8, 97u8, 31u8, 31u8, 93u8, 228u8, 185u8, 224u8, 13u8, 160u8, - 231u8, 210u8, 110u8, 143u8, 116u8, 29u8, 0u8, 215u8, 217u8, 137u8, - ], - ) - } - #[doc = " The current set of keys that may issue a heartbeat."] + #[doc = " Keys of the current authority set."] pub fn keys( &self, ) -> ::subxt::storage::address::Address< @@ -9654,7 +9861,7 @@ pub mod api { (), > { ::subxt::storage::address::Address::new_static( - "ImOnline", + "AuthorityDiscovery", "Keys", vec![], [ @@ -9665,184 +9872,29 @@ pub mod api { ], ) } - #[doc = " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`."] - pub fn received_heartbeats_iter( + #[doc = " Keys of the next authority set."] + pub fn next_keys( &self, ) -> ::subxt::storage::address::Address< ::subxt::storage::address::StaticStorageMapKey, - types::received_heartbeats::ReceivedHeartbeats, - (), - (), + types::next_keys::NextKeys, ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + (), > { ::subxt::storage::address::Address::new_static( - "ImOnline", - "ReceivedHeartbeats", + "AuthorityDiscovery", + "NextKeys", vec![], [ - 30u8, 155u8, 42u8, 200u8, 223u8, 48u8, 127u8, 31u8, 253u8, 195u8, - 234u8, 108u8, 64u8, 27u8, 247u8, 17u8, 187u8, 199u8, 41u8, 138u8, 55u8, - 163u8, 94u8, 226u8, 10u8, 3u8, 132u8, 129u8, 8u8, 138u8, 137u8, 171u8, - ], - ) - } - #[doc = " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`."] - pub fn received_heartbeats_iter1( - &self, - _0: impl ::std::borrow::Borrow, - ) -> ::subxt::storage::address::Address< - ::subxt::storage::address::StaticStorageMapKey, - types::received_heartbeats::ReceivedHeartbeats, - (), - (), - ::subxt::storage::address::Yes, - > { - ::subxt::storage::address::Address::new_static( - "ImOnline", - "ReceivedHeartbeats", - vec![::subxt::storage::address::make_static_storage_map_key( - _0.borrow(), - )], - [ - 30u8, 155u8, 42u8, 200u8, 223u8, 48u8, 127u8, 31u8, 253u8, 195u8, - 234u8, 108u8, 64u8, 27u8, 247u8, 17u8, 187u8, 199u8, 41u8, 138u8, 55u8, - 163u8, 94u8, 226u8, 10u8, 3u8, 132u8, 129u8, 8u8, 138u8, 137u8, 171u8, - ], - ) - } - #[doc = " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`."] - pub fn received_heartbeats( - &self, - _0: impl ::std::borrow::Borrow, - _1: impl ::std::borrow::Borrow, - ) -> ::subxt::storage::address::Address< - ::subxt::storage::address::StaticStorageMapKey, - types::received_heartbeats::ReceivedHeartbeats, - ::subxt::storage::address::Yes, - (), - (), - > { - ::subxt::storage::address::Address::new_static( - "ImOnline", - "ReceivedHeartbeats", - vec![ - ::subxt::storage::address::make_static_storage_map_key(_0.borrow()), - ::subxt::storage::address::make_static_storage_map_key(_1.borrow()), - ], - [ - 30u8, 155u8, 42u8, 200u8, 223u8, 48u8, 127u8, 31u8, 253u8, 195u8, - 234u8, 108u8, 64u8, 27u8, 247u8, 17u8, 187u8, 199u8, 41u8, 138u8, 55u8, - 163u8, 94u8, 226u8, 10u8, 3u8, 132u8, 129u8, 8u8, 138u8, 137u8, 171u8, - ], - ) - } - #[doc = " For each session index, we keep a mapping of `ValidatorId` to the"] - #[doc = " number of blocks authored by the given authority."] - pub fn authored_blocks_iter( - &self, - ) -> ::subxt::storage::address::Address< - ::subxt::storage::address::StaticStorageMapKey, - types::authored_blocks::AuthoredBlocks, - (), - ::subxt::storage::address::Yes, - ::subxt::storage::address::Yes, - > { - ::subxt::storage::address::Address::new_static( - "ImOnline", - "AuthoredBlocks", - vec![], - [ - 123u8, 76u8, 230u8, 113u8, 65u8, 255u8, 99u8, 79u8, 131u8, 139u8, - 218u8, 20u8, 174u8, 191u8, 224u8, 67u8, 137u8, 48u8, 146u8, 209u8, - 148u8, 69u8, 130u8, 9u8, 173u8, 253u8, 206u8, 196u8, 68u8, 160u8, - 233u8, 126u8, - ], - ) - } - #[doc = " For each session index, we keep a mapping of `ValidatorId` to the"] - #[doc = " number of blocks authored by the given authority."] - pub fn authored_blocks_iter1( - &self, - _0: impl ::std::borrow::Borrow, - ) -> ::subxt::storage::address::Address< - ::subxt::storage::address::StaticStorageMapKey, - types::authored_blocks::AuthoredBlocks, - (), - ::subxt::storage::address::Yes, - ::subxt::storage::address::Yes, - > { - ::subxt::storage::address::Address::new_static( - "ImOnline", - "AuthoredBlocks", - vec![::subxt::storage::address::make_static_storage_map_key( - _0.borrow(), - )], - [ - 123u8, 76u8, 230u8, 113u8, 65u8, 255u8, 99u8, 79u8, 131u8, 139u8, - 218u8, 20u8, 174u8, 191u8, 224u8, 67u8, 137u8, 48u8, 146u8, 209u8, - 148u8, 69u8, 130u8, 9u8, 173u8, 253u8, 206u8, 196u8, 68u8, 160u8, - 233u8, 126u8, - ], - ) - } - #[doc = " For each session index, we keep a mapping of `ValidatorId` to the"] - #[doc = " number of blocks authored by the given authority."] - pub fn authored_blocks( - &self, - _0: impl ::std::borrow::Borrow, - _1: impl ::std::borrow::Borrow, - ) -> ::subxt::storage::address::Address< - ::subxt::storage::address::StaticStorageMapKey, - types::authored_blocks::AuthoredBlocks, - ::subxt::storage::address::Yes, - ::subxt::storage::address::Yes, - (), - > { - ::subxt::storage::address::Address::new_static( - "ImOnline", - "AuthoredBlocks", - vec![ - ::subxt::storage::address::make_static_storage_map_key(_0.borrow()), - ::subxt::storage::address::make_static_storage_map_key(_1.borrow()), - ], - [ - 123u8, 76u8, 230u8, 113u8, 65u8, 255u8, 99u8, 79u8, 131u8, 139u8, - 218u8, 20u8, 174u8, 191u8, 224u8, 67u8, 137u8, 48u8, 146u8, 209u8, - 148u8, 69u8, 130u8, 9u8, 173u8, 253u8, 206u8, 196u8, 68u8, 160u8, - 233u8, 126u8, + 171u8, 107u8, 15u8, 108u8, 125u8, 102u8, 193u8, 240u8, 127u8, 160u8, + 53u8, 1u8, 208u8, 36u8, 134u8, 4u8, 216u8, 26u8, 156u8, 143u8, 154u8, + 194u8, 153u8, 199u8, 46u8, 211u8, 153u8, 222u8, 244u8, 4u8, 165u8, 2u8, ], ) } } } - pub mod constants { - use super::runtime_types; - pub struct ConstantsApi; - impl ConstantsApi { - #[doc = " A configuration for base priority of unsigned transactions."] - #[doc = ""] - #[doc = " This is exposed so that it can be tuned for particular runtime, when"] - #[doc = " multiple pallets send unsigned transactions."] - pub fn unsigned_priority( - &self, - ) -> ::subxt::constants::Address<::core::primitive::u64> { - ::subxt::constants::Address::new_static( - "ImOnline", - "UnsignedPriority", - [ - 128u8, 214u8, 205u8, 242u8, 181u8, 142u8, 124u8, 231u8, 190u8, 146u8, - 59u8, 226u8, 157u8, 101u8, 103u8, 117u8, 249u8, 65u8, 18u8, 191u8, - 103u8, 119u8, 53u8, 85u8, 81u8, 96u8, 220u8, 42u8, 184u8, 239u8, 42u8, - 246u8, - ], - ) - } - } - } - } - pub mod authority_discovery { - use super::root_mod; - use super::runtime_types; } pub mod treasury { use super::root_mod; @@ -10001,7 +10053,7 @@ pub mod api { pub type AssetKind = runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset; pub type Amount = ::core::primitive::u128; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; pub type ValidFrom = ::core::option::Option<::core::primitive::u32>; } impl ::subxt::blocks::StaticExtrinsic for Spend { @@ -10181,10 +10233,10 @@ pub mod api { valid_from, }, [ - 124u8, 75u8, 215u8, 13u8, 48u8, 105u8, 201u8, 35u8, 199u8, 228u8, 38u8, - 229u8, 147u8, 255u8, 237u8, 249u8, 114u8, 154u8, 129u8, 209u8, 177u8, - 17u8, 70u8, 107u8, 74u8, 175u8, 244u8, 132u8, 206u8, 24u8, 224u8, - 156u8, + 127u8, 68u8, 115u8, 140u8, 122u8, 90u8, 253u8, 105u8, 230u8, 137u8, + 104u8, 130u8, 221u8, 123u8, 49u8, 126u8, 247u8, 80u8, 12u8, 4u8, 223u8, + 218u8, 187u8, 192u8, 61u8, 221u8, 46u8, 211u8, 71u8, 196u8, 55u8, + 237u8, ], ) } @@ -10477,7 +10529,7 @@ pub mod api { pub type AssetKind = runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset; pub type Amount = ::core::primitive::u128; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; pub type ValidFrom = ::core::primitive::u32; pub type ExpireAt = ::core::primitive::u32; } @@ -10615,7 +10667,7 @@ pub mod api { pub type Spends = runtime_types::pallet_treasury::SpendStatus< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, ::core::primitive::u128, - runtime_types::xcm::VersionedMultiLocation, + runtime_types::xcm::VersionedLocation, ::core::primitive::u32, ::core::primitive::u64, >; @@ -10772,10 +10824,10 @@ pub mod api { "Spends", vec![], [ - 231u8, 192u8, 40u8, 149u8, 163u8, 98u8, 111u8, 136u8, 44u8, 162u8, - 87u8, 181u8, 233u8, 204u8, 87u8, 111u8, 210u8, 225u8, 235u8, 73u8, - 217u8, 8u8, 129u8, 51u8, 54u8, 85u8, 33u8, 103u8, 186u8, 128u8, 61u8, - 5u8, + 207u8, 104u8, 63u8, 103u8, 177u8, 66u8, 236u8, 100u8, 122u8, 213u8, + 125u8, 153u8, 180u8, 219u8, 124u8, 22u8, 88u8, 161u8, 188u8, 197u8, + 70u8, 46u8, 72u8, 170u8, 146u8, 4u8, 127u8, 160u8, 204u8, 2u8, 89u8, + 95u8, ], ) } @@ -10797,10 +10849,10 @@ pub mod api { _0.borrow(), )], [ - 231u8, 192u8, 40u8, 149u8, 163u8, 98u8, 111u8, 136u8, 44u8, 162u8, - 87u8, 181u8, 233u8, 204u8, 87u8, 111u8, 210u8, 225u8, 235u8, 73u8, - 217u8, 8u8, 129u8, 51u8, 54u8, 85u8, 33u8, 103u8, 186u8, 128u8, 61u8, - 5u8, + 207u8, 104u8, 63u8, 103u8, 177u8, 66u8, 236u8, 100u8, 122u8, 213u8, + 125u8, 153u8, 180u8, 219u8, 124u8, 22u8, 88u8, 161u8, 188u8, 197u8, + 70u8, 46u8, 72u8, 170u8, 146u8, 4u8, 127u8, 160u8, 204u8, 2u8, 89u8, + 95u8, ], ) } @@ -11698,10 +11750,9 @@ pub mod api { enactment_moment, }, [ - 116u8, 212u8, 158u8, 18u8, 89u8, 136u8, 153u8, 97u8, 43u8, 197u8, - 200u8, 161u8, 145u8, 102u8, 19u8, 25u8, 135u8, 13u8, 199u8, 101u8, - 107u8, 221u8, 244u8, 15u8, 192u8, 176u8, 3u8, 154u8, 248u8, 70u8, - 113u8, 69u8, + 252u8, 72u8, 60u8, 208u8, 214u8, 81u8, 179u8, 80u8, 7u8, 215u8, 54u8, + 7u8, 214u8, 49u8, 72u8, 70u8, 213u8, 143u8, 217u8, 190u8, 47u8, 3u8, + 191u8, 110u8, 67u8, 139u8, 137u8, 215u8, 14u8, 225u8, 124u8, 117u8, ], ) } @@ -12330,9 +12381,10 @@ pub mod api { "ReferendumInfoFor", vec![], [ - 82u8, 199u8, 121u8, 36u8, 81u8, 129u8, 79u8, 226u8, 19u8, 57u8, 26u8, - 76u8, 195u8, 60u8, 78u8, 91u8, 198u8, 250u8, 105u8, 111u8, 235u8, 11u8, - 195u8, 4u8, 39u8, 92u8, 156u8, 53u8, 248u8, 89u8, 26u8, 112u8, + 244u8, 215u8, 156u8, 181u8, 105u8, 12u8, 138u8, 249u8, 173u8, 158u8, + 171u8, 67u8, 107u8, 228u8, 45u8, 180u8, 252u8, 244u8, 186u8, 78u8, + 226u8, 223u8, 168u8, 137u8, 6u8, 232u8, 169u8, 108u8, 104u8, 211u8, + 1u8, 157u8, ], ) } @@ -12354,9 +12406,10 @@ pub mod api { _0.borrow(), )], [ - 82u8, 199u8, 121u8, 36u8, 81u8, 129u8, 79u8, 226u8, 19u8, 57u8, 26u8, - 76u8, 195u8, 60u8, 78u8, 91u8, 198u8, 250u8, 105u8, 111u8, 235u8, 11u8, - 195u8, 4u8, 39u8, 92u8, 156u8, 53u8, 248u8, 89u8, 26u8, 112u8, + 244u8, 215u8, 156u8, 181u8, 105u8, 12u8, 138u8, 249u8, 173u8, 158u8, + 171u8, 67u8, 107u8, 228u8, 45u8, 180u8, 252u8, 244u8, 186u8, 78u8, + 226u8, 223u8, 168u8, 137u8, 6u8, 232u8, 169u8, 108u8, 104u8, 211u8, + 1u8, 157u8, ], ) } @@ -13617,10 +13670,9 @@ pub mod api { enactment_moment, }, [ - 116u8, 212u8, 158u8, 18u8, 89u8, 136u8, 153u8, 97u8, 43u8, 197u8, - 200u8, 161u8, 145u8, 102u8, 19u8, 25u8, 135u8, 13u8, 199u8, 101u8, - 107u8, 221u8, 244u8, 15u8, 192u8, 176u8, 3u8, 154u8, 248u8, 70u8, - 113u8, 69u8, + 252u8, 72u8, 60u8, 208u8, 214u8, 81u8, 179u8, 80u8, 7u8, 215u8, 54u8, + 7u8, 214u8, 49u8, 72u8, 70u8, 213u8, 143u8, 217u8, 190u8, 47u8, 3u8, + 191u8, 110u8, 67u8, 139u8, 137u8, 215u8, 14u8, 225u8, 124u8, 117u8, ], ) } @@ -14241,9 +14293,10 @@ pub mod api { "ReferendumInfoFor", vec![], [ - 154u8, 115u8, 139u8, 27u8, 56u8, 76u8, 212u8, 73u8, 155u8, 177u8, 26u8, - 156u8, 1u8, 163u8, 243u8, 143u8, 10u8, 188u8, 63u8, 63u8, 190u8, 158u8, - 142u8, 61u8, 245u8, 254u8, 11u8, 109u8, 170u8, 98u8, 77u8, 95u8, + 64u8, 146u8, 31u8, 207u8, 209u8, 86u8, 44u8, 53u8, 78u8, 240u8, 222u8, + 131u8, 225u8, 83u8, 114u8, 205u8, 225u8, 20u8, 128u8, 183u8, 19u8, + 204u8, 67u8, 31u8, 154u8, 115u8, 183u8, 218u8, 34u8, 134u8, 222u8, + 32u8, ], ) } @@ -14265,9 +14318,10 @@ pub mod api { _0.borrow(), )], [ - 154u8, 115u8, 139u8, 27u8, 56u8, 76u8, 212u8, 73u8, 155u8, 177u8, 26u8, - 156u8, 1u8, 163u8, 243u8, 143u8, 10u8, 188u8, 63u8, 63u8, 190u8, 158u8, - 142u8, 61u8, 245u8, 254u8, 11u8, 109u8, 170u8, 98u8, 77u8, 95u8, + 64u8, 146u8, 31u8, 207u8, 209u8, 86u8, 44u8, 53u8, 78u8, 240u8, 222u8, + 131u8, 225u8, 83u8, 114u8, 205u8, 225u8, 20u8, 128u8, 183u8, 19u8, + 204u8, 67u8, 31u8, 154u8, 115u8, 183u8, 218u8, 34u8, 134u8, 222u8, + 32u8, ], ) } @@ -14520,6 +14574,10 @@ pub mod api { } } } + pub mod origins { + use super::root_mod; + use super::runtime_types; + } pub mod whitelist { use super::root_mod; use super::runtime_types; @@ -14698,10 +14756,10 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 149u8, 115u8, 81u8, 76u8, 235u8, 167u8, 31u8, 227u8, 153u8, 46u8, - 233u8, 199u8, 94u8, 30u8, 253u8, 19u8, 189u8, 77u8, 151u8, 249u8, 68u8, - 207u8, 139u8, 67u8, 6u8, 193u8, 131u8, 123u8, 101u8, 100u8, 13u8, - 222u8, + 210u8, 240u8, 64u8, 4u8, 78u8, 73u8, 77u8, 229u8, 128u8, 118u8, 167u8, + 126u8, 152u8, 130u8, 213u8, 196u8, 80u8, 141u8, 244u8, 241u8, 10u8, + 82u8, 152u8, 243u8, 94u8, 47u8, 137u8, 209u8, 151u8, 31u8, 103u8, + 230u8, ], ) } @@ -15570,9 +15628,10 @@ pub mod api { "batch", types::Batch { calls }, [ - 78u8, 111u8, 192u8, 46u8, 34u8, 172u8, 232u8, 158u8, 67u8, 231u8, - 116u8, 182u8, 17u8, 178u8, 31u8, 98u8, 146u8, 71u8, 226u8, 56u8, 105u8, - 184u8, 75u8, 175u8, 78u8, 225u8, 25u8, 5u8, 226u8, 195u8, 199u8, 41u8, + 235u8, 69u8, 83u8, 214u8, 119u8, 108u8, 60u8, 227u8, 129u8, 43u8, + 230u8, 70u8, 242u8, 146u8, 178u8, 239u8, 75u8, 107u8, 16u8, 124u8, + 95u8, 189u8, 144u8, 191u8, 135u8, 243u8, 61u8, 102u8, 155u8, 3u8, + 230u8, 52u8, ], ) } @@ -15590,10 +15649,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 112u8, 49u8, 70u8, 206u8, 54u8, 117u8, 186u8, 83u8, 25u8, 68u8, 8u8, - 255u8, 91u8, 43u8, 254u8, 165u8, 230u8, 24u8, 104u8, 176u8, 236u8, - 166u8, 147u8, 244u8, 103u8, 208u8, 164u8, 26u8, 72u8, 44u8, 143u8, - 209u8, + 89u8, 19u8, 38u8, 160u8, 61u8, 225u8, 248u8, 36u8, 213u8, 109u8, 186u8, + 91u8, 66u8, 62u8, 55u8, 186u8, 159u8, 246u8, 125u8, 201u8, 101u8, + 209u8, 40u8, 35u8, 15u8, 186u8, 43u8, 216u8, 141u8, 244u8, 36u8, 178u8, ], ) } @@ -15607,10 +15665,9 @@ pub mod api { "batch_all", types::BatchAll { calls }, [ - 163u8, 4u8, 232u8, 21u8, 56u8, 119u8, 67u8, 62u8, 223u8, 193u8, 23u8, - 181u8, 202u8, 55u8, 186u8, 155u8, 169u8, 187u8, 213u8, 34u8, 153u8, - 255u8, 210u8, 170u8, 187u8, 212u8, 71u8, 92u8, 173u8, 145u8, 91u8, - 218u8, + 203u8, 246u8, 164u8, 119u8, 42u8, 254u8, 130u8, 113u8, 187u8, 95u8, + 175u8, 121u8, 73u8, 183u8, 95u8, 32u8, 103u8, 93u8, 214u8, 66u8, 148u8, + 143u8, 212u8, 50u8, 204u8, 219u8, 51u8, 37u8, 204u8, 6u8, 231u8, 133u8, ], ) } @@ -15628,10 +15685,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 91u8, 220u8, 144u8, 201u8, 69u8, 201u8, 58u8, 205u8, 190u8, 98u8, - 138u8, 115u8, 107u8, 54u8, 190u8, 44u8, 9u8, 46u8, 109u8, 80u8, 102u8, - 167u8, 139u8, 162u8, 61u8, 191u8, 159u8, 217u8, 207u8, 236u8, 20u8, - 213u8, + 209u8, 149u8, 31u8, 38u8, 134u8, 220u8, 22u8, 25u8, 8u8, 192u8, 23u8, + 136u8, 36u8, 95u8, 238u8, 118u8, 167u8, 158u8, 202u8, 37u8, 52u8, 69u8, + 46u8, 220u8, 60u8, 21u8, 120u8, 231u8, 193u8, 100u8, 103u8, 94u8, ], ) } @@ -15645,10 +15701,9 @@ pub mod api { "force_batch", types::ForceBatch { calls }, [ - 255u8, 125u8, 65u8, 157u8, 224u8, 195u8, 44u8, 249u8, 206u8, 224u8, - 11u8, 66u8, 67u8, 139u8, 24u8, 136u8, 57u8, 79u8, 85u8, 26u8, 51u8, - 170u8, 205u8, 52u8, 181u8, 94u8, 125u8, 250u8, 163u8, 126u8, 140u8, - 43u8, + 79u8, 8u8, 104u8, 150u8, 79u8, 246u8, 104u8, 229u8, 224u8, 250u8, 43u8, + 122u8, 82u8, 183u8, 51u8, 198u8, 89u8, 164u8, 231u8, 218u8, 164u8, + 77u8, 190u8, 17u8, 80u8, 109u8, 36u8, 149u8, 138u8, 64u8, 63u8, 153u8, ], ) } @@ -15666,10 +15721,10 @@ pub mod api { weight, }, [ - 187u8, 254u8, 162u8, 240u8, 54u8, 31u8, 44u8, 138u8, 164u8, 40u8, - 207u8, 170u8, 80u8, 220u8, 64u8, 162u8, 39u8, 87u8, 132u8, 169u8, 14u8, - 193u8, 69u8, 251u8, 171u8, 148u8, 107u8, 163u8, 73u8, 193u8, 46u8, - 26u8, + 162u8, 205u8, 237u8, 176u8, 167u8, 52u8, 45u8, 114u8, 66u8, 50u8, + 129u8, 249u8, 116u8, 253u8, 185u8, 76u8, 100u8, 236u8, 163u8, 104u8, + 64u8, 234u8, 102u8, 152u8, 93u8, 64u8, 37u8, 125u8, 82u8, 53u8, 145u8, + 220u8, ], ) } @@ -16181,6 +16236,179 @@ pub mod api { const PALLET: &'static str = "Identity"; const CALL: &'static str = "quit_sub"; } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::add_username_authority`]."] + pub struct AddUsernameAuthority { + pub authority: add_username_authority::Authority, + pub suffix: add_username_authority::Suffix, + pub allocation: add_username_authority::Allocation, + } + pub mod add_username_authority { + use super::runtime_types; + pub type Authority = + ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>; + pub type Suffix = ::std::vec::Vec<::core::primitive::u8>; + pub type Allocation = ::core::primitive::u32; + } + impl ::subxt::blocks::StaticExtrinsic for AddUsernameAuthority { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "add_username_authority"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::remove_username_authority`]."] + pub struct RemoveUsernameAuthority { + pub authority: remove_username_authority::Authority, + } + pub mod remove_username_authority { + use super::runtime_types; + pub type Authority = + ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>; + } + impl ::subxt::blocks::StaticExtrinsic for RemoveUsernameAuthority { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "remove_username_authority"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::set_username_for`]."] + pub struct SetUsernameFor { + pub who: set_username_for::Who, + pub username: set_username_for::Username, + pub signature: set_username_for::Signature, + } + pub mod set_username_for { + use super::runtime_types; + pub type Who = ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>; + pub type Username = ::std::vec::Vec<::core::primitive::u8>; + pub type Signature = + ::core::option::Option; + } + impl ::subxt::blocks::StaticExtrinsic for SetUsernameFor { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "set_username_for"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::accept_username`]."] + pub struct AcceptUsername { + pub username: accept_username::Username, + } + pub mod accept_username { + use super::runtime_types; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::blocks::StaticExtrinsic for AcceptUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "accept_username"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::remove_expired_approval`]."] + pub struct RemoveExpiredApproval { + pub username: remove_expired_approval::Username, + } + pub mod remove_expired_approval { + use super::runtime_types; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::blocks::StaticExtrinsic for RemoveExpiredApproval { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "remove_expired_approval"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::set_primary_username`]."] + pub struct SetPrimaryUsername { + pub username: set_primary_username::Username, + } + pub mod set_primary_username { + use super::runtime_types; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::blocks::StaticExtrinsic for SetPrimaryUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "set_primary_username"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::remove_dangling_username`]."] + pub struct RemoveDanglingUsername { + pub username: remove_dangling_username::Username, + } + pub mod remove_dangling_username { + use super::runtime_types; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::blocks::StaticExtrinsic for RemoveDanglingUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "remove_dangling_username"; + } } pub struct TransactionApi; impl TransactionApi { @@ -16445,6 +16673,132 @@ pub mod api { ], ) } + #[doc = "See [`Pallet::add_username_authority`]."] + pub fn add_username_authority( + &self, + authority: types::add_username_authority::Authority, + suffix: types::add_username_authority::Suffix, + allocation: types::add_username_authority::Allocation, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Identity", + "add_username_authority", + types::AddUsernameAuthority { + authority, + suffix, + allocation, + }, + [ + 225u8, 197u8, 122u8, 209u8, 206u8, 241u8, 247u8, 232u8, 196u8, 110u8, + 75u8, 157u8, 44u8, 181u8, 35u8, 75u8, 182u8, 219u8, 100u8, 64u8, 208u8, + 112u8, 120u8, 229u8, 211u8, 69u8, 193u8, 214u8, 195u8, 98u8, 10u8, + 25u8, + ], + ) + } + #[doc = "See [`Pallet::remove_username_authority`]."] + pub fn remove_username_authority( + &self, + authority: types::remove_username_authority::Authority, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Identity", + "remove_username_authority", + types::RemoveUsernameAuthority { authority }, + [ + 4u8, 182u8, 89u8, 1u8, 183u8, 15u8, 215u8, 48u8, 165u8, 97u8, 252u8, + 54u8, 223u8, 18u8, 211u8, 227u8, 226u8, 230u8, 185u8, 71u8, 202u8, + 95u8, 191u8, 6u8, 118u8, 144u8, 92u8, 98u8, 64u8, 243u8, 2u8, 137u8, + ], + ) + } + #[doc = "See [`Pallet::set_username_for`]."] + pub fn set_username_for( + &self, + who: types::set_username_for::Who, + username: types::set_username_for::Username, + signature: types::set_username_for::Signature, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Identity", + "set_username_for", + types::SetUsernameFor { + who, + username, + signature, + }, + [ + 109u8, 128u8, 201u8, 28u8, 164u8, 222u8, 234u8, 197u8, 202u8, 156u8, + 53u8, 83u8, 51u8, 211u8, 222u8, 126u8, 227u8, 105u8, 72u8, 29u8, 25u8, + 188u8, 134u8, 247u8, 210u8, 183u8, 69u8, 94u8, 238u8, 91u8, 176u8, + 158u8, + ], + ) + } + #[doc = "See [`Pallet::accept_username`]."] + pub fn accept_username( + &self, + username: types::accept_username::Username, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Identity", + "accept_username", + types::AcceptUsername { username }, + [ + 247u8, 162u8, 83u8, 250u8, 214u8, 7u8, 12u8, 253u8, 227u8, 4u8, 95u8, + 71u8, 150u8, 218u8, 216u8, 86u8, 137u8, 37u8, 114u8, 188u8, 18u8, + 232u8, 229u8, 179u8, 172u8, 251u8, 70u8, 29u8, 18u8, 86u8, 33u8, 129u8, + ], + ) + } + #[doc = "See [`Pallet::remove_expired_approval`]."] + pub fn remove_expired_approval( + &self, + username: types::remove_expired_approval::Username, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Identity", + "remove_expired_approval", + types::RemoveExpiredApproval { username }, + [ + 159u8, 171u8, 27u8, 97u8, 224u8, 171u8, 14u8, 89u8, 65u8, 213u8, 208u8, + 67u8, 118u8, 146u8, 0u8, 131u8, 82u8, 186u8, 142u8, 52u8, 173u8, 90u8, + 104u8, 107u8, 114u8, 202u8, 123u8, 222u8, 49u8, 53u8, 59u8, 61u8, + ], + ) + } + #[doc = "See [`Pallet::set_primary_username`]."] + pub fn set_primary_username( + &self, + username: types::set_primary_username::Username, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Identity", + "set_primary_username", + types::SetPrimaryUsername { username }, + [ + 3u8, 25u8, 56u8, 26u8, 108u8, 165u8, 84u8, 231u8, 16u8, 4u8, 6u8, + 232u8, 141u8, 7u8, 254u8, 50u8, 26u8, 230u8, 66u8, 245u8, 255u8, 101u8, + 183u8, 234u8, 197u8, 186u8, 132u8, 197u8, 251u8, 84u8, 212u8, 162u8, + ], + ) + } + #[doc = "See [`Pallet::remove_dangling_username`]."] + pub fn remove_dangling_username( + &self, + username: types::remove_dangling_username::Username, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Identity", + "remove_dangling_username", + types::RemoveDanglingUsername { username }, + [ + 220u8, 67u8, 52u8, 223u8, 169u8, 81u8, 202u8, 74u8, 199u8, 169u8, 89u8, + 60u8, 57u8, 153u8, 240u8, 105u8, 188u8, 222u8, 250u8, 247u8, 91u8, + 137u8, 37u8, 212u8, 10u8, 51u8, 9u8, 202u8, 165u8, 155u8, 222u8, 29u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -16694,6 +17048,179 @@ pub mod api { const PALLET: &'static str = "Identity"; const EVENT: &'static str = "SubIdentityRevoked"; } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "A username authority was added."] + pub struct AuthorityAdded { + pub authority: authority_added::Authority, + } + pub mod authority_added { + use super::runtime_types; + pub type Authority = ::subxt::utils::AccountId32; + } + impl ::subxt::events::StaticEvent for AuthorityAdded { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "AuthorityAdded"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "A username authority was removed."] + pub struct AuthorityRemoved { + pub authority: authority_removed::Authority, + } + pub mod authority_removed { + use super::runtime_types; + pub type Authority = ::subxt::utils::AccountId32; + } + impl ::subxt::events::StaticEvent for AuthorityRemoved { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "AuthorityRemoved"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "A username was set for `who`."] + pub struct UsernameSet { + pub who: username_set::Who, + pub username: username_set::Username, + } + pub mod username_set { + use super::runtime_types; + pub type Who = ::subxt::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::events::StaticEvent for UsernameSet { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "UsernameSet"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "A username was queued, but `who` must accept it prior to `expiration`."] + pub struct UsernameQueued { + pub who: username_queued::Who, + pub username: username_queued::Username, + pub expiration: username_queued::Expiration, + } + pub mod username_queued { + use super::runtime_types; + pub type Who = ::subxt::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + pub type Expiration = ::core::primitive::u32; + } + impl ::subxt::events::StaticEvent for UsernameQueued { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "UsernameQueued"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "A queued username passed its expiration without being claimed and was removed."] + pub struct PreapprovalExpired { + pub whose: preapproval_expired::Whose, + } + pub mod preapproval_expired { + use super::runtime_types; + pub type Whose = ::subxt::utils::AccountId32; + } + impl ::subxt::events::StaticEvent for PreapprovalExpired { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "PreapprovalExpired"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "A username was set as a primary and can be looked up from `who`."] + pub struct PrimaryUsernameSet { + pub who: primary_username_set::Who, + pub username: primary_username_set::Username, + } + pub mod primary_username_set { + use super::runtime_types; + pub type Who = ::subxt::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::events::StaticEvent for PrimaryUsernameSet { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "PrimaryUsernameSet"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "A dangling username (as in, a username corresponding to an account that has removed its"] + #[doc = "identity) has been removed."] + pub struct DanglingUsernameRemoved { + pub who: dangling_username_removed::Who, + pub username: dangling_username_removed::Username, + } + pub mod dangling_username_removed { + use super::runtime_types; + pub type Who = ::subxt::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::events::StaticEvent for DanglingUsernameRemoved { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "DanglingUsernameRemoved"; + } } pub mod storage { use super::runtime_types; @@ -16701,10 +17228,17 @@ pub mod api { use super::runtime_types; pub mod identity_of { use super::runtime_types; - pub type IdentityOf = runtime_types::pallet_identity::types::Registration< - ::core::primitive::u128, - runtime_types::pallet_identity::legacy::IdentityInfo, - >; + pub type IdentityOf = ( + runtime_types::pallet_identity::types::Registration< + ::core::primitive::u128, + runtime_types::pallet_identity::legacy::IdentityInfo, + >, + ::core::option::Option< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + >, + ); pub type Param0 = ::subxt::utils::AccountId32; } pub mod super_of { @@ -16738,10 +17272,36 @@ pub mod api { >, >; } + pub mod username_authorities { + use super::runtime_types; + pub type UsernameAuthorities = + runtime_types::pallet_identity::types::AuthorityProperties< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + >; + pub type Param0 = ::subxt::utils::AccountId32; + } + pub mod account_of_username { + use super::runtime_types; + pub type AccountOfUsername = ::subxt::utils::AccountId32; + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + pub mod pending_usernames { + use super::runtime_types; + pub type PendingUsernames = + (::subxt::utils::AccountId32, ::core::primitive::u32); + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } } pub struct StorageApi; impl StorageApi { - #[doc = " Information that is pertinent to identify the entity behind an account."] + #[doc = " Information that is pertinent to identify the entity behind an account. First item is the"] + #[doc = " registration, second is the account's primary username."] #[doc = ""] #[doc = " TWOX-NOTE: OK ― `AccountId` is a secure hash."] pub fn identity_of_iter( @@ -16758,13 +17318,14 @@ pub mod api { "IdentityOf", vec![], [ - 112u8, 2u8, 209u8, 123u8, 138u8, 171u8, 80u8, 243u8, 226u8, 88u8, 81u8, - 49u8, 59u8, 172u8, 88u8, 180u8, 255u8, 119u8, 57u8, 16u8, 169u8, 149u8, - 77u8, 239u8, 73u8, 182u8, 28u8, 112u8, 150u8, 110u8, 65u8, 139u8, + 0u8, 73u8, 213u8, 52u8, 49u8, 235u8, 238u8, 43u8, 119u8, 12u8, 35u8, + 162u8, 230u8, 24u8, 246u8, 200u8, 44u8, 254u8, 13u8, 84u8, 10u8, 27u8, + 159u8, 6u8, 176u8, 125u8, 24u8, 212u8, 250u8, 154u8, 181u8, 12u8, ], ) } - #[doc = " Information that is pertinent to identify the entity behind an account."] + #[doc = " Information that is pertinent to identify the entity behind an account. First item is the"] + #[doc = " registration, second is the account's primary username."] #[doc = ""] #[doc = " TWOX-NOTE: OK ― `AccountId` is a secure hash."] pub fn identity_of( @@ -16784,9 +17345,9 @@ pub mod api { _0.borrow(), )], [ - 112u8, 2u8, 209u8, 123u8, 138u8, 171u8, 80u8, 243u8, 226u8, 88u8, 81u8, - 49u8, 59u8, 172u8, 88u8, 180u8, 255u8, 119u8, 57u8, 16u8, 169u8, 149u8, - 77u8, 239u8, 73u8, 182u8, 28u8, 112u8, 150u8, 110u8, 65u8, 139u8, + 0u8, 73u8, 213u8, 52u8, 49u8, 235u8, 238u8, 43u8, 119u8, 12u8, 35u8, + 162u8, 230u8, 24u8, 246u8, 200u8, 44u8, 254u8, 13u8, 84u8, 10u8, 27u8, + 159u8, 6u8, 176u8, 125u8, 24u8, 212u8, 250u8, 154u8, 181u8, 12u8, ], ) } @@ -16917,13 +17478,170 @@ pub mod api { ], ) } + #[doc = " A map of the accounts who are authorized to grant usernames."] + pub fn username_authorities_iter( + &self, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::username_authorities::UsernameAuthorities, + (), + (), + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::Address::new_static( + "Identity", + "UsernameAuthorities", + vec![], + [ + 89u8, 102u8, 60u8, 184u8, 127u8, 244u8, 3u8, 61u8, 209u8, 78u8, 178u8, + 44u8, 159u8, 27u8, 7u8, 0u8, 22u8, 116u8, 42u8, 240u8, 130u8, 93u8, + 214u8, 182u8, 79u8, 222u8, 19u8, 20u8, 34u8, 198u8, 164u8, 146u8, + ], + ) + } + #[doc = " A map of the accounts who are authorized to grant usernames."] + pub fn username_authorities( + &self, + _0: impl ::std::borrow::Borrow, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::username_authorities::UsernameAuthorities, + ::subxt::storage::address::Yes, + (), + (), + > { + ::subxt::storage::address::Address::new_static( + "Identity", + "UsernameAuthorities", + vec![::subxt::storage::address::make_static_storage_map_key( + _0.borrow(), + )], + [ + 89u8, 102u8, 60u8, 184u8, 127u8, 244u8, 3u8, 61u8, 209u8, 78u8, 178u8, + 44u8, 159u8, 27u8, 7u8, 0u8, 22u8, 116u8, 42u8, 240u8, 130u8, 93u8, + 214u8, 182u8, 79u8, 222u8, 19u8, 20u8, 34u8, 198u8, 164u8, 146u8, + ], + ) + } + #[doc = " Reverse lookup from `username` to the `AccountId` that has registered it. The value should"] + #[doc = " be a key in the `IdentityOf` map, but it may not if the user has cleared their identity."] + #[doc = ""] + #[doc = " Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one"] + #[doc = " primary username."] + pub fn account_of_username_iter( + &self, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::account_of_username::AccountOfUsername, + (), + (), + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::Address::new_static( + "Identity", + "AccountOfUsername", + vec![], + [ + 131u8, 96u8, 207u8, 217u8, 223u8, 54u8, 51u8, 156u8, 8u8, 238u8, 134u8, + 57u8, 42u8, 110u8, 180u8, 107u8, 30u8, 109u8, 162u8, 110u8, 178u8, + 127u8, 151u8, 163u8, 89u8, 127u8, 181u8, 213u8, 74u8, 129u8, 207u8, + 15u8, + ], + ) + } + #[doc = " Reverse lookup from `username` to the `AccountId` that has registered it. The value should"] + #[doc = " be a key in the `IdentityOf` map, but it may not if the user has cleared their identity."] + #[doc = ""] + #[doc = " Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one"] + #[doc = " primary username."] + pub fn account_of_username( + &self, + _0: impl ::std::borrow::Borrow, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::account_of_username::AccountOfUsername, + ::subxt::storage::address::Yes, + (), + (), + > { + ::subxt::storage::address::Address::new_static( + "Identity", + "AccountOfUsername", + vec![::subxt::storage::address::make_static_storage_map_key( + _0.borrow(), + )], + [ + 131u8, 96u8, 207u8, 217u8, 223u8, 54u8, 51u8, 156u8, 8u8, 238u8, 134u8, + 57u8, 42u8, 110u8, 180u8, 107u8, 30u8, 109u8, 162u8, 110u8, 178u8, + 127u8, 151u8, 163u8, 89u8, 127u8, 181u8, 213u8, 74u8, 129u8, 207u8, + 15u8, + ], + ) + } + #[doc = " Usernames that an authority has granted, but that the account controller has not confirmed"] + #[doc = " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature"] + #[doc = " because they are a pure proxy, multisig, etc. In order to confirm it, they should call"] + #[doc = " [`Call::accept_username`]."] + #[doc = ""] + #[doc = " First tuple item is the account and second is the acceptance deadline."] + pub fn pending_usernames_iter( + &self, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::pending_usernames::PendingUsernames, + (), + (), + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::Address::new_static( + "Identity", + "PendingUsernames", + vec![], + [ + 237u8, 213u8, 92u8, 249u8, 11u8, 169u8, 104u8, 7u8, 201u8, 133u8, + 164u8, 64u8, 191u8, 172u8, 169u8, 229u8, 206u8, 105u8, 190u8, 113u8, + 21u8, 13u8, 70u8, 74u8, 140u8, 125u8, 123u8, 48u8, 183u8, 181u8, 170u8, + 147u8, + ], + ) + } + #[doc = " Usernames that an authority has granted, but that the account controller has not confirmed"] + #[doc = " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature"] + #[doc = " because they are a pure proxy, multisig, etc. In order to confirm it, they should call"] + #[doc = " [`Call::accept_username`]."] + #[doc = ""] + #[doc = " First tuple item is the account and second is the acceptance deadline."] + pub fn pending_usernames( + &self, + _0: impl ::std::borrow::Borrow, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::pending_usernames::PendingUsernames, + ::subxt::storage::address::Yes, + (), + (), + > { + ::subxt::storage::address::Address::new_static( + "Identity", + "PendingUsernames", + vec![::subxt::storage::address::make_static_storage_map_key( + _0.borrow(), + )], + [ + 237u8, 213u8, 92u8, 249u8, 11u8, 169u8, 104u8, 7u8, 201u8, 133u8, + 164u8, 64u8, 191u8, 172u8, 169u8, 229u8, 206u8, 105u8, 190u8, 113u8, + 21u8, 13u8, 70u8, 74u8, 140u8, 125u8, 123u8, 48u8, 183u8, 181u8, 170u8, + 147u8, + ], + ) + } } } pub mod constants { use super::runtime_types; pub struct ConstantsApi; impl ConstantsApi { - #[doc = " The amount held on deposit for a registered identity"] + #[doc = " The amount held on deposit for a registered identity."] pub fn basic_deposit( &self, ) -> ::subxt::constants::Address<::core::primitive::u128> { @@ -16996,6 +17714,51 @@ pub mod api { ], ) } + #[doc = " The number of blocks within which a username grant must be accepted."] + pub fn pending_username_expiration( + &self, + ) -> ::subxt::constants::Address<::core::primitive::u32> { + ::subxt::constants::Address::new_static( + "Identity", + "PendingUsernameExpiration", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } + #[doc = " The maximum length of a suffix."] + pub fn max_suffix_length( + &self, + ) -> ::subxt::constants::Address<::core::primitive::u32> { + ::subxt::constants::Address::new_static( + "Identity", + "MaxSuffixLength", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } + #[doc = " The maximum length of a username, including its suffix and any system-added delimiters."] + pub fn max_username_length( + &self, + ) -> ::subxt::constants::Address<::core::primitive::u32> { + ::subxt::constants::Address::new_static( + "Identity", + "MaxUsernameLength", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } } } } @@ -19359,10 +20122,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 226u8, 94u8, 208u8, 74u8, 163u8, 132u8, 180u8, 25u8, 34u8, 222u8, - 242u8, 194u8, 224u8, 188u8, 18u8, 229u8, 55u8, 248u8, 19u8, 244u8, - 182u8, 148u8, 138u8, 228u8, 2u8, 55u8, 50u8, 36u8, 32u8, 115u8, 147u8, - 149u8, + 85u8, 206u8, 232u8, 41u8, 57u8, 159u8, 145u8, 157u8, 94u8, 238u8, 80u8, + 26u8, 113u8, 194u8, 123u8, 196u8, 83u8, 235u8, 134u8, 102u8, 9u8, + 219u8, 64u8, 7u8, 251u8, 92u8, 23u8, 59u8, 188u8, 11u8, 24u8, 15u8, ], ) } @@ -20596,9 +21358,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 122u8, 88u8, 251u8, 25u8, 239u8, 91u8, 220u8, 116u8, 155u8, 219u8, - 129u8, 170u8, 81u8, 4u8, 224u8, 195u8, 83u8, 196u8, 48u8, 159u8, 222u8, - 72u8, 2u8, 131u8, 14u8, 204u8, 21u8, 234u8, 2u8, 237u8, 69u8, 28u8, + 158u8, 215u8, 150u8, 176u8, 69u8, 99u8, 193u8, 8u8, 225u8, 121u8, 86u8, + 178u8, 93u8, 227u8, 146u8, 186u8, 199u8, 7u8, 249u8, 188u8, 55u8, 74u8, + 122u8, 251u8, 65u8, 50u8, 183u8, 238u8, 96u8, 252u8, 122u8, 186u8, ], ) } @@ -20640,9 +21402,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 4u8, 172u8, 69u8, 211u8, 77u8, 162u8, 70u8, 8u8, 60u8, 79u8, 223u8, - 222u8, 210u8, 64u8, 116u8, 53u8, 161u8, 251u8, 28u8, 236u8, 12u8, - 212u8, 174u8, 0u8, 10u8, 78u8, 132u8, 232u8, 163u8, 44u8, 9u8, 200u8, + 40u8, 8u8, 195u8, 141u8, 167u8, 129u8, 96u8, 125u8, 51u8, 135u8, 252u8, + 10u8, 87u8, 220u8, 13u8, 137u8, 56u8, 188u8, 27u8, 59u8, 73u8, 47u8, + 136u8, 194u8, 218u8, 23u8, 33u8, 138u8, 91u8, 18u8, 80u8, 62u8, ], ) } @@ -20680,9 +21442,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 218u8, 190u8, 254u8, 33u8, 44u8, 21u8, 3u8, 225u8, 106u8, 85u8, 42u8, - 102u8, 206u8, 52u8, 225u8, 78u8, 220u8, 205u8, 130u8, 191u8, 223u8, - 152u8, 7u8, 46u8, 168u8, 251u8, 167u8, 72u8, 186u8, 102u8, 239u8, 95u8, + 66u8, 127u8, 226u8, 141u8, 231u8, 85u8, 141u8, 76u8, 145u8, 28u8, + 168u8, 30u8, 3u8, 53u8, 44u8, 126u8, 192u8, 214u8, 66u8, 113u8, 200u8, + 164u8, 109u8, 31u8, 31u8, 150u8, 91u8, 194u8, 172u8, 123u8, 8u8, 92u8, ], ) } @@ -20706,9 +21468,10 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 87u8, 222u8, 30u8, 136u8, 12u8, 96u8, 70u8, 211u8, 190u8, 75u8, 247u8, - 231u8, 71u8, 59u8, 62u8, 126u8, 22u8, 4u8, 237u8, 153u8, 26u8, 180u8, - 88u8, 128u8, 69u8, 55u8, 31u8, 201u8, 227u8, 95u8, 38u8, 67u8, + 26u8, 226u8, 147u8, 92u8, 228u8, 230u8, 99u8, 118u8, 206u8, 152u8, + 34u8, 209u8, 180u8, 135u8, 19u8, 43u8, 134u8, 19u8, 20u8, 106u8, 236u8, + 224u8, 120u8, 255u8, 113u8, 185u8, 193u8, 31u8, 58u8, 58u8, 136u8, + 239u8, ], ) } @@ -20935,9 +21698,9 @@ pub mod api { "Agenda", vec![], [ - 247u8, 226u8, 115u8, 70u8, 172u8, 69u8, 26u8, 24u8, 46u8, 202u8, 118u8, - 250u8, 111u8, 236u8, 77u8, 255u8, 26u8, 125u8, 18u8, 8u8, 24u8, 230u8, - 222u8, 140u8, 179u8, 235u8, 19u8, 161u8, 40u8, 78u8, 26u8, 173u8, + 10u8, 123u8, 252u8, 106u8, 154u8, 9u8, 245u8, 203u8, 188u8, 254u8, + 20u8, 41u8, 6u8, 226u8, 78u8, 188u8, 0u8, 173u8, 143u8, 44u8, 117u8, + 249u8, 180u8, 13u8, 236u8, 224u8, 170u8, 202u8, 24u8, 3u8, 163u8, 37u8, ], ) } @@ -20959,9 +21722,9 @@ pub mod api { _0.borrow(), )], [ - 247u8, 226u8, 115u8, 70u8, 172u8, 69u8, 26u8, 24u8, 46u8, 202u8, 118u8, - 250u8, 111u8, 236u8, 77u8, 255u8, 26u8, 125u8, 18u8, 8u8, 24u8, 230u8, - 222u8, 140u8, 179u8, 235u8, 19u8, 161u8, 40u8, 78u8, 26u8, 173u8, + 10u8, 123u8, 252u8, 106u8, 154u8, 9u8, 245u8, 203u8, 188u8, 254u8, + 20u8, 41u8, 6u8, 226u8, 78u8, 188u8, 0u8, 173u8, 143u8, 44u8, 117u8, + 249u8, 180u8, 13u8, 236u8, 224u8, 170u8, 202u8, 24u8, 3u8, 163u8, 37u8, ], ) } @@ -21351,10 +22114,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 244u8, 249u8, 206u8, 185u8, 48u8, 156u8, 194u8, 100u8, 198u8, 133u8, - 26u8, 248u8, 122u8, 194u8, 19u8, 42u8, 6u8, 201u8, 112u8, 79u8, 19u8, - 134u8, 145u8, 157u8, 129u8, 237u8, 139u8, 133u8, 227u8, 43u8, 56u8, - 153u8, + 122u8, 7u8, 247u8, 164u8, 62u8, 254u8, 12u8, 208u8, 188u8, 49u8, 244u8, + 153u8, 59u8, 65u8, 73u8, 58u8, 88u8, 134u8, 255u8, 150u8, 157u8, 8u8, + 153u8, 41u8, 21u8, 186u8, 114u8, 71u8, 128u8, 108u8, 203u8, 20u8, ], ) } @@ -21538,9 +22300,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 217u8, 199u8, 199u8, 95u8, 222u8, 27u8, 176u8, 48u8, 0u8, 226u8, 245u8, - 221u8, 226u8, 48u8, 29u8, 233u8, 28u8, 187u8, 52u8, 17u8, 172u8, 42u8, - 88u8, 107u8, 61u8, 104u8, 65u8, 42u8, 35u8, 53u8, 80u8, 48u8, + 109u8, 140u8, 6u8, 12u8, 91u8, 4u8, 254u8, 2u8, 91u8, 243u8, 154u8, + 79u8, 83u8, 153u8, 67u8, 160u8, 206u8, 37u8, 85u8, 25u8, 10u8, 224u8, + 146u8, 227u8, 134u8, 129u8, 191u8, 47u8, 243u8, 93u8, 215u8, 222u8, ], ) } @@ -22065,10 +22827,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 228u8, 69u8, 114u8, 33u8, 253u8, 99u8, 173u8, 184u8, 219u8, 170u8, - 155u8, 9u8, 231u8, 77u8, 180u8, 97u8, 26u8, 0u8, 97u8, 107u8, 112u8, - 223u8, 207u8, 156u8, 86u8, 17u8, 115u8, 211u8, 188u8, 122u8, 51u8, - 55u8, + 174u8, 71u8, 76u8, 85u8, 10u8, 92u8, 166u8, 33u8, 124u8, 212u8, 89u8, + 40u8, 24u8, 94u8, 252u8, 139u8, 68u8, 122u8, 191u8, 247u8, 212u8, 48u8, + 173u8, 252u8, 86u8, 57u8, 178u8, 208u8, 56u8, 49u8, 64u8, 182u8, ], ) } @@ -22092,10 +22853,9 @@ pub mod api { max_weight, }, [ - 110u8, 238u8, 2u8, 11u8, 232u8, 202u8, 100u8, 39u8, 103u8, 211u8, - 204u8, 203u8, 228u8, 31u8, 206u8, 103u8, 97u8, 57u8, 217u8, 24u8, - 229u8, 237u8, 56u8, 84u8, 220u8, 240u8, 169u8, 211u8, 26u8, 98u8, 37u8, - 0u8, + 122u8, 132u8, 216u8, 231u8, 74u8, 72u8, 208u8, 47u8, 203u8, 32u8, 71u8, + 2u8, 240u8, 74u8, 236u8, 139u8, 226u8, 162u8, 182u8, 152u8, 69u8, 62u8, + 172u8, 188u8, 119u8, 227u8, 134u8, 59u8, 255u8, 164u8, 74u8, 179u8, ], ) } @@ -23000,10 +23760,9 @@ pub mod api { rate, }, [ - 154u8, 152u8, 38u8, 160u8, 110u8, 48u8, 11u8, 80u8, 92u8, 50u8, 177u8, - 170u8, 43u8, 6u8, 192u8, 234u8, 105u8, 114u8, 165u8, 178u8, 173u8, - 134u8, 92u8, 233u8, 123u8, 191u8, 176u8, 154u8, 222u8, 224u8, 32u8, - 183u8, + 163u8, 173u8, 223u8, 197u8, 42u8, 251u8, 151u8, 159u8, 252u8, 132u8, + 225u8, 224u8, 207u8, 127u8, 38u8, 0u8, 101u8, 46u8, 29u8, 65u8, 2u8, + 241u8, 3u8, 79u8, 218u8, 10u8, 159u8, 122u8, 48u8, 7u8, 225u8, 103u8, ], ) } @@ -23021,10 +23780,9 @@ pub mod api { rate, }, [ - 188u8, 71u8, 197u8, 156u8, 105u8, 63u8, 11u8, 90u8, 124u8, 227u8, - 146u8, 78u8, 93u8, 216u8, 100u8, 41u8, 128u8, 115u8, 66u8, 243u8, - 198u8, 61u8, 115u8, 30u8, 170u8, 218u8, 254u8, 203u8, 37u8, 141u8, - 67u8, 179u8, + 21u8, 51u8, 198u8, 111u8, 185u8, 155u8, 215u8, 34u8, 5u8, 135u8, 138u8, + 77u8, 76u8, 158u8, 63u8, 240u8, 117u8, 39u8, 83u8, 146u8, 70u8, 136u8, + 61u8, 159u8, 30u8, 66u8, 85u8, 41u8, 122u8, 174u8, 25u8, 49u8, ], ) } @@ -23040,10 +23798,10 @@ pub mod api { asset_kind: ::std::boxed::Box::new(asset_kind), }, [ - 229u8, 203u8, 96u8, 158u8, 162u8, 236u8, 80u8, 239u8, 106u8, 193u8, - 85u8, 234u8, 99u8, 87u8, 214u8, 214u8, 157u8, 55u8, 70u8, 91u8, 9u8, - 187u8, 105u8, 99u8, 134u8, 181u8, 56u8, 212u8, 152u8, 136u8, 100u8, - 32u8, + 205u8, 34u8, 63u8, 131u8, 204u8, 76u8, 186u8, 233u8, 160u8, 45u8, + 231u8, 159u8, 186u8, 60u8, 97u8, 218u8, 174u8, 144u8, 106u8, 58u8, + 69u8, 23u8, 244u8, 129u8, 19u8, 250u8, 16u8, 99u8, 165u8, 165u8, 101u8, + 18u8, ], ) } @@ -23157,9 +23915,10 @@ pub mod api { "ConversionRateToNative", vec![], [ - 211u8, 210u8, 178u8, 27u8, 157u8, 1u8, 68u8, 252u8, 84u8, 174u8, 141u8, - 185u8, 177u8, 39u8, 49u8, 35u8, 65u8, 254u8, 204u8, 246u8, 132u8, 59u8, - 190u8, 228u8, 135u8, 237u8, 161u8, 35u8, 21u8, 114u8, 88u8, 174u8, + 230u8, 127u8, 110u8, 126u8, 79u8, 168u8, 134u8, 97u8, 195u8, 105u8, + 16u8, 57u8, 197u8, 104u8, 87u8, 144u8, 83u8, 188u8, 85u8, 253u8, 230u8, + 194u8, 183u8, 235u8, 152u8, 222u8, 40u8, 20u8, 135u8, 98u8, 140u8, + 108u8, ], ) } @@ -23183,9 +23942,10 @@ pub mod api { _0.borrow(), )], [ - 211u8, 210u8, 178u8, 27u8, 157u8, 1u8, 68u8, 252u8, 84u8, 174u8, 141u8, - 185u8, 177u8, 39u8, 49u8, 35u8, 65u8, 254u8, 204u8, 246u8, 132u8, 59u8, - 190u8, 228u8, 135u8, 237u8, 161u8, 35u8, 21u8, 114u8, 88u8, 174u8, + 230u8, 127u8, 110u8, 126u8, 79u8, 168u8, 134u8, 97u8, 195u8, 105u8, + 16u8, 57u8, 197u8, 104u8, 87u8, 144u8, 83u8, 188u8, 85u8, 253u8, 230u8, + 194u8, 183u8, 235u8, 152u8, 222u8, 40u8, 20u8, 135u8, 98u8, 140u8, + 108u8, ], ) } @@ -26917,10 +27677,10 @@ pub mod api { "Holds", vec![], [ - 72u8, 161u8, 107u8, 123u8, 240u8, 3u8, 198u8, 75u8, 46u8, 131u8, 122u8, - 141u8, 253u8, 141u8, 232u8, 192u8, 146u8, 54u8, 174u8, 162u8, 48u8, - 165u8, 226u8, 233u8, 12u8, 227u8, 23u8, 17u8, 237u8, 179u8, 193u8, - 166u8, + 181u8, 39u8, 29u8, 45u8, 45u8, 198u8, 129u8, 210u8, 189u8, 183u8, + 121u8, 125u8, 57u8, 90u8, 95u8, 107u8, 51u8, 13u8, 22u8, 105u8, 191u8, + 61u8, 54u8, 182u8, 50u8, 200u8, 137u8, 247u8, 180u8, 158u8, 16u8, + 193u8, ], ) } @@ -26942,10 +27702,10 @@ pub mod api { _0.borrow(), )], [ - 72u8, 161u8, 107u8, 123u8, 240u8, 3u8, 198u8, 75u8, 46u8, 131u8, 122u8, - 141u8, 253u8, 141u8, 232u8, 192u8, 146u8, 54u8, 174u8, 162u8, 48u8, - 165u8, 226u8, 233u8, 12u8, 227u8, 23u8, 17u8, 237u8, 179u8, 193u8, - 166u8, + 181u8, 39u8, 29u8, 45u8, 45u8, 198u8, 129u8, 210u8, 189u8, 183u8, + 121u8, 125u8, 57u8, 90u8, 95u8, 107u8, 51u8, 13u8, 22u8, 105u8, 191u8, + 61u8, 54u8, 182u8, 50u8, 200u8, 137u8, 247u8, 180u8, 158u8, 16u8, + 193u8, ], ) } @@ -27236,17 +27996,17 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_on_demand_cores`]."] - pub struct SetOnDemandCores { - pub new: set_on_demand_cores::New, + #[doc = "See [`Pallet::set_coretime_cores`]."] + pub struct SetCoretimeCores { + pub new: set_coretime_cores::New, } - pub mod set_on_demand_cores { + pub mod set_coretime_cores { use super::runtime_types; pub type New = ::core::primitive::u32; } - impl ::subxt::blocks::StaticExtrinsic for SetOnDemandCores { + impl ::subxt::blocks::StaticExtrinsic for SetCoretimeCores { const PALLET: &'static str = "Configuration"; - const CALL: &'static str = "set_on_demand_cores"; + const CALL: &'static str = "set_coretime_cores"; } #[derive( :: subxt :: ext :: codec :: Decode, @@ -28086,6 +28846,53 @@ pub mod api { const PALLET: &'static str = "Configuration"; const CALL: &'static str = "set_minimum_backing_votes"; } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::set_node_feature`]."] + pub struct SetNodeFeature { + pub index: set_node_feature::Index, + pub value: set_node_feature::Value, + } + pub mod set_node_feature { + use super::runtime_types; + pub type Index = ::core::primitive::u8; + pub type Value = ::core::primitive::bool; + } + impl ::subxt::blocks::StaticExtrinsic for SetNodeFeature { + const PALLET: &'static str = "Configuration"; + const CALL: &'static str = "set_node_feature"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::set_approval_voting_params`]."] + pub struct SetApprovalVotingParams { + pub new: set_approval_voting_params::New, + } + pub mod set_approval_voting_params { + use super::runtime_types; + pub type New = + runtime_types::polkadot_primitives::vstaging::ApprovalVotingParams; + } + impl ::subxt::blocks::StaticExtrinsic for SetApprovalVotingParams { + const PALLET: &'static str = "Configuration"; + const CALL: &'static str = "set_approval_voting_params"; + } } pub struct TransactionApi; impl TransactionApi { @@ -28189,20 +28996,19 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_cores`]."] - pub fn set_on_demand_cores( + #[doc = "See [`Pallet::set_coretime_cores`]."] + pub fn set_coretime_cores( &self, - new: types::set_on_demand_cores::New, - ) -> ::subxt::tx::Payload { + new: types::set_coretime_cores::New, + ) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "Configuration", - "set_on_demand_cores", - types::SetOnDemandCores { new }, + "set_coretime_cores", + types::SetCoretimeCores { new }, [ - 157u8, 26u8, 82u8, 103u8, 83u8, 214u8, 92u8, 176u8, 93u8, 70u8, 32u8, - 217u8, 139u8, 30u8, 145u8, 237u8, 34u8, 121u8, 190u8, 17u8, 128u8, - 243u8, 241u8, 181u8, 85u8, 141u8, 107u8, 70u8, 121u8, 119u8, 20u8, - 104u8, + 179u8, 131u8, 211u8, 152u8, 167u8, 6u8, 108u8, 94u8, 179u8, 97u8, 87u8, + 227u8, 57u8, 120u8, 133u8, 130u8, 59u8, 243u8, 224u8, 2u8, 11u8, 86u8, + 251u8, 77u8, 159u8, 177u8, 145u8, 34u8, 117u8, 93u8, 28u8, 52u8, ], ) } @@ -28734,9 +29540,9 @@ pub mod api { "set_executor_params", types::SetExecutorParams { new }, [ - 219u8, 27u8, 25u8, 162u8, 61u8, 189u8, 61u8, 32u8, 101u8, 139u8, 89u8, - 51u8, 191u8, 223u8, 94u8, 145u8, 109u8, 247u8, 22u8, 64u8, 178u8, 97u8, - 239u8, 0u8, 125u8, 20u8, 62u8, 210u8, 110u8, 79u8, 225u8, 43u8, + 79u8, 167u8, 242u8, 14u8, 22u8, 177u8, 240u8, 134u8, 154u8, 77u8, + 233u8, 188u8, 110u8, 223u8, 25u8, 52u8, 58u8, 241u8, 226u8, 255u8, 2u8, + 26u8, 8u8, 241u8, 125u8, 33u8, 63u8, 204u8, 93u8, 31u8, 229u8, 0u8, ], ) } @@ -28840,6 +29646,40 @@ pub mod api { ], ) } + #[doc = "See [`Pallet::set_node_feature`]."] + pub fn set_node_feature( + &self, + index: types::set_node_feature::Index, + value: types::set_node_feature::Value, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Configuration", + "set_node_feature", + types::SetNodeFeature { index, value }, + [ + 255u8, 19u8, 208u8, 76u8, 122u8, 6u8, 42u8, 182u8, 118u8, 151u8, 245u8, + 80u8, 162u8, 243u8, 45u8, 57u8, 122u8, 148u8, 98u8, 170u8, 157u8, 40u8, + 92u8, 234u8, 12u8, 141u8, 54u8, 80u8, 97u8, 249u8, 115u8, 27u8, + ], + ) + } + #[doc = "See [`Pallet::set_approval_voting_params`]."] + pub fn set_approval_voting_params( + &self, + new: types::set_approval_voting_params::New, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Configuration", + "set_approval_voting_params", + types::SetApprovalVotingParams { new }, + [ + 248u8, 81u8, 74u8, 103u8, 28u8, 108u8, 190u8, 177u8, 201u8, 252u8, + 87u8, 236u8, 20u8, 189u8, 192u8, 173u8, 40u8, 160u8, 170u8, 187u8, + 42u8, 108u8, 184u8, 131u8, 120u8, 237u8, 229u8, 240u8, 128u8, 49u8, + 163u8, 11u8, + ], + ) + } } } pub mod storage { @@ -28876,10 +29716,9 @@ pub mod api { "ActiveConfig", vec![], [ - 126u8, 223u8, 107u8, 199u8, 21u8, 114u8, 19u8, 172u8, 27u8, 108u8, - 189u8, 165u8, 33u8, 220u8, 57u8, 81u8, 137u8, 242u8, 204u8, 148u8, - 61u8, 161u8, 156u8, 36u8, 20u8, 172u8, 117u8, 30u8, 152u8, 210u8, - 207u8, 161u8, + 241u8, 129u8, 175u8, 69u8, 121u8, 171u8, 135u8, 98u8, 205u8, 87u8, + 244u8, 201u8, 27u8, 143u8, 112u8, 77u8, 83u8, 107u8, 22u8, 120u8, 58u8, + 74u8, 48u8, 72u8, 236u8, 132u8, 248u8, 60u8, 131u8, 107u8, 7u8, 98u8, ], ) } @@ -28904,10 +29743,9 @@ pub mod api { "PendingConfigs", vec![], [ - 105u8, 89u8, 53u8, 156u8, 60u8, 53u8, 196u8, 187u8, 5u8, 122u8, 186u8, - 196u8, 162u8, 133u8, 254u8, 178u8, 130u8, 143u8, 90u8, 23u8, 234u8, - 105u8, 9u8, 121u8, 142u8, 123u8, 136u8, 166u8, 95u8, 215u8, 176u8, - 46u8, + 29u8, 220u8, 218u8, 233u8, 222u8, 28u8, 203u8, 86u8, 0u8, 34u8, 78u8, + 157u8, 206u8, 57u8, 211u8, 206u8, 34u8, 22u8, 126u8, 92u8, 13u8, 71u8, + 156u8, 156u8, 121u8, 2u8, 30u8, 72u8, 37u8, 12u8, 88u8, 210u8, ], ) } @@ -29417,9 +30255,10 @@ pub mod api { "enter", types::Enter { data }, [ - 145u8, 120u8, 158u8, 39u8, 139u8, 223u8, 236u8, 209u8, 253u8, 108u8, - 188u8, 21u8, 23u8, 61u8, 25u8, 171u8, 30u8, 203u8, 161u8, 117u8, 90u8, - 55u8, 50u8, 107u8, 26u8, 52u8, 26u8, 158u8, 56u8, 218u8, 186u8, 142u8, + 43u8, 145u8, 39u8, 208u8, 205u8, 120u8, 57u8, 196u8, 192u8, 128u8, + 144u8, 83u8, 121u8, 232u8, 191u8, 82u8, 200u8, 129u8, 139u8, 27u8, + 126u8, 177u8, 240u8, 158u8, 232u8, 180u8, 26u8, 180u8, 116u8, 148u8, + 168u8, 41u8, ], ) } @@ -29484,10 +30323,10 @@ pub mod api { "OnChainVotes", vec![], [ - 200u8, 210u8, 42u8, 153u8, 85u8, 71u8, 171u8, 108u8, 148u8, 212u8, - 108u8, 61u8, 178u8, 77u8, 129u8, 90u8, 120u8, 218u8, 228u8, 152u8, - 120u8, 226u8, 29u8, 82u8, 239u8, 146u8, 41u8, 164u8, 193u8, 207u8, - 246u8, 115u8, + 65u8, 20u8, 36u8, 37u8, 239u8, 150u8, 32u8, 78u8, 226u8, 88u8, 80u8, + 240u8, 12u8, 156u8, 176u8, 75u8, 231u8, 204u8, 37u8, 24u8, 204u8, + 228u8, 75u8, 235u8, 43u8, 163u8, 174u8, 152u8, 166u8, 17u8, 232u8, + 33u8, ], ) } @@ -29521,7 +30360,7 @@ pub mod api { } pub mod claim_queue { use super::runtime_types; - pub type ClaimQueue = :: subxt :: utils :: KeyedVec < runtime_types :: polkadot_primitives :: v6 :: CoreIndex , :: std :: vec :: Vec < :: core :: option :: Option < runtime_types :: polkadot_runtime_parachains :: scheduler :: pallet :: ParasEntry < :: core :: primitive :: u32 > > > > ; + pub type ClaimQueue = :: subxt :: utils :: KeyedVec < runtime_types :: polkadot_primitives :: v6 :: CoreIndex , :: std :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: scheduler :: pallet :: ParasEntry < :: core :: primitive :: u32 > > > ; } } pub struct StorageApi; @@ -29575,9 +30414,10 @@ pub mod api { "AvailabilityCores", vec![], [ - 134u8, 59u8, 206u8, 4u8, 69u8, 72u8, 73u8, 25u8, 139u8, 152u8, 202u8, - 43u8, 224u8, 77u8, 64u8, 57u8, 218u8, 245u8, 254u8, 222u8, 227u8, 95u8, - 119u8, 134u8, 218u8, 47u8, 154u8, 233u8, 229u8, 172u8, 100u8, 86u8, + 250u8, 177u8, 44u8, 237u8, 5u8, 116u8, 135u8, 99u8, 136u8, 209u8, + 181u8, 145u8, 254u8, 57u8, 42u8, 92u8, 236u8, 67u8, 128u8, 171u8, + 200u8, 88u8, 40u8, 31u8, 163u8, 128u8, 15u8, 96u8, 181u8, 224u8, 162u8, + 188u8, ], ) } @@ -29627,9 +30467,10 @@ pub mod api { "ClaimQueue", vec![], [ - 132u8, 78u8, 109u8, 225u8, 170u8, 78u8, 17u8, 53u8, 56u8, 218u8, 14u8, - 17u8, 230u8, 247u8, 11u8, 223u8, 18u8, 98u8, 92u8, 164u8, 223u8, 143u8, - 241u8, 64u8, 185u8, 108u8, 228u8, 137u8, 122u8, 100u8, 29u8, 239u8, + 192u8, 65u8, 227u8, 114u8, 125u8, 169u8, 134u8, 70u8, 201u8, 99u8, + 246u8, 23u8, 0u8, 143u8, 163u8, 87u8, 216u8, 1u8, 184u8, 124u8, 23u8, + 180u8, 132u8, 143u8, 202u8, 81u8, 144u8, 242u8, 15u8, 141u8, 124u8, + 126u8, ], ) } @@ -33094,10 +33935,9 @@ pub mod api { "SessionExecutorParams", vec![], [ - 102u8, 51u8, 28u8, 199u8, 238u8, 229u8, 99u8, 38u8, 116u8, 154u8, - 250u8, 136u8, 240u8, 122u8, 82u8, 13u8, 139u8, 160u8, 149u8, 218u8, - 162u8, 130u8, 109u8, 251u8, 10u8, 109u8, 200u8, 158u8, 32u8, 157u8, - 84u8, 234u8, + 38u8, 80u8, 118u8, 112u8, 189u8, 55u8, 95u8, 184u8, 19u8, 8u8, 114u8, + 6u8, 173u8, 80u8, 254u8, 98u8, 107u8, 202u8, 215u8, 107u8, 149u8, + 157u8, 145u8, 8u8, 249u8, 255u8, 83u8, 199u8, 47u8, 179u8, 208u8, 83u8, ], ) } @@ -33119,10 +33959,9 @@ pub mod api { _0.borrow(), )], [ - 102u8, 51u8, 28u8, 199u8, 238u8, 229u8, 99u8, 38u8, 116u8, 154u8, - 250u8, 136u8, 240u8, 122u8, 82u8, 13u8, 139u8, 160u8, 149u8, 218u8, - 162u8, 130u8, 109u8, 251u8, 10u8, 109u8, 200u8, 158u8, 32u8, 157u8, - 84u8, 234u8, + 38u8, 80u8, 118u8, 112u8, 189u8, 55u8, 95u8, 184u8, 19u8, 8u8, 114u8, + 6u8, 173u8, 80u8, 254u8, 98u8, 107u8, 202u8, 215u8, 107u8, 149u8, + 157u8, 145u8, 8u8, 249u8, 255u8, 83u8, 199u8, 47u8, 179u8, 208u8, 83u8, ], ) } @@ -33914,7 +34753,7 @@ pub mod api { } pub mod processing_failed { use super::runtime_types; - pub type Id = [::core::primitive::u8; 32usize]; + pub type Id = ::subxt::utils::H256; pub type Origin = runtime_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin; pub type Error = @@ -33943,7 +34782,7 @@ pub mod api { } pub mod processed { use super::runtime_types; - pub type Id = [::core::primitive::u8; 32usize]; + pub type Id = ::subxt::utils::H256; pub type Origin = runtime_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin; pub type WeightUsed = runtime_types::sp_weights::weight_v2::Weight; @@ -34235,18 +35074,6 @@ pub mod api { } } } - pub mod para_assignment_provider { - use super::root_mod; - use super::runtime_types; - pub mod storage { - use super::runtime_types; - pub mod types { - use super::runtime_types; - } - pub struct StorageApi; - impl StorageApi {} - } - } pub mod on_demand_assignment_provider { use super::root_mod; use super::runtime_types; @@ -34418,9 +35245,7 @@ pub mod api { } pub mod on_demand_queue { use super::runtime_types; - pub type OnDemandQueue = ::std::vec::Vec< - runtime_types::polkadot_runtime_parachains::scheduler::common::Assignment, - >; + pub type OnDemandQueue = :: std :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: EnqueuedOrder > ; } pub mod para_id_affinity { use super::runtime_types; @@ -34553,6 +35378,167 @@ pub mod api { use super::root_mod; use super::runtime_types; } + pub mod coretime_assignment_provider { + use super::root_mod; + use super::runtime_types; + #[doc = "The `Error` enum of this pallet."] + pub type Error = + runtime_types::polkadot_runtime_parachains::assigner_coretime::pallet::Error; + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod core_schedules { + use super::runtime_types; + pub type CoreSchedules = + runtime_types::polkadot_runtime_parachains::assigner_coretime::Schedule< + ::core::primitive::u32, + >; + pub type Param0 = ::core::primitive::u32; + pub type Param1 = runtime_types::polkadot_primitives::v6::CoreIndex; + } + pub mod core_descriptors { + use super::runtime_types; + pub type CoreDescriptors = runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: CoreDescriptor < :: core :: primitive :: u32 > ; + pub type Param0 = runtime_types::polkadot_primitives::v6::CoreIndex; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " Scheduled assignment sets."] + #[doc = ""] + #[doc = " Assignments as of the given block number. They will go into state once the block number is"] + #[doc = " reached (and replace whatever was in there before)."] + pub fn core_schedules_iter( + &self, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::core_schedules::CoreSchedules, + (), + (), + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::Address::new_static( + "CoretimeAssignmentProvider", + "CoreSchedules", + vec![], + [ + 34u8, 85u8, 91u8, 158u8, 28u8, 200u8, 76u8, 188u8, 253u8, 91u8, 153u8, + 42u8, 42u8, 227u8, 119u8, 181u8, 247u8, 44u8, 29u8, 24u8, 128u8, 49u8, + 57u8, 248u8, 24u8, 145u8, 34u8, 74u8, 21u8, 225u8, 159u8, 232u8, + ], + ) + } + #[doc = " Scheduled assignment sets."] + #[doc = ""] + #[doc = " Assignments as of the given block number. They will go into state once the block number is"] + #[doc = " reached (and replace whatever was in there before)."] + pub fn core_schedules_iter1( + &self, + _0: impl ::std::borrow::Borrow, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::core_schedules::CoreSchedules, + (), + (), + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::Address::new_static( + "CoretimeAssignmentProvider", + "CoreSchedules", + vec![::subxt::storage::address::make_static_storage_map_key( + _0.borrow(), + )], + [ + 34u8, 85u8, 91u8, 158u8, 28u8, 200u8, 76u8, 188u8, 253u8, 91u8, 153u8, + 42u8, 42u8, 227u8, 119u8, 181u8, 247u8, 44u8, 29u8, 24u8, 128u8, 49u8, + 57u8, 248u8, 24u8, 145u8, 34u8, 74u8, 21u8, 225u8, 159u8, 232u8, + ], + ) + } + #[doc = " Scheduled assignment sets."] + #[doc = ""] + #[doc = " Assignments as of the given block number. They will go into state once the block number is"] + #[doc = " reached (and replace whatever was in there before)."] + pub fn core_schedules( + &self, + _0: impl ::std::borrow::Borrow, + _1: impl ::std::borrow::Borrow, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::core_schedules::CoreSchedules, + ::subxt::storage::address::Yes, + (), + (), + > { + ::subxt::storage::address::Address::new_static( + "CoretimeAssignmentProvider", + "CoreSchedules", + vec![ + ::subxt::storage::address::make_static_storage_map_key(_0.borrow()), + ::subxt::storage::address::make_static_storage_map_key(_1.borrow()), + ], + [ + 34u8, 85u8, 91u8, 158u8, 28u8, 200u8, 76u8, 188u8, 253u8, 91u8, 153u8, + 42u8, 42u8, 227u8, 119u8, 181u8, 247u8, 44u8, 29u8, 24u8, 128u8, 49u8, + 57u8, 248u8, 24u8, 145u8, 34u8, 74u8, 21u8, 225u8, 159u8, 232u8, + ], + ) + } + #[doc = " Assignments which are currently active."] + #[doc = ""] + #[doc = " They will be picked from `PendingAssignments` once we reach the scheduled block number in"] + #[doc = " `PendingAssignments`."] + pub fn core_descriptors_iter( + &self, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::core_descriptors::CoreDescriptors, + (), + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::Address::new_static( + "CoretimeAssignmentProvider", + "CoreDescriptors", + vec![], + [ + 1u8, 90u8, 208u8, 119u8, 150u8, 241u8, 133u8, 74u8, 22u8, 166u8, 13u8, + 7u8, 73u8, 136u8, 105u8, 61u8, 251u8, 245u8, 164u8, 7u8, 45u8, 68u8, + 190u8, 224u8, 34u8, 22u8, 30u8, 250u8, 171u8, 152u8, 238u8, 120u8, + ], + ) + } + #[doc = " Assignments which are currently active."] + #[doc = ""] + #[doc = " They will be picked from `PendingAssignments` once we reach the scheduled block number in"] + #[doc = " `PendingAssignments`."] + pub fn core_descriptors( + &self, + _0: impl ::std::borrow::Borrow, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::core_descriptors::CoreDescriptors, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + (), + > { + ::subxt::storage::address::Address::new_static( + "CoretimeAssignmentProvider", + "CoreDescriptors", + vec![::subxt::storage::address::make_static_storage_map_key( + _0.borrow(), + )], + [ + 1u8, 90u8, 208u8, 119u8, 150u8, 241u8, 133u8, 74u8, 22u8, 166u8, 13u8, + 7u8, 73u8, 136u8, 105u8, 61u8, 251u8, 245u8, 164u8, 7u8, 45u8, 68u8, + 190u8, 224u8, 34u8, 22u8, 30u8, 250u8, 171u8, 152u8, 238u8, 120u8, + ], + ) + } + } + } + } pub mod registrar { use super::root_mod; use super::runtime_types; @@ -37065,6 +38051,187 @@ pub mod api { } } } + pub mod coretime { + use super::root_mod; + use super::runtime_types; + #[doc = "The `Error` enum of this pallet."] + pub type Error = runtime_types::polkadot_runtime_parachains::coretime::pallet::Error; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::polkadot_runtime_parachains::coretime::pallet::Call; + pub mod calls { + use super::root_mod; + use super::runtime_types; + type DispatchError = runtime_types::sp_runtime::DispatchError; + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::request_core_count`]."] + pub struct RequestCoreCount { + pub count: request_core_count::Count, + } + pub mod request_core_count { + use super::runtime_types; + pub type Count = ::core::primitive::u16; + } + impl ::subxt::blocks::StaticExtrinsic for RequestCoreCount { + const PALLET: &'static str = "Coretime"; + const CALL: &'static str = "request_core_count"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::assign_core`]."] + pub struct AssignCore { + pub core: assign_core::Core, + pub begin: assign_core::Begin, + pub assignment: assign_core::Assignment, + pub end_hint: assign_core::EndHint, + } + pub mod assign_core { + use super::runtime_types; + pub type Core = ::core::primitive::u16; + pub type Begin = ::core::primitive::u32; + pub type Assignment = ::std::vec::Vec<( + runtime_types::pallet_broker::coretime_interface::CoreAssignment, + runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600, + )>; + pub type EndHint = ::core::option::Option<::core::primitive::u32>; + } + impl ::subxt::blocks::StaticExtrinsic for AssignCore { + const PALLET: &'static str = "Coretime"; + const CALL: &'static str = "assign_core"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "See [`Pallet::request_core_count`]."] + pub fn request_core_count( + &self, + count: types::request_core_count::Count, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Coretime", + "request_core_count", + types::RequestCoreCount { count }, + [ + 8u8, 225u8, 74u8, 162u8, 188u8, 3u8, 191u8, 45u8, 167u8, 21u8, 227u8, + 200u8, 65u8, 221u8, 49u8, 212u8, 12u8, 229u8, 160u8, 178u8, 136u8, + 13u8, 131u8, 42u8, 220u8, 3u8, 151u8, 241u8, 210u8, 158u8, 218u8, + 217u8, + ], + ) + } + #[doc = "See [`Pallet::assign_core`]."] + pub fn assign_core( + &self, + core: types::assign_core::Core, + begin: types::assign_core::Begin, + assignment: types::assign_core::Assignment, + end_hint: types::assign_core::EndHint, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Coretime", + "assign_core", + types::AssignCore { + core, + begin, + assignment, + end_hint, + }, + [ + 113u8, 133u8, 153u8, 202u8, 209u8, 53u8, 168u8, 214u8, 153u8, 232u8, + 170u8, 35u8, 63u8, 87u8, 5u8, 108u8, 188u8, 55u8, 111u8, 55u8, 22u8, + 1u8, 190u8, 216u8, 233u8, 185u8, 135u8, 172u8, 15u8, 254u8, 91u8, 92u8, + ], + ) + } + } + } + #[doc = "The `Event` enum of this pallet"] + pub type Event = runtime_types::polkadot_runtime_parachains::coretime::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "The broker chain has asked for revenue information for a specific block."] + pub struct RevenueInfoRequested { + pub when: revenue_info_requested::When, + } + pub mod revenue_info_requested { + use super::runtime_types; + pub type When = ::core::primitive::u32; + } + impl ::subxt::events::StaticEvent for RevenueInfoRequested { + const PALLET: &'static str = "Coretime"; + const EVENT: &'static str = "RevenueInfoRequested"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "A core has received a new assignment from the broker chain."] + pub struct CoreAssigned { + pub core: core_assigned::Core, + } + pub mod core_assigned { + use super::runtime_types; + pub type Core = runtime_types::polkadot_primitives::v6::CoreIndex; + } + impl ::subxt::events::StaticEvent for CoreAssigned { + const PALLET: &'static str = "Coretime"; + const EVENT: &'static str = "CoreAssigned"; + } + } + pub mod constants { + use super::runtime_types; + pub struct ConstantsApi; + impl ConstantsApi { + #[doc = " The ParaId of the broker system parachain."] + pub fn broker_id(&self) -> ::subxt::constants::Address<::core::primitive::u32> { + ::subxt::constants::Address::new_static( + "Coretime", + "BrokerId", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } + } + } + } pub mod xcm_pallet { use super::root_mod; use super::runtime_types; @@ -37095,7 +38262,7 @@ pub mod api { } pub mod send { use super::runtime_types; - pub type Dest = runtime_types::xcm::VersionedMultiLocation; + pub type Dest = runtime_types::xcm::VersionedLocation; pub type Message = runtime_types::xcm::VersionedXcm; } impl ::subxt::blocks::StaticExtrinsic for Send { @@ -37121,9 +38288,9 @@ pub mod api { } pub mod teleport_assets { use super::runtime_types; - pub type Dest = runtime_types::xcm::VersionedMultiLocation; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; pub type FeeAssetItem = ::core::primitive::u32; } impl ::subxt::blocks::StaticExtrinsic for TeleportAssets { @@ -37149,9 +38316,9 @@ pub mod api { } pub mod reserve_transfer_assets { use super::runtime_types; - pub type Dest = runtime_types::xcm::VersionedMultiLocation; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; pub type FeeAssetItem = ::core::primitive::u32; } impl ::subxt::blocks::StaticExtrinsic for ReserveTransferAssets { @@ -37199,8 +38366,7 @@ pub mod api { } pub mod force_xcm_version { use super::runtime_types; - pub type Location = - runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Location = runtime_types::staging_xcm::v4::location::Location; pub type Version = ::core::primitive::u32; } impl ::subxt::blocks::StaticExtrinsic for ForceXcmVersion { @@ -37245,7 +38411,7 @@ pub mod api { } pub mod force_subscribe_version_notify { use super::runtime_types; - pub type Location = runtime_types::xcm::VersionedMultiLocation; + pub type Location = runtime_types::xcm::VersionedLocation; } impl ::subxt::blocks::StaticExtrinsic for ForceSubscribeVersionNotify { const PALLET: &'static str = "XcmPallet"; @@ -37267,7 +38433,7 @@ pub mod api { } pub mod force_unsubscribe_version_notify { use super::runtime_types; - pub type Location = runtime_types::xcm::VersionedMultiLocation; + pub type Location = runtime_types::xcm::VersionedLocation; } impl ::subxt::blocks::StaticExtrinsic for ForceUnsubscribeVersionNotify { const PALLET: &'static str = "XcmPallet"; @@ -37294,9 +38460,9 @@ pub mod api { } pub mod limited_reserve_transfer_assets { use super::runtime_types; - pub type Dest = runtime_types::xcm::VersionedMultiLocation; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; pub type FeeAssetItem = ::core::primitive::u32; pub type WeightLimit = runtime_types::xcm::v3::WeightLimit; } @@ -37324,9 +38490,9 @@ pub mod api { } pub mod limited_teleport_assets { use super::runtime_types; - pub type Dest = runtime_types::xcm::VersionedMultiLocation; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; pub type FeeAssetItem = ::core::primitive::u32; pub type WeightLimit = runtime_types::xcm::v3::WeightLimit; } @@ -37356,6 +38522,36 @@ pub mod api { const PALLET: &'static str = "XcmPallet"; const CALL: &'static str = "force_suspension"; } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::transfer_assets`]."] + pub struct TransferAssets { + pub dest: ::std::boxed::Box, + pub beneficiary: ::std::boxed::Box, + pub assets: ::std::boxed::Box, + pub fee_asset_item: transfer_assets::FeeAssetItem, + pub weight_limit: transfer_assets::WeightLimit, + } + pub mod transfer_assets { + use super::runtime_types; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; + pub type FeeAssetItem = ::core::primitive::u32; + pub type WeightLimit = runtime_types::xcm::v3::WeightLimit; + } + impl ::subxt::blocks::StaticExtrinsic for TransferAssets { + const PALLET: &'static str = "XcmPallet"; + const CALL: &'static str = "transfer_assets"; + } } pub struct TransactionApi; impl TransactionApi { @@ -37373,9 +38569,10 @@ pub mod api { message: ::std::boxed::Box::new(message), }, [ - 147u8, 255u8, 86u8, 82u8, 17u8, 159u8, 225u8, 145u8, 220u8, 89u8, 71u8, - 23u8, 193u8, 249u8, 12u8, 70u8, 19u8, 140u8, 232u8, 97u8, 12u8, 220u8, - 113u8, 65u8, 4u8, 255u8, 138u8, 10u8, 231u8, 122u8, 67u8, 105u8, + 47u8, 63u8, 128u8, 176u8, 10u8, 137u8, 124u8, 238u8, 155u8, 37u8, + 193u8, 160u8, 83u8, 240u8, 21u8, 179u8, 169u8, 131u8, 27u8, 104u8, + 195u8, 208u8, 123u8, 14u8, 221u8, 12u8, 45u8, 81u8, 148u8, 76u8, 17u8, + 100u8, ], ) } @@ -37397,9 +38594,9 @@ pub mod api { fee_asset_item, }, [ - 56u8, 144u8, 237u8, 60u8, 157u8, 5u8, 7u8, 129u8, 41u8, 149u8, 160u8, - 100u8, 233u8, 102u8, 181u8, 140u8, 115u8, 213u8, 29u8, 132u8, 16u8, - 30u8, 23u8, 82u8, 140u8, 134u8, 37u8, 87u8, 3u8, 99u8, 172u8, 42u8, + 124u8, 191u8, 118u8, 61u8, 45u8, 225u8, 97u8, 83u8, 198u8, 20u8, 139u8, + 117u8, 241u8, 1u8, 19u8, 54u8, 79u8, 181u8, 131u8, 112u8, 11u8, 118u8, + 147u8, 12u8, 89u8, 156u8, 123u8, 123u8, 195u8, 45u8, 50u8, 107u8, ], ) } @@ -37421,9 +38618,10 @@ pub mod api { fee_asset_item, }, [ - 21u8, 167u8, 44u8, 22u8, 210u8, 73u8, 148u8, 7u8, 91u8, 108u8, 148u8, - 205u8, 170u8, 243u8, 142u8, 224u8, 205u8, 119u8, 252u8, 22u8, 203u8, - 32u8, 73u8, 200u8, 178u8, 14u8, 167u8, 147u8, 166u8, 55u8, 14u8, 231u8, + 97u8, 102u8, 230u8, 44u8, 135u8, 197u8, 43u8, 53u8, 182u8, 125u8, + 140u8, 141u8, 229u8, 73u8, 29u8, 55u8, 159u8, 104u8, 197u8, 20u8, + 124u8, 234u8, 250u8, 94u8, 133u8, 253u8, 189u8, 6u8, 216u8, 162u8, + 218u8, 89u8, ], ) } @@ -37441,9 +38639,10 @@ pub mod api { max_weight, }, [ - 15u8, 97u8, 86u8, 111u8, 105u8, 116u8, 109u8, 206u8, 70u8, 8u8, 57u8, - 232u8, 133u8, 132u8, 30u8, 219u8, 34u8, 69u8, 0u8, 213u8, 98u8, 241u8, - 186u8, 93u8, 216u8, 39u8, 73u8, 24u8, 193u8, 87u8, 92u8, 31u8, + 71u8, 109u8, 92u8, 110u8, 198u8, 150u8, 140u8, 125u8, 248u8, 236u8, + 177u8, 156u8, 198u8, 223u8, 51u8, 15u8, 52u8, 240u8, 20u8, 200u8, 68u8, + 145u8, 36u8, 156u8, 159u8, 153u8, 125u8, 48u8, 181u8, 61u8, 53u8, + 208u8, ], ) } @@ -37461,9 +38660,9 @@ pub mod api { version, }, [ - 110u8, 11u8, 78u8, 255u8, 66u8, 2u8, 55u8, 108u8, 92u8, 151u8, 231u8, - 175u8, 75u8, 156u8, 34u8, 191u8, 0u8, 56u8, 104u8, 197u8, 70u8, 204u8, - 73u8, 234u8, 173u8, 251u8, 88u8, 226u8, 3u8, 136u8, 228u8, 136u8, + 69u8, 151u8, 198u8, 154u8, 69u8, 181u8, 41u8, 111u8, 145u8, 230u8, + 103u8, 42u8, 237u8, 91u8, 235u8, 6u8, 156u8, 65u8, 187u8, 48u8, 171u8, + 200u8, 49u8, 4u8, 9u8, 210u8, 229u8, 152u8, 187u8, 88u8, 80u8, 246u8, ], ) } @@ -37496,9 +38695,9 @@ pub mod api { location: ::std::boxed::Box::new(location), }, [ - 112u8, 254u8, 138u8, 12u8, 203u8, 176u8, 251u8, 167u8, 223u8, 0u8, - 71u8, 148u8, 19u8, 179u8, 47u8, 96u8, 188u8, 189u8, 14u8, 172u8, 1u8, - 1u8, 192u8, 107u8, 137u8, 158u8, 22u8, 9u8, 138u8, 241u8, 32u8, 47u8, + 203u8, 171u8, 70u8, 130u8, 46u8, 63u8, 76u8, 50u8, 105u8, 23u8, 249u8, + 190u8, 115u8, 74u8, 70u8, 125u8, 132u8, 112u8, 138u8, 60u8, 33u8, 35u8, + 45u8, 29u8, 95u8, 103u8, 187u8, 182u8, 188u8, 196u8, 248u8, 152u8, ], ) } @@ -37514,10 +38713,9 @@ pub mod api { location: ::std::boxed::Box::new(location), }, [ - 205u8, 143u8, 230u8, 143u8, 166u8, 184u8, 53u8, 252u8, 118u8, 184u8, - 209u8, 227u8, 225u8, 184u8, 254u8, 244u8, 101u8, 56u8, 27u8, 128u8, - 40u8, 159u8, 178u8, 62u8, 63u8, 164u8, 59u8, 236u8, 1u8, 168u8, 202u8, - 42u8, + 6u8, 113u8, 168u8, 215u8, 233u8, 202u8, 249u8, 134u8, 131u8, 8u8, + 142u8, 203u8, 142u8, 95u8, 216u8, 70u8, 38u8, 99u8, 166u8, 97u8, 218u8, + 132u8, 247u8, 14u8, 42u8, 99u8, 4u8, 115u8, 200u8, 180u8, 213u8, 50u8, ], ) } @@ -37541,10 +38739,10 @@ pub mod api { weight_limit, }, [ - 10u8, 139u8, 165u8, 239u8, 92u8, 178u8, 169u8, 62u8, 166u8, 236u8, - 50u8, 12u8, 196u8, 3u8, 233u8, 209u8, 3u8, 159u8, 184u8, 234u8, 171u8, - 46u8, 145u8, 134u8, 241u8, 155u8, 221u8, 173u8, 166u8, 94u8, 147u8, - 88u8, + 198u8, 66u8, 204u8, 162u8, 222u8, 246u8, 141u8, 165u8, 241u8, 62u8, + 43u8, 236u8, 56u8, 200u8, 54u8, 47u8, 174u8, 83u8, 167u8, 220u8, 174u8, + 111u8, 123u8, 202u8, 248u8, 232u8, 166u8, 80u8, 152u8, 223u8, 86u8, + 141u8, ], ) } @@ -37568,10 +38766,9 @@ pub mod api { weight_limit, }, [ - 156u8, 205u8, 105u8, 18u8, 120u8, 130u8, 144u8, 67u8, 152u8, 188u8, - 109u8, 121u8, 4u8, 240u8, 123u8, 112u8, 72u8, 153u8, 2u8, 111u8, 183u8, - 170u8, 199u8, 82u8, 33u8, 117u8, 43u8, 133u8, 208u8, 44u8, 118u8, - 107u8, + 70u8, 61u8, 32u8, 43u8, 101u8, 104u8, 251u8, 60u8, 212u8, 124u8, 113u8, + 243u8, 241u8, 183u8, 5u8, 231u8, 209u8, 231u8, 136u8, 3u8, 145u8, + 242u8, 179u8, 171u8, 185u8, 185u8, 7u8, 34u8, 5u8, 203u8, 21u8, 210u8, ], ) } @@ -37591,6 +38788,33 @@ pub mod api { ], ) } + #[doc = "See [`Pallet::transfer_assets`]."] + pub fn transfer_assets( + &self, + dest: types::transfer_assets::Dest, + beneficiary: types::transfer_assets::Beneficiary, + assets: types::transfer_assets::Assets, + fee_asset_item: types::transfer_assets::FeeAssetItem, + weight_limit: types::transfer_assets::WeightLimit, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "XcmPallet", + "transfer_assets", + types::TransferAssets { + dest: ::std::boxed::Box::new(dest), + beneficiary: ::std::boxed::Box::new(beneficiary), + assets: ::std::boxed::Box::new(assets), + fee_asset_item, + weight_limit, + }, + [ + 44u8, 155u8, 182u8, 37u8, 123u8, 148u8, 150u8, 191u8, 117u8, 32u8, + 16u8, 238u8, 121u8, 188u8, 217u8, 110u8, 10u8, 236u8, 174u8, 91u8, + 100u8, 201u8, 109u8, 109u8, 60u8, 177u8, 233u8, 66u8, 181u8, 191u8, + 105u8, 37u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -37613,7 +38837,7 @@ pub mod api { } pub mod attempted { use super::runtime_types; - pub type Outcome = runtime_types::xcm::v3::traits::Outcome; + pub type Outcome = runtime_types::staging_xcm::v4::traits::Outcome; } impl ::subxt::events::StaticEvent for Attempted { const PALLET: &'static str = "XcmPallet"; @@ -37638,9 +38862,9 @@ pub mod api { } pub mod sent { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Destination = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Message = runtime_types::xcm::v3::Xcm; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Destination = runtime_types::staging_xcm::v4::location::Location; + pub type Message = runtime_types::staging_xcm::v4::Xcm; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::events::StaticEvent for Sent { @@ -37666,7 +38890,7 @@ pub mod api { } pub mod unexpected_response { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; } impl ::subxt::events::StaticEvent for UnexpectedResponse { @@ -37692,7 +38916,7 @@ pub mod api { pub mod response_ready { use super::runtime_types; pub type QueryId = ::core::primitive::u64; - pub type Response = runtime_types::xcm::v3::Response; + pub type Response = runtime_types::staging_xcm::v4::Response; } impl ::subxt::events::StaticEvent for ResponseReady { const PALLET: &'static str = "XcmPallet"; @@ -37832,11 +39056,10 @@ pub mod api { } pub mod invalid_responder { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; - pub type ExpectedLocation = ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, - >; + pub type ExpectedLocation = + ::core::option::Option; } impl ::subxt::events::StaticEvent for InvalidResponder { const PALLET: &'static str = "XcmPallet"; @@ -37865,7 +39088,7 @@ pub mod api { } pub mod invalid_responder_version { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; } impl ::subxt::events::StaticEvent for InvalidResponderVersion { @@ -37913,8 +39136,8 @@ pub mod api { pub mod assets_trapped { use super::runtime_types; pub type Hash = ::subxt::utils::H256; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Assets = runtime_types::xcm::VersionedAssets; } impl ::subxt::events::StaticEvent for AssetsTrapped { const PALLET: &'static str = "XcmPallet"; @@ -37941,9 +39164,9 @@ pub mod api { } pub mod version_change_notified { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Destination = runtime_types::staging_xcm::v4::location::Location; pub type Result = ::core::primitive::u32; - pub type Cost = runtime_types::xcm::v3::multiasset::MultiAssets; + pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::events::StaticEvent for VersionChangeNotified { @@ -37968,7 +39191,7 @@ pub mod api { } pub mod supported_version_changed { use super::runtime_types; - pub type Location = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Location = runtime_types::staging_xcm::v4::location::Location; pub type Version = ::core::primitive::u32; } impl ::subxt::events::StaticEvent for SupportedVersionChanged { @@ -37994,7 +39217,7 @@ pub mod api { } pub mod notify_target_send_fail { use super::runtime_types; - pub type Location = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Location = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; pub type Error = runtime_types::xcm::v3::traits::Error; } @@ -38020,7 +39243,7 @@ pub mod api { } pub mod notify_target_migration_fail { use super::runtime_types; - pub type Location = runtime_types::xcm::VersionedMultiLocation; + pub type Location = runtime_types::xcm::VersionedLocation; pub type QueryId = ::core::primitive::u64; } impl ::subxt::events::StaticEvent for NotifyTargetMigrationFail { @@ -38050,7 +39273,7 @@ pub mod api { } pub mod invalid_querier_version { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; } impl ::subxt::events::StaticEvent for InvalidQuerierVersion { @@ -38078,13 +39301,11 @@ pub mod api { } pub mod invalid_querier { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; - pub type ExpectedQuerier = - runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type MaybeActualQuerier = ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, - >; + pub type ExpectedQuerier = runtime_types::staging_xcm::v4::location::Location; + pub type MaybeActualQuerier = + ::core::option::Option; } impl ::subxt::events::StaticEvent for InvalidQuerier { const PALLET: &'static str = "XcmPallet"; @@ -38109,8 +39330,8 @@ pub mod api { } pub mod version_notify_started { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Cost = runtime_types::xcm::v3::multiasset::MultiAssets; + pub type Destination = runtime_types::staging_xcm::v4::location::Location; + pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::events::StaticEvent for VersionNotifyStarted { @@ -38135,8 +39356,8 @@ pub mod api { } pub mod version_notify_requested { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Cost = runtime_types::xcm::v3::multiasset::MultiAssets; + pub type Destination = runtime_types::staging_xcm::v4::location::Location; + pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::events::StaticEvent for VersionNotifyRequested { @@ -38162,8 +39383,8 @@ pub mod api { } pub mod version_notify_unrequested { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Cost = runtime_types::xcm::v3::multiasset::MultiAssets; + pub type Destination = runtime_types::staging_xcm::v4::location::Location; + pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::events::StaticEvent for VersionNotifyUnrequested { @@ -38187,8 +39408,8 @@ pub mod api { } pub mod fees_paid { use super::runtime_types; - pub type Paying = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Fees = runtime_types::xcm::v3::multiasset::MultiAssets; + pub type Paying = runtime_types::staging_xcm::v4::location::Location; + pub type Fees = runtime_types::staging_xcm::v4::asset::Assets; } impl ::subxt::events::StaticEvent for FeesPaid { const PALLET: &'static str = "XcmPallet"; @@ -38213,8 +39434,8 @@ pub mod api { pub mod assets_claimed { use super::runtime_types; pub type Hash = ::subxt::utils::H256; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Assets = runtime_types::xcm::VersionedAssets; } impl ::subxt::events::StaticEvent for AssetsClaimed { const PALLET: &'static str = "XcmPallet"; @@ -38248,13 +39469,13 @@ pub mod api { use super::runtime_types; pub type SupportedVersion = ::core::primitive::u32; pub type Param0 = ::core::primitive::u32; - pub type Param1 = runtime_types::xcm::VersionedMultiLocation; + pub type Param1 = runtime_types::xcm::VersionedLocation; } pub mod version_notifiers { use super::runtime_types; pub type VersionNotifiers = ::core::primitive::u64; pub type Param0 = ::core::primitive::u32; - pub type Param1 = runtime_types::xcm::VersionedMultiLocation; + pub type Param1 = runtime_types::xcm::VersionedLocation; } pub mod version_notify_targets { use super::runtime_types; @@ -38264,13 +39485,13 @@ pub mod api { ::core::primitive::u32, ); pub type Param0 = ::core::primitive::u32; - pub type Param1 = runtime_types::xcm::VersionedMultiLocation; + pub type Param1 = runtime_types::xcm::VersionedLocation; } pub mod version_discovery_queue { use super::runtime_types; pub type VersionDiscoveryQueue = runtime_types::bounded_collections::bounded_vec::BoundedVec<( - runtime_types::xcm::VersionedMultiLocation, + runtime_types::xcm::VersionedLocation, ::core::primitive::u32, )>; } @@ -38292,7 +39513,7 @@ pub mod api { pub type LockedFungibles = runtime_types::bounded_collections::bounded_vec::BoundedVec<( ::core::primitive::u128, - runtime_types::xcm::VersionedMultiLocation, + runtime_types::xcm::VersionedLocation, )>; pub type Param0 = ::subxt::utils::AccountId32; } @@ -38340,9 +39561,10 @@ pub mod api { "Queries", vec![], [ - 119u8, 5u8, 12u8, 91u8, 117u8, 240u8, 52u8, 192u8, 135u8, 139u8, 220u8, - 78u8, 207u8, 199u8, 71u8, 163u8, 100u8, 17u8, 6u8, 65u8, 200u8, 245u8, - 191u8, 82u8, 232u8, 128u8, 126u8, 70u8, 39u8, 63u8, 148u8, 219u8, + 246u8, 75u8, 240u8, 129u8, 106u8, 114u8, 99u8, 154u8, 176u8, 188u8, + 146u8, 125u8, 244u8, 103u8, 187u8, 171u8, 60u8, 119u8, 4u8, 90u8, 58u8, + 180u8, 48u8, 165u8, 145u8, 125u8, 227u8, 233u8, 11u8, 142u8, 122u8, + 3u8, ], ) } @@ -38364,15 +39586,16 @@ pub mod api { _0.borrow(), )], [ - 119u8, 5u8, 12u8, 91u8, 117u8, 240u8, 52u8, 192u8, 135u8, 139u8, 220u8, - 78u8, 207u8, 199u8, 71u8, 163u8, 100u8, 17u8, 6u8, 65u8, 200u8, 245u8, - 191u8, 82u8, 232u8, 128u8, 126u8, 70u8, 39u8, 63u8, 148u8, 219u8, + 246u8, 75u8, 240u8, 129u8, 106u8, 114u8, 99u8, 154u8, 176u8, 188u8, + 146u8, 125u8, 244u8, 103u8, 187u8, 171u8, 60u8, 119u8, 4u8, 90u8, 58u8, + 180u8, 48u8, 165u8, 145u8, 125u8, 227u8, 233u8, 11u8, 142u8, 122u8, + 3u8, ], ) } #[doc = " The existing asset traps."] #[doc = ""] - #[doc = " Key is the blake2 256 hash of (origin, versioned `MultiAssets`) pair. Value is the number of"] + #[doc = " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of"] #[doc = " times this pair has been trapped (usually just 1 if it exists at all)."] pub fn asset_traps_iter( &self, @@ -38396,7 +39619,7 @@ pub mod api { } #[doc = " The existing asset traps."] #[doc = ""] - #[doc = " Key is the blake2 256 hash of (origin, versioned `MultiAssets`) pair. Value is the number of"] + #[doc = " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of"] #[doc = " times this pair has been trapped (usually just 1 if it exists at all)."] pub fn asset_traps( &self, @@ -38459,9 +39682,10 @@ pub mod api { "SupportedVersion", vec![], [ - 144u8, 22u8, 91u8, 30u8, 139u8, 164u8, 95u8, 149u8, 97u8, 247u8, 12u8, - 212u8, 96u8, 16u8, 134u8, 236u8, 74u8, 57u8, 244u8, 169u8, 68u8, 63u8, - 111u8, 86u8, 65u8, 229u8, 104u8, 51u8, 44u8, 100u8, 47u8, 191u8, + 144u8, 218u8, 177u8, 254u8, 210u8, 8u8, 84u8, 149u8, 163u8, 162u8, + 238u8, 37u8, 157u8, 28u8, 140u8, 121u8, 201u8, 173u8, 204u8, 92u8, + 133u8, 45u8, 156u8, 38u8, 61u8, 51u8, 153u8, 161u8, 147u8, 146u8, + 202u8, 24u8, ], ) } @@ -38483,9 +39707,10 @@ pub mod api { _0.borrow(), )], [ - 144u8, 22u8, 91u8, 30u8, 139u8, 164u8, 95u8, 149u8, 97u8, 247u8, 12u8, - 212u8, 96u8, 16u8, 134u8, 236u8, 74u8, 57u8, 244u8, 169u8, 68u8, 63u8, - 111u8, 86u8, 65u8, 229u8, 104u8, 51u8, 44u8, 100u8, 47u8, 191u8, + 144u8, 218u8, 177u8, 254u8, 210u8, 8u8, 84u8, 149u8, 163u8, 162u8, + 238u8, 37u8, 157u8, 28u8, 140u8, 121u8, 201u8, 173u8, 204u8, 92u8, + 133u8, 45u8, 156u8, 38u8, 61u8, 51u8, 153u8, 161u8, 147u8, 146u8, + 202u8, 24u8, ], ) } @@ -38509,9 +39734,10 @@ pub mod api { ::subxt::storage::address::make_static_storage_map_key(_1.borrow()), ], [ - 144u8, 22u8, 91u8, 30u8, 139u8, 164u8, 95u8, 149u8, 97u8, 247u8, 12u8, - 212u8, 96u8, 16u8, 134u8, 236u8, 74u8, 57u8, 244u8, 169u8, 68u8, 63u8, - 111u8, 86u8, 65u8, 229u8, 104u8, 51u8, 44u8, 100u8, 47u8, 191u8, + 144u8, 218u8, 177u8, 254u8, 210u8, 8u8, 84u8, 149u8, 163u8, 162u8, + 238u8, 37u8, 157u8, 28u8, 140u8, 121u8, 201u8, 173u8, 204u8, 92u8, + 133u8, 45u8, 156u8, 38u8, 61u8, 51u8, 153u8, 161u8, 147u8, 146u8, + 202u8, 24u8, ], ) } @@ -38530,9 +39756,10 @@ pub mod api { "VersionNotifiers", vec![], [ - 49u8, 190u8, 73u8, 67u8, 91u8, 69u8, 121u8, 206u8, 25u8, 82u8, 29u8, - 170u8, 157u8, 201u8, 168u8, 93u8, 181u8, 55u8, 226u8, 142u8, 136u8, - 46u8, 117u8, 208u8, 130u8, 90u8, 129u8, 39u8, 151u8, 92u8, 118u8, 75u8, + 175u8, 206u8, 29u8, 14u8, 111u8, 123u8, 211u8, 109u8, 159u8, 131u8, + 80u8, 149u8, 216u8, 196u8, 181u8, 105u8, 117u8, 138u8, 80u8, 69u8, + 237u8, 116u8, 195u8, 66u8, 209u8, 102u8, 42u8, 126u8, 222u8, 176u8, + 201u8, 49u8, ], ) } @@ -38554,9 +39781,10 @@ pub mod api { _0.borrow(), )], [ - 49u8, 190u8, 73u8, 67u8, 91u8, 69u8, 121u8, 206u8, 25u8, 82u8, 29u8, - 170u8, 157u8, 201u8, 168u8, 93u8, 181u8, 55u8, 226u8, 142u8, 136u8, - 46u8, 117u8, 208u8, 130u8, 90u8, 129u8, 39u8, 151u8, 92u8, 118u8, 75u8, + 175u8, 206u8, 29u8, 14u8, 111u8, 123u8, 211u8, 109u8, 159u8, 131u8, + 80u8, 149u8, 216u8, 196u8, 181u8, 105u8, 117u8, 138u8, 80u8, 69u8, + 237u8, 116u8, 195u8, 66u8, 209u8, 102u8, 42u8, 126u8, 222u8, 176u8, + 201u8, 49u8, ], ) } @@ -38580,9 +39808,10 @@ pub mod api { ::subxt::storage::address::make_static_storage_map_key(_1.borrow()), ], [ - 49u8, 190u8, 73u8, 67u8, 91u8, 69u8, 121u8, 206u8, 25u8, 82u8, 29u8, - 170u8, 157u8, 201u8, 168u8, 93u8, 181u8, 55u8, 226u8, 142u8, 136u8, - 46u8, 117u8, 208u8, 130u8, 90u8, 129u8, 39u8, 151u8, 92u8, 118u8, 75u8, + 175u8, 206u8, 29u8, 14u8, 111u8, 123u8, 211u8, 109u8, 159u8, 131u8, + 80u8, 149u8, 216u8, 196u8, 181u8, 105u8, 117u8, 138u8, 80u8, 69u8, + 237u8, 116u8, 195u8, 66u8, 209u8, 102u8, 42u8, 126u8, 222u8, 176u8, + 201u8, 49u8, ], ) } @@ -38602,10 +39831,9 @@ pub mod api { "VersionNotifyTargets", vec![], [ - 1u8, 195u8, 40u8, 83u8, 216u8, 175u8, 241u8, 95u8, 42u8, 7u8, 85u8, - 253u8, 223u8, 241u8, 195u8, 41u8, 41u8, 21u8, 17u8, 171u8, 216u8, - 150u8, 39u8, 165u8, 215u8, 194u8, 201u8, 225u8, 179u8, 12u8, 52u8, - 173u8, + 113u8, 77u8, 150u8, 42u8, 82u8, 49u8, 195u8, 120u8, 96u8, 80u8, 152u8, + 67u8, 27u8, 142u8, 10u8, 74u8, 66u8, 134u8, 35u8, 202u8, 77u8, 187u8, + 174u8, 22u8, 207u8, 199u8, 57u8, 85u8, 53u8, 208u8, 146u8, 81u8, ], ) } @@ -38628,10 +39856,9 @@ pub mod api { _0.borrow(), )], [ - 1u8, 195u8, 40u8, 83u8, 216u8, 175u8, 241u8, 95u8, 42u8, 7u8, 85u8, - 253u8, 223u8, 241u8, 195u8, 41u8, 41u8, 21u8, 17u8, 171u8, 216u8, - 150u8, 39u8, 165u8, 215u8, 194u8, 201u8, 225u8, 179u8, 12u8, 52u8, - 173u8, + 113u8, 77u8, 150u8, 42u8, 82u8, 49u8, 195u8, 120u8, 96u8, 80u8, 152u8, + 67u8, 27u8, 142u8, 10u8, 74u8, 66u8, 134u8, 35u8, 202u8, 77u8, 187u8, + 174u8, 22u8, 207u8, 199u8, 57u8, 85u8, 53u8, 208u8, 146u8, 81u8, ], ) } @@ -38656,10 +39883,9 @@ pub mod api { ::subxt::storage::address::make_static_storage_map_key(_1.borrow()), ], [ - 1u8, 195u8, 40u8, 83u8, 216u8, 175u8, 241u8, 95u8, 42u8, 7u8, 85u8, - 253u8, 223u8, 241u8, 195u8, 41u8, 41u8, 21u8, 17u8, 171u8, 216u8, - 150u8, 39u8, 165u8, 215u8, 194u8, 201u8, 225u8, 179u8, 12u8, 52u8, - 173u8, + 113u8, 77u8, 150u8, 42u8, 82u8, 49u8, 195u8, 120u8, 96u8, 80u8, 152u8, + 67u8, 27u8, 142u8, 10u8, 74u8, 66u8, 134u8, 35u8, 202u8, 77u8, 187u8, + 174u8, 22u8, 207u8, 199u8, 57u8, 85u8, 53u8, 208u8, 146u8, 81u8, ], ) } @@ -38680,9 +39906,10 @@ pub mod api { "VersionDiscoveryQueue", vec![], [ - 110u8, 87u8, 102u8, 193u8, 125u8, 129u8, 0u8, 221u8, 218u8, 229u8, - 101u8, 94u8, 74u8, 229u8, 246u8, 180u8, 113u8, 11u8, 15u8, 159u8, 98u8, - 90u8, 30u8, 112u8, 164u8, 236u8, 151u8, 220u8, 19u8, 83u8, 67u8, 248u8, + 95u8, 74u8, 97u8, 94u8, 40u8, 140u8, 175u8, 176u8, 224u8, 222u8, 83u8, + 199u8, 170u8, 102u8, 3u8, 77u8, 127u8, 208u8, 155u8, 122u8, 176u8, + 51u8, 15u8, 253u8, 231u8, 245u8, 91u8, 192u8, 60u8, 144u8, 101u8, + 168u8, ], ) } @@ -38722,9 +39949,10 @@ pub mod api { "RemoteLockedFungibles", vec![], [ - 74u8, 249u8, 83u8, 245u8, 44u8, 230u8, 152u8, 82u8, 4u8, 163u8, 230u8, - 121u8, 87u8, 143u8, 184u8, 12u8, 117u8, 112u8, 131u8, 160u8, 232u8, - 62u8, 175u8, 15u8, 81u8, 198u8, 182u8, 255u8, 37u8, 81u8, 6u8, 57u8, + 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, + 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, + 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, + 201u8, 150u8, ], ) } @@ -38746,9 +39974,10 @@ pub mod api { _0.borrow(), )], [ - 74u8, 249u8, 83u8, 245u8, 44u8, 230u8, 152u8, 82u8, 4u8, 163u8, 230u8, - 121u8, 87u8, 143u8, 184u8, 12u8, 117u8, 112u8, 131u8, 160u8, 232u8, - 62u8, 175u8, 15u8, 81u8, 198u8, 182u8, 255u8, 37u8, 81u8, 6u8, 57u8, + 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, + 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, + 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, + 201u8, 150u8, ], ) } @@ -38772,9 +40001,10 @@ pub mod api { ::subxt::storage::address::make_static_storage_map_key(_1.borrow()), ], [ - 74u8, 249u8, 83u8, 245u8, 44u8, 230u8, 152u8, 82u8, 4u8, 163u8, 230u8, - 121u8, 87u8, 143u8, 184u8, 12u8, 117u8, 112u8, 131u8, 160u8, 232u8, - 62u8, 175u8, 15u8, 81u8, 198u8, 182u8, 255u8, 37u8, 81u8, 6u8, 57u8, + 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, + 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, + 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, + 201u8, 150u8, ], ) } @@ -38800,9 +40030,10 @@ pub mod api { ::subxt::storage::address::make_static_storage_map_key(_2.borrow()), ], [ - 74u8, 249u8, 83u8, 245u8, 44u8, 230u8, 152u8, 82u8, 4u8, 163u8, 230u8, - 121u8, 87u8, 143u8, 184u8, 12u8, 117u8, 112u8, 131u8, 160u8, 232u8, - 62u8, 175u8, 15u8, 81u8, 198u8, 182u8, 255u8, 37u8, 81u8, 6u8, 57u8, + 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, + 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, + 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, + 201u8, 150u8, ], ) } @@ -38821,10 +40052,9 @@ pub mod api { "LockedFungibles", vec![], [ - 110u8, 220u8, 127u8, 176u8, 219u8, 23u8, 132u8, 36u8, 224u8, 187u8, - 25u8, 103u8, 126u8, 99u8, 34u8, 105u8, 57u8, 182u8, 162u8, 69u8, 24u8, - 67u8, 221u8, 103u8, 79u8, 139u8, 187u8, 162u8, 113u8, 109u8, 163u8, - 35u8, + 254u8, 234u8, 1u8, 27u8, 27u8, 32u8, 217u8, 24u8, 47u8, 30u8, 62u8, + 80u8, 86u8, 125u8, 120u8, 24u8, 143u8, 229u8, 161u8, 153u8, 240u8, + 246u8, 80u8, 15u8, 49u8, 189u8, 20u8, 204u8, 239u8, 198u8, 97u8, 174u8, ], ) } @@ -38846,10 +40076,9 @@ pub mod api { _0.borrow(), )], [ - 110u8, 220u8, 127u8, 176u8, 219u8, 23u8, 132u8, 36u8, 224u8, 187u8, - 25u8, 103u8, 126u8, 99u8, 34u8, 105u8, 57u8, 182u8, 162u8, 69u8, 24u8, - 67u8, 221u8, 103u8, 79u8, 139u8, 187u8, 162u8, 113u8, 109u8, 163u8, - 35u8, + 254u8, 234u8, 1u8, 27u8, 27u8, 32u8, 217u8, 24u8, 47u8, 30u8, 62u8, + 80u8, 86u8, 125u8, 120u8, 24u8, 143u8, 229u8, 161u8, 153u8, 240u8, + 246u8, 80u8, 15u8, 49u8, 189u8, 20u8, 204u8, 239u8, 198u8, 97u8, 174u8, ], ) } @@ -38877,6 +40106,155 @@ pub mod api { } } } + pub mod identity_migrator { + use super::root_mod; + use super::runtime_types; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::polkadot_runtime_common::identity_migrator::pallet::Call; + pub mod calls { + use super::root_mod; + use super::runtime_types; + type DispatchError = runtime_types::sp_runtime::DispatchError; + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::reap_identity`]."] + pub struct ReapIdentity { + pub who: reap_identity::Who, + } + pub mod reap_identity { + use super::runtime_types; + pub type Who = ::subxt::utils::AccountId32; + } + impl ::subxt::blocks::StaticExtrinsic for ReapIdentity { + const PALLET: &'static str = "IdentityMigrator"; + const CALL: &'static str = "reap_identity"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::poke_deposit`]."] + pub struct PokeDeposit { + pub who: poke_deposit::Who, + } + pub mod poke_deposit { + use super::runtime_types; + pub type Who = ::subxt::utils::AccountId32; + } + impl ::subxt::blocks::StaticExtrinsic for PokeDeposit { + const PALLET: &'static str = "IdentityMigrator"; + const CALL: &'static str = "poke_deposit"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "See [`Pallet::reap_identity`]."] + pub fn reap_identity( + &self, + who: types::reap_identity::Who, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "IdentityMigrator", + "reap_identity", + types::ReapIdentity { who }, + [ + 187u8, 110u8, 202u8, 220u8, 54u8, 240u8, 242u8, 171u8, 5u8, 83u8, + 129u8, 93u8, 213u8, 208u8, 21u8, 236u8, 121u8, 128u8, 127u8, 121u8, + 153u8, 118u8, 232u8, 44u8, 20u8, 124u8, 214u8, 185u8, 249u8, 182u8, + 136u8, 96u8, + ], + ) + } + #[doc = "See [`Pallet::poke_deposit`]."] + pub fn poke_deposit( + &self, + who: types::poke_deposit::Who, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "IdentityMigrator", + "poke_deposit", + types::PokeDeposit { who }, + [ + 42u8, 67u8, 168u8, 124u8, 75u8, 32u8, 143u8, 173u8, 14u8, 28u8, 76u8, + 35u8, 196u8, 255u8, 250u8, 33u8, 128u8, 159u8, 132u8, 124u8, 51u8, + 243u8, 166u8, 55u8, 208u8, 101u8, 188u8, 133u8, 36u8, 18u8, 119u8, + 146u8, + ], + ) + } + } + } + #[doc = "The `Event` enum of this pallet"] + pub type Event = runtime_types::polkadot_runtime_common::identity_migrator::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "The identity and all sub accounts were reaped for `who`."] + pub struct IdentityReaped { + pub who: identity_reaped::Who, + } + pub mod identity_reaped { + use super::runtime_types; + pub type Who = ::subxt::utils::AccountId32; + } + impl ::subxt::events::StaticEvent for IdentityReaped { + const PALLET: &'static str = "IdentityMigrator"; + const EVENT: &'static str = "IdentityReaped"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "The deposits held for `who` were updated. `identity` is the new deposit held for"] + #[doc = "identity info, and `subs` is the new deposit held for the sub-accounts."] + pub struct DepositUpdated { + pub who: deposit_updated::Who, + pub identity: deposit_updated::Identity, + pub subs: deposit_updated::Subs, + } + pub mod deposit_updated { + use super::runtime_types; + pub type Who = ::subxt::utils::AccountId32; + pub type Identity = ::core::primitive::u128; + pub type Subs = ::core::primitive::u128; + } + impl ::subxt::events::StaticEvent for DepositUpdated { + const PALLET: &'static str = "IdentityMigrator"; + const EVENT: &'static str = "DepositUpdated"; + } + } + } pub mod paras_sudo_wrapper { use super::root_mod; use super::runtime_types; @@ -39118,10 +40496,9 @@ pub mod api { xcm: ::std::boxed::Box::new(xcm), }, [ - 144u8, 179u8, 113u8, 39u8, 46u8, 58u8, 218u8, 220u8, 98u8, 232u8, - 121u8, 119u8, 127u8, 99u8, 52u8, 189u8, 232u8, 28u8, 233u8, 54u8, - 122u8, 206u8, 155u8, 7u8, 88u8, 167u8, 203u8, 251u8, 96u8, 156u8, 23u8, - 54u8, + 35u8, 59u8, 126u8, 248u8, 211u8, 246u8, 239u8, 67u8, 252u8, 100u8, + 231u8, 46u8, 197u8, 83u8, 150u8, 54u8, 215u8, 188u8, 76u8, 193u8, 60u8, + 38u8, 251u8, 162u8, 19u8, 15u8, 214u8, 51u8, 24u8, 2u8, 9u8, 116u8, ], ) } @@ -40450,7 +41827,7 @@ pub mod api { #[doc = " - [`frame_support::storage::StorageDoubleMap`]: 96 byte"] #[doc = ""] #[doc = " For more info see"] - #[doc = " "] + #[doc = " "] pub fn max_key_len(&self) -> ::subxt::constants::Address<::core::primitive::u32> { ::subxt::constants::Address::new_static( "StateTrieMigration", @@ -40571,19 +41948,11 @@ pub mod api { const EVENT: &'static str = "DefensiveTestCall"; } } - pub mod storage { - use super::runtime_types; - pub mod types { - use super::runtime_types; - } - pub struct StorageApi; - impl StorageApi {} - } } pub mod sudo { use super::root_mod; use super::runtime_types; - #[doc = "Error for the Sudo pallet"] + #[doc = "Error for the Sudo pallet."] pub type Error = runtime_types::pallet_sudo::pallet::Error; #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub type Call = runtime_types::pallet_sudo::pallet::Call; @@ -40685,6 +42054,22 @@ pub mod api { const PALLET: &'static str = "Sudo"; const CALL: &'static str = "sudo_as"; } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "See [`Pallet::remove_key`]."] + pub struct RemoveKey; + impl ::subxt::blocks::StaticExtrinsic for RemoveKey { + const PALLET: &'static str = "Sudo"; + const CALL: &'static str = "remove_key"; + } } pub struct TransactionApi; impl TransactionApi { @@ -40697,10 +42082,10 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 230u8, 66u8, 61u8, 240u8, 132u8, 75u8, 17u8, 14u8, 12u8, 233u8, 24u8, - 192u8, 91u8, 200u8, 209u8, 133u8, 251u8, 154u8, 221u8, 95u8, 165u8, - 112u8, 49u8, 192u8, 126u8, 134u8, 46u8, 221u8, 150u8, 120u8, 178u8, - 103u8, + 126u8, 191u8, 96u8, 252u8, 103u8, 117u8, 232u8, 59u8, 13u8, 216u8, + 200u8, 186u8, 103u8, 56u8, 211u8, 188u8, 66u8, 63u8, 12u8, 200u8, + 114u8, 107u8, 46u8, 113u8, 249u8, 239u8, 130u8, 235u8, 107u8, 167u8, + 28u8, 234u8, ], ) } @@ -40718,10 +42103,9 @@ pub mod api { weight, }, [ - 39u8, 207u8, 214u8, 172u8, 135u8, 112u8, 167u8, 27u8, 210u8, 182u8, - 160u8, 163u8, 128u8, 207u8, 98u8, 136u8, 35u8, 14u8, 163u8, 243u8, - 224u8, 232u8, 254u8, 35u8, 244u8, 13u8, 212u8, 137u8, 99u8, 158u8, - 249u8, 164u8, + 115u8, 252u8, 134u8, 42u8, 167u8, 146u8, 239u8, 12u8, 141u8, 126u8, + 53u8, 7u8, 6u8, 51u8, 253u8, 87u8, 111u8, 24u8, 23u8, 167u8, 28u8, + 210u8, 65u8, 219u8, 65u8, 167u8, 41u8, 51u8, 139u8, 44u8, 132u8, 82u8, ], ) } @@ -40755,9 +42139,23 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 97u8, 37u8, 226u8, 52u8, 181u8, 51u8, 13u8, 232u8, 250u8, 246u8, 195u8, - 219u8, 186u8, 236u8, 187u8, 3u8, 246u8, 172u8, 203u8, 35u8, 30u8, - 227u8, 242u8, 134u8, 51u8, 90u8, 105u8, 119u8, 1u8, 65u8, 79u8, 36u8, + 51u8, 226u8, 36u8, 234u8, 26u8, 132u8, 248u8, 140u8, 45u8, 72u8, 176u8, + 70u8, 127u8, 173u8, 147u8, 25u8, 21u8, 188u8, 41u8, 93u8, 2u8, 214u8, + 39u8, 150u8, 155u8, 68u8, 91u8, 193u8, 73u8, 101u8, 118u8, 119u8, + ], + ) + } + #[doc = "See [`Pallet::remove_key`]."] + pub fn remove_key(&self) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::new_static( + "Sudo", + "remove_key", + types::RemoveKey {}, + [ + 133u8, 253u8, 54u8, 175u8, 202u8, 239u8, 5u8, 198u8, 180u8, 138u8, + 25u8, 28u8, 109u8, 40u8, 30u8, 56u8, 126u8, 100u8, 52u8, 205u8, 250u8, + 191u8, 61u8, 195u8, 172u8, 142u8, 184u8, 239u8, 247u8, 10u8, 211u8, + 79u8, ], ) } @@ -40802,11 +42200,13 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[doc = "The sudo key has been updated."] pub struct KeyChanged { - pub old_sudoer: key_changed::OldSudoer, + pub old: key_changed::Old, + pub new: key_changed::New, } pub mod key_changed { use super::runtime_types; - pub type OldSudoer = ::core::option::Option<::subxt::utils::AccountId32>; + pub type Old = ::core::option::Option<::subxt::utils::AccountId32>; + pub type New = ::subxt::utils::AccountId32; } impl ::subxt::events::StaticEvent for KeyChanged { const PALLET: &'static str = "Sudo"; @@ -40822,6 +42222,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "The key was permanently removed."] + pub struct KeyRemoved; + impl ::subxt::events::StaticEvent for KeyRemoved { + const PALLET: &'static str = "Sudo"; + const EVENT: &'static str = "KeyRemoved"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[doc = "A [sudo_as](Pallet::sudo_as) call just took place."] pub struct SudoAsDone { pub sudo_result: sudo_as_done::SudoResult, @@ -41393,6 +42809,17 @@ pub mod api { remark_with_event { remark: ::std::vec::Vec<::core::primitive::u8>, }, + #[codec(index = 9)] + #[doc = "See [`Pallet::authorize_upgrade`]."] + authorize_upgrade { code_hash: ::subxt::utils::H256 }, + #[codec(index = 10)] + #[doc = "See [`Pallet::authorize_upgrade_without_checks`]."] + authorize_upgrade_without_checks { code_hash: ::subxt::utils::H256 }, + #[codec(index = 11)] + #[doc = "See [`Pallet::apply_authorized_upgrade`]."] + apply_authorized_upgrade { + code: ::std::vec::Vec<::core::primitive::u8>, + }, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -41428,6 +42855,12 @@ pub mod api { #[codec(index = 5)] #[doc = "The origin filter prevent the call to be dispatched."] CallFiltered, + #[codec(index = 6)] + #[doc = "No upgrade authorized."] + NothingAuthorized, + #[codec(index = 7)] + #[doc = "The submitted code is not authorized."] + Unauthorized, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -41471,6 +42904,12 @@ pub mod api { sender: ::subxt::utils::AccountId32, hash: ::subxt::utils::H256, }, + #[codec(index = 6)] + #[doc = "An upgrade was authorized."] + UpgradeAuthorized { + code_hash: ::subxt::utils::H256, + check_version: ::core::primitive::bool, + }, } } #[derive( @@ -41500,6 +42939,20 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct CodeUpgradeAuthorization { + pub code_hash: ::subxt::utils::H256, + pub check_version: ::core::primitive::bool, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] pub struct EventRecord<_0, _1> { pub phase: runtime_types::frame_system::Phase, pub event: _0, @@ -42587,6 +44040,30 @@ pub mod api { }, } } + pub mod pallet_broker { + use super::runtime_types; + pub mod coretime_interface { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum CoreAssignment { + #[codec(index = 0)] + Idle, + #[codec(index = 1)] + Pool, + #[codec(index = 2)] + Task(::core::primitive::u32), + } + } + } pub mod pallet_child_bounties { use super::runtime_types; pub mod pallet { @@ -43347,6 +44824,54 @@ pub mod api { #[codec(index = 14)] #[doc = "See [`Pallet::quit_sub`]."] quit_sub, + #[codec(index = 15)] + #[doc = "See [`Pallet::add_username_authority`]."] + add_username_authority { + authority: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, + suffix: ::std::vec::Vec<::core::primitive::u8>, + allocation: ::core::primitive::u32, + }, + #[codec(index = 16)] + #[doc = "See [`Pallet::remove_username_authority`]."] + remove_username_authority { + authority: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, + }, + #[codec(index = 17)] + #[doc = "See [`Pallet::set_username_for`]."] + set_username_for { + who: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, + username: ::std::vec::Vec<::core::primitive::u8>, + signature: + ::core::option::Option, + }, + #[codec(index = 18)] + #[doc = "See [`Pallet::accept_username`]."] + accept_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 19)] + #[doc = "See [`Pallet::remove_expired_approval`]."] + remove_expired_approval { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 20)] + #[doc = "See [`Pallet::set_primary_username`]."] + set_primary_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 21)] + #[doc = "See [`Pallet::remove_dangling_username`]."] + remove_dangling_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -43411,6 +44936,33 @@ pub mod api { #[codec(index = 16)] #[doc = "Error that occurs when there is an issue paying for judgement."] JudgementPaymentFailed, + #[codec(index = 17)] + #[doc = "The provided suffix is too long."] + InvalidSuffix, + #[codec(index = 18)] + #[doc = "The sender does not have permission to issue a username."] + NotUsernameAuthority, + #[codec(index = 19)] + #[doc = "The authority cannot allocate any more usernames."] + NoAllocation, + #[codec(index = 20)] + #[doc = "The signature on a username was not valid."] + InvalidSignature, + #[codec(index = 21)] + #[doc = "Setting this username requires a signature, but none was provided."] + RequiresSignature, + #[codec(index = 22)] + #[doc = "The username does not meet the requirements."] + InvalidUsername, + #[codec(index = 23)] + #[doc = "The username is already taken."] + UsernameTaken, + #[codec(index = 24)] + #[doc = "The requested username does not exist."] + NoUsername, + #[codec(index = 25)] + #[doc = "The username cannot be forcefully removed because it can still be accepted."] + NotExpired, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -43484,6 +45036,53 @@ pub mod api { main: ::subxt::utils::AccountId32, deposit: ::core::primitive::u128, }, + #[codec(index = 10)] + #[doc = "A username authority was added."] + AuthorityAdded { + authority: ::subxt::utils::AccountId32, + }, + #[codec(index = 11)] + #[doc = "A username authority was removed."] + AuthorityRemoved { + authority: ::subxt::utils::AccountId32, + }, + #[codec(index = 12)] + #[doc = "A username was set for `who`."] + UsernameSet { + who: ::subxt::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 13)] + #[doc = "A username was queued, but `who` must accept it prior to `expiration`."] + UsernameQueued { + who: ::subxt::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + expiration: ::core::primitive::u32, + }, + #[codec(index = 14)] + #[doc = "A queued username passed its expiration without being claimed and was removed."] + PreapprovalExpired { whose: ::subxt::utils::AccountId32 }, + #[codec(index = 15)] + #[doc = "A username was set as a primary and can be looked up from `who`."] + PrimaryUsernameSet { + who: ::subxt::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 16)] + #[doc = "A dangling username (as in, a username corresponding to an account that has removed its"] + #[doc = "identity) has been removed."] + DanglingUsernameRemoved { + who: ::subxt::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, } } pub mod types { @@ -43498,6 +45097,20 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct AuthorityProperties<_0> { + pub suffix: _0, + pub allocation: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] pub enum Data { #[codec(index = 0)] None, @@ -43637,121 +45250,6 @@ pub mod api { } } } - pub mod pallet_im_online { - use super::runtime_types; - pub mod pallet { - use super::runtime_types; - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] - pub enum Call { - #[codec(index = 0)] - #[doc = "See [`Pallet::heartbeat`]."] - heartbeat { - heartbeat: - runtime_types::pallet_im_online::Heartbeat<::core::primitive::u32>, - signature: runtime_types::pallet_im_online::sr25519::app_sr25519::Signature, - }, - } - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "The `Error` enum of this pallet."] - pub enum Error { - #[codec(index = 0)] - #[doc = "Non existent public key."] - InvalidKey, - #[codec(index = 1)] - #[doc = "Duplicated heartbeat."] - DuplicatedHeartbeat, - } - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "The `Event` enum of this pallet"] - pub enum Event { - #[codec(index = 0)] - #[doc = "A new heartbeat was received from `AuthorityId`."] - HeartbeatReceived { - authority_id: runtime_types::pallet_im_online::sr25519::app_sr25519::Public, - }, - #[codec(index = 1)] - #[doc = "At the end of the session, no offence was committed."] - AllGood, - #[codec(index = 2)] - #[doc = "At the end of the session, at least one validator was found to be offline."] - SomeOffline { - offline: ::std::vec::Vec<(::subxt::utils::AccountId32, ())>, - }, - } - } - pub mod sr25519 { - use super::runtime_types; - pub mod app_sr25519 { - use super::runtime_types; - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - pub struct Signature(pub runtime_types::sp_core::sr25519::Signature); - } - } - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - pub struct Heartbeat<_0> { - pub block_number: _0, - pub session_index: ::core::primitive::u32, - pub authority_index: ::core::primitive::u32, - pub validators_len: ::core::primitive::u32, - } - } pub mod pallet_indices { use super::runtime_types; pub mod pallet { @@ -43908,6 +45406,9 @@ pub mod api { #[doc = ""] #[doc = "This can change at any time and may resolve in the future by re-trying."] QueuePaused, + #[codec(index = 8)] + #[doc = "Another call is in progress and needs to finish before this call can happen."] + RecursiveDisallowed, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -43921,7 +45422,7 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[doc = "The `Event` enum of this pallet"] pub enum Event { - # [codec (index = 0)] # [doc = "Message discarded due to an error in the `MessageProcessor` (usually a format error)."] ProcessingFailed { id : [:: core :: primitive :: u8 ; 32usize] , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , error : runtime_types :: frame_support :: traits :: messages :: ProcessMessageError , } , # [codec (index = 1)] # [doc = "Message is processed."] Processed { id : [:: core :: primitive :: u8 ; 32usize] , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , weight_used : runtime_types :: sp_weights :: weight_v2 :: Weight , success : :: core :: primitive :: bool , } , # [codec (index = 2)] # [doc = "Message placed in overweight queue."] OverweightEnqueued { id : [:: core :: primitive :: u8 ; 32usize] , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page_index : :: core :: primitive :: u32 , message_index : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "This page was reaped."] PageReaped { origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , index : :: core :: primitive :: u32 , } , } + # [codec (index = 0)] # [doc = "Message discarded due to an error in the `MessageProcessor` (usually a format error)."] ProcessingFailed { id : :: subxt :: utils :: H256 , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , error : runtime_types :: frame_support :: traits :: messages :: ProcessMessageError , } , # [codec (index = 1)] # [doc = "Message is processed."] Processed { id : :: subxt :: utils :: H256 , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , weight_used : runtime_types :: sp_weights :: weight_v2 :: Weight , success : :: core :: primitive :: bool , } , # [codec (index = 2)] # [doc = "Message placed in overweight queue."] OverweightEnqueued { id : [:: core :: primitive :: u8 ; 32usize] , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page_index : :: core :: primitive :: u32 , message_index : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "This page was reaped."] PageReaped { origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , index : :: core :: primitive :: u32 , } , } } #[derive( :: subxt :: ext :: codec :: Decode, @@ -46721,6 +48222,20 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum HoldReason { + #[codec(index = 0)] + SlashForMigrate, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] pub enum MigrationCompute { #[codec(index = 0)] Signed, @@ -46821,6 +48336,9 @@ pub mod api { who: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, call: ::std::boxed::Box, }, + #[codec(index = 4)] + #[doc = "See [`Pallet::remove_key`]."] + remove_key, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -46832,10 +48350,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "Error for the Sudo pallet"] + #[doc = "Error for the Sudo pallet."] pub enum Error { #[codec(index = 0)] - #[doc = "Sender must be the Sudo account"] + #[doc = "Sender must be the Sudo account."] RequireSudo, } #[derive( @@ -46859,9 +48377,13 @@ pub mod api { #[codec(index = 1)] #[doc = "The sudo key has been updated."] KeyChanged { - old_sudoer: ::core::option::Option<::subxt::utils::AccountId32>, + old: ::core::option::Option<::subxt::utils::AccountId32>, + new: ::subxt::utils::AccountId32, }, #[codec(index = 2)] + #[doc = "The key was permanently removed."] + KeyRemoved, + #[codec(index = 3)] #[doc = "A [sudo_as](Pallet::sudo_as) call just took place."] SudoAsDone { sudo_result: @@ -47054,7 +48576,7 @@ pub mod api { >, #[codec(compact)] amount: ::core::primitive::u128, - beneficiary: ::std::boxed::Box, + beneficiary: ::std::boxed::Box, valid_from: ::core::option::Option<::core::primitive::u32>, }, #[codec(index = 6)] @@ -47185,7 +48707,7 @@ pub mod api { asset_kind: runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, amount: ::core::primitive::u128, - beneficiary: runtime_types::xcm::VersionedMultiLocation, + beneficiary: runtime_types::xcm::VersionedLocation, valid_from: ::core::primitive::u32, expire_at: ::core::primitive::u32, }, @@ -47628,23 +49150,23 @@ pub mod api { #[codec(index = 0)] #[doc = "See [`Pallet::send`]."] send { - dest: ::std::boxed::Box, + dest: ::std::boxed::Box, message: ::std::boxed::Box, }, #[codec(index = 1)] #[doc = "See [`Pallet::teleport_assets`]."] teleport_assets { - dest: ::std::boxed::Box, - beneficiary: ::std::boxed::Box, - assets: ::std::boxed::Box, + dest: ::std::boxed::Box, + beneficiary: ::std::boxed::Box, + assets: ::std::boxed::Box, fee_asset_item: ::core::primitive::u32, }, #[codec(index = 2)] #[doc = "See [`Pallet::reserve_transfer_assets`]."] reserve_transfer_assets { - dest: ::std::boxed::Box, - beneficiary: ::std::boxed::Box, - assets: ::std::boxed::Box, + dest: ::std::boxed::Box, + beneficiary: ::std::boxed::Box, + assets: ::std::boxed::Box, fee_asset_item: ::core::primitive::u32, }, #[codec(index = 3)] @@ -47656,9 +49178,8 @@ pub mod api { #[codec(index = 4)] #[doc = "See [`Pallet::force_xcm_version`]."] force_xcm_version { - location: ::std::boxed::Box< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, - >, + location: + ::std::boxed::Box, version: ::core::primitive::u32, }, #[codec(index = 5)] @@ -47669,34 +49190,43 @@ pub mod api { #[codec(index = 6)] #[doc = "See [`Pallet::force_subscribe_version_notify`]."] force_subscribe_version_notify { - location: ::std::boxed::Box, + location: ::std::boxed::Box, }, #[codec(index = 7)] #[doc = "See [`Pallet::force_unsubscribe_version_notify`]."] force_unsubscribe_version_notify { - location: ::std::boxed::Box, + location: ::std::boxed::Box, }, #[codec(index = 8)] #[doc = "See [`Pallet::limited_reserve_transfer_assets`]."] limited_reserve_transfer_assets { - dest: ::std::boxed::Box, - beneficiary: ::std::boxed::Box, - assets: ::std::boxed::Box, + dest: ::std::boxed::Box, + beneficiary: ::std::boxed::Box, + assets: ::std::boxed::Box, fee_asset_item: ::core::primitive::u32, weight_limit: runtime_types::xcm::v3::WeightLimit, }, #[codec(index = 9)] #[doc = "See [`Pallet::limited_teleport_assets`]."] limited_teleport_assets { - dest: ::std::boxed::Box, - beneficiary: ::std::boxed::Box, - assets: ::std::boxed::Box, + dest: ::std::boxed::Box, + beneficiary: ::std::boxed::Box, + assets: ::std::boxed::Box, fee_asset_item: ::core::primitive::u32, weight_limit: runtime_types::xcm::v3::WeightLimit, }, #[codec(index = 10)] #[doc = "See [`Pallet::force_suspension`]."] force_suspension { suspended: ::core::primitive::bool }, + #[codec(index = 11)] + #[doc = "See [`Pallet::transfer_assets`]."] + transfer_assets { + dest: ::std::boxed::Box, + beneficiary: ::std::boxed::Box, + assets: ::std::boxed::Box, + fee_asset_item: ::core::primitive::u32, + weight_limit: runtime_types::xcm::v3::WeightLimit, + }, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -47725,7 +49255,7 @@ pub mod api { #[doc = "The message's weight could not be determined."] UnweighableMessage, #[codec(index = 4)] - #[doc = "The destination `MultiLocation` provided cannot be inverted."] + #[doc = "The destination `Location` provided cannot be inverted."] DestinationNotInvertible, #[codec(index = 5)] #[doc = "The assets to be sent are empty."] @@ -47753,8 +49283,8 @@ pub mod api { #[doc = "The location is invalid since it already has a subscription from us."] AlreadySubscribed, #[codec(index = 13)] - #[doc = "Invalid asset for the operation."] - InvalidAsset, + #[doc = "Could not check-out the assets for teleportation to the destination chain."] + CannotCheckOutTeleport, #[codec(index = 14)] #[doc = "The owner does not own (all) of the asset that they wish to do the operation on."] LowBalance, @@ -47773,6 +49303,21 @@ pub mod api { #[codec(index = 19)] #[doc = "The unlock operation cannot succeed because there are still consumers of the lock."] InUse, + #[codec(index = 20)] + #[doc = "Invalid non-concrete asset."] + InvalidAssetNotConcrete, + #[codec(index = 21)] + #[doc = "Invalid asset, reserve chain could not be determined for it."] + InvalidAssetUnknownReserve, + #[codec(index = 22)] + #[doc = "Invalid asset, do not support remote asset reserves with different fees reserves."] + InvalidAssetUnsupportedReserve, + #[codec(index = 23)] + #[doc = "Too many assets with different reserve locations have been attempted for transfer."] + TooManyReserves, + #[codec(index = 24)] + #[doc = "Local XCM execution incomplete."] + LocalExecutionIncomplete, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -47789,14 +49334,14 @@ pub mod api { #[codec(index = 0)] #[doc = "Execution of an XCM message was attempted."] Attempted { - outcome: runtime_types::xcm::v3::traits::Outcome, + outcome: runtime_types::staging_xcm::v4::traits::Outcome, }, #[codec(index = 1)] #[doc = "A XCM message was sent."] Sent { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - message: runtime_types::xcm::v3::Xcm, + origin: runtime_types::staging_xcm::v4::location::Location, + destination: runtime_types::staging_xcm::v4::location::Location, + message: runtime_types::staging_xcm::v4::Xcm, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 2)] @@ -47804,7 +49349,7 @@ pub mod api { #[doc = "matching query was never registered, it may be because it is a duplicate response, or"] #[doc = "because the query timed out."] UnexpectedResponse { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + origin: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, }, #[codec(index = 3)] @@ -47812,7 +49357,7 @@ pub mod api { #[doc = "no registered notification call."] ResponseReady { query_id: ::core::primitive::u64, - response: runtime_types::xcm::v3::Response, + response: runtime_types::staging_xcm::v4::Response, }, #[codec(index = 4)] #[doc = "Query response has been received and query is removed. The registered notification has"] @@ -47855,10 +49400,10 @@ pub mod api { #[doc = "not match that expected. The query remains registered for a later, valid, response to"] #[doc = "be received and acted upon."] InvalidResponder { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + origin: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, expected_location: ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, + runtime_types::staging_xcm::v4::location::Location, >, }, #[codec(index = 9)] @@ -47870,7 +49415,7 @@ pub mod api { #[doc = "valid response will be dropped. Manual governance intervention is probably going to be"] #[doc = "needed."] InvalidResponderVersion { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + origin: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, }, #[codec(index = 10)] @@ -47880,31 +49425,31 @@ pub mod api { #[doc = "Some assets have been placed in an asset trap."] AssetsTrapped { hash: ::subxt::utils::H256, - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - assets: runtime_types::xcm::VersionedMultiAssets, + origin: runtime_types::staging_xcm::v4::location::Location, + assets: runtime_types::xcm::VersionedAssets, }, #[codec(index = 12)] #[doc = "An XCM version change notification message has been attempted to be sent."] #[doc = ""] #[doc = "The cost of sending it (borne by the chain) is included."] VersionChangeNotified { - destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + destination: runtime_types::staging_xcm::v4::location::Location, result: ::core::primitive::u32, - cost: runtime_types::xcm::v3::multiasset::MultiAssets, + cost: runtime_types::staging_xcm::v4::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 13)] #[doc = "The supported version of a location has been changed. This might be through an"] #[doc = "automatic notification or a manual intervention."] SupportedVersionChanged { - location: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + location: runtime_types::staging_xcm::v4::location::Location, version: ::core::primitive::u32, }, #[codec(index = 14)] #[doc = "A given location which had a version change subscription was dropped owing to an error"] #[doc = "sending the notification to it."] NotifyTargetSendFail { - location: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + location: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, error: runtime_types::xcm::v3::traits::Error, }, @@ -47912,7 +49457,7 @@ pub mod api { #[doc = "A given location which had a version change subscription was dropped owing to an error"] #[doc = "migrating the location to our new XCM format."] NotifyTargetMigrationFail { - location: runtime_types::xcm::VersionedMultiLocation, + location: runtime_types::xcm::VersionedLocation, query_id: ::core::primitive::u64, }, #[codec(index = 16)] @@ -47924,7 +49469,7 @@ pub mod api { #[doc = "valid response will be dropped. Manual governance intervention is probably going to be"] #[doc = "needed."] InvalidQuerierVersion { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + origin: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, }, #[codec(index = 17)] @@ -47932,49 +49477,48 @@ pub mod api { #[doc = "not match the expected. The query remains registered for a later, valid, response to"] #[doc = "be received and acted upon."] InvalidQuerier { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + origin: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, - expected_querier: - runtime_types::staging_xcm::v3::multilocation::MultiLocation, + expected_querier: runtime_types::staging_xcm::v4::location::Location, maybe_actual_querier: ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, + runtime_types::staging_xcm::v4::location::Location, >, }, #[codec(index = 18)] #[doc = "A remote has requested XCM version change notification from us and we have honored it."] #[doc = "A version information message is sent to them and its cost is included."] VersionNotifyStarted { - destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - cost: runtime_types::xcm::v3::multiasset::MultiAssets, + destination: runtime_types::staging_xcm::v4::location::Location, + cost: runtime_types::staging_xcm::v4::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 19)] #[doc = "We have requested that a remote chain send us XCM version change notifications."] VersionNotifyRequested { - destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - cost: runtime_types::xcm::v3::multiasset::MultiAssets, + destination: runtime_types::staging_xcm::v4::location::Location, + cost: runtime_types::staging_xcm::v4::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 20)] #[doc = "We have requested that a remote chain stops sending us XCM version change"] #[doc = "notifications."] VersionNotifyUnrequested { - destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - cost: runtime_types::xcm::v3::multiasset::MultiAssets, + destination: runtime_types::staging_xcm::v4::location::Location, + cost: runtime_types::staging_xcm::v4::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 21)] #[doc = "Fees were paid from a location for an operation (often for using `SendXcm`)."] FeesPaid { - paying: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - fees: runtime_types::xcm::v3::multiasset::MultiAssets, + paying: runtime_types::staging_xcm::v4::location::Location, + fees: runtime_types::staging_xcm::v4::asset::Assets, }, #[codec(index = 22)] #[doc = "Some assets have been claimed from an asset trap"] AssetsClaimed { hash: ::subxt::utils::H256, - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - assets: runtime_types::xcm::VersionedMultiAssets, + origin: runtime_types::staging_xcm::v4::location::Location, + assets: runtime_types::xcm::VersionedAssets, }, } #[derive( @@ -47989,9 +49533,9 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] pub enum Origin { #[codec(index = 0)] - Xcm(runtime_types::staging_xcm::v3::multilocation::MultiLocation), + Xcm(runtime_types::staging_xcm::v4::location::Location), #[codec(index = 1)] - Response(runtime_types::staging_xcm::v3::multilocation::MultiLocation), + Response(runtime_types::staging_xcm::v4::location::Location), } #[derive( :: subxt :: ext :: codec :: Decode, @@ -48006,16 +49550,16 @@ pub mod api { pub enum QueryStatus<_0> { #[codec(index = 0)] Pending { - responder: runtime_types::xcm::VersionedMultiLocation, + responder: runtime_types::xcm::VersionedLocation, maybe_match_querier: - ::core::option::Option, + ::core::option::Option, maybe_notify: ::core::option::Option<(::core::primitive::u8, ::core::primitive::u8)>, timeout: _0, }, #[codec(index = 1)] VersionNotifier { - origin: runtime_types::xcm::VersionedMultiLocation, + origin: runtime_types::xcm::VersionedLocation, is_active: ::core::primitive::bool, }, #[codec(index = 2)] @@ -48036,8 +49580,8 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] pub struct RemoteLockedFungibleRecord<_0> { pub amount: ::core::primitive::u128, - pub owner: runtime_types::xcm::VersionedMultiLocation, - pub locker: runtime_types::xcm::VersionedMultiLocation, + pub owner: runtime_types::xcm::VersionedLocation, + pub locker: runtime_types::xcm::VersionedLocation, pub consumers: runtime_types::bounded_collections::bounded_vec::BoundedVec<( _0, ::core::primitive::u128, @@ -48339,12 +49883,12 @@ pub mod api { PrecheckingMaxMemory(::core::primitive::u64), #[codec(index = 5)] PvfPrepTimeout( - runtime_types::polkadot_primitives::v6::PvfPrepTimeoutKind, + runtime_types::polkadot_primitives::v6::PvfPrepKind, ::core::primitive::u64, ), #[codec(index = 6)] PvfExecTimeout( - runtime_types::polkadot_primitives::v6::PvfExecTimeoutKind, + runtime_types::polkadot_primitives::v6::PvfExecKind, ::core::primitive::u64, ), #[codec(index = 7)] @@ -48885,7 +50429,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - pub enum PvfExecTimeoutKind { + pub enum PvfExecKind { #[codec(index = 0)] Backing, #[codec(index = 1)] @@ -48901,11 +50445,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - pub enum PvfPrepTimeoutKind { + pub enum PvfPrepKind { #[codec(index = 0)] Precheck, #[codec(index = 1)] - Lenient, + Prepare, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -49030,6 +50574,10 @@ pub mod api { BackingValid(::subxt::utils::H256), #[codec(index = 3)] ApprovalChecking, + #[codec(index = 4)] + ApprovalCheckingMultipleCandidates( + ::std::vec::Vec, + ), } #[derive( :: subxt :: ext :: codec :: CompactAs, @@ -49060,6 +50608,23 @@ pub mod api { Explicit(runtime_types::polkadot_primitives::v6::validator_app::Signature), } } + pub mod vstaging { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct ApprovalVotingParams { + pub max_approval_coalesce_count: ::core::primitive::u32, + } + } } pub mod polkadot_runtime_common { use super::runtime_types; @@ -49776,6 +51341,55 @@ pub mod api { Ending(_0), } } + pub mod identity_migrator { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + #[codec(index = 0)] + #[doc = "See [`Pallet::reap_identity`]."] + reap_identity { who: ::subxt::utils::AccountId32 }, + #[codec(index = 1)] + #[doc = "See [`Pallet::poke_deposit`]."] + poke_deposit { who: ::subxt::utils::AccountId32 }, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "The `Event` enum of this pallet"] + pub enum Event { + #[codec(index = 0)] + #[doc = "The identity and all sub accounts were reaped for `who`."] + IdentityReaped { who: ::subxt::utils::AccountId32 }, + #[codec(index = 1)] + #[doc = "The deposits held for `who` were updated. `identity` is the new deposit held for"] + #[doc = "identity info, and `subs` is the new deposit held for the sub-accounts."] + DepositUpdated { + who: ::subxt::utils::AccountId32, + identity: ::core::primitive::u128, + subs: ::core::primitive::u128, + }, + } + } + } pub mod impls { use super::runtime_types; #[derive( @@ -49794,6 +51408,11 @@ pub mod api { location: runtime_types::staging_xcm::v3::multilocation::MultiLocation, asset_id: runtime_types::xcm::v3::multiasset::AssetId, }, + #[codec(index = 4)] + V4 { + location: runtime_types::staging_xcm::v4::location::Location, + asset_id: runtime_types::staging_xcm::v4::asset::AssetId, + }, } } pub mod paras_registrar { @@ -50009,6 +51628,9 @@ pub mod api { #[codec(index = 7)] #[doc = "Cannot downgrade lease holding parachain to on-demand."] CannotDowngrade, + #[codec(index = 8)] + #[doc = "There are more cores than supported by the runtime."] + TooManyCores, } } } @@ -50102,6 +51724,125 @@ pub mod api { } pub mod polkadot_runtime_parachains { use super::runtime_types; + pub mod assigner_coretime { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "The `Error` enum of this pallet."] + pub enum Error { + #[codec(index = 0)] + AssignmentsEmpty, + #[codec(index = 1)] + #[doc = "Assignments together exceeded 57600."] + OverScheduled, + #[codec(index = 2)] + #[doc = "Assignments together less than 57600"] + UnderScheduled, + #[codec(index = 3)] + #[doc = "assign_core is only allowed to append new assignments at the end of already existing"] + #[doc = "ones."] + DisallowedInsert, + #[codec(index = 4)] + #[doc = "Tried to insert a schedule for the same core and block number as an existing schedule"] + DuplicateInsert, + #[codec(index = 5)] + #[doc = "Tried to add an unsorted set of assignments"] + AssignmentsNotSorted, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct AssignmentState { + pub ratio: + runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600, + pub remaining: + runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct CoreDescriptor < _0 > { pub queue : :: core :: option :: Option < runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: QueueDescriptor < _0 > > , pub current_work : :: core :: option :: Option < runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: WorkState < _0 > > , } + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct PartsOf57600(pub ::core::primitive::u16); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct QueueDescriptor<_0> { + pub first: _0, + pub last: _0, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct Schedule<_0> { + pub assignments: ::std::vec::Vec<( + runtime_types::pallet_broker::coretime_interface::CoreAssignment, + runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600, + )>, + pub end_hint: ::core::option::Option<_0>, + pub next_schedule: ::core::option::Option<_0>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct WorkState < _0 > { pub assignments : :: std :: vec :: Vec < (runtime_types :: pallet_broker :: coretime_interface :: CoreAssignment , runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: AssignmentState ,) > , pub end_hint : :: core :: option :: Option < _0 > , pub pos : :: core :: primitive :: u16 , pub step : runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: PartsOf57600 , } + } pub mod assigner_on_demand { use super::runtime_types; pub mod pallet { @@ -50154,10 +51895,6 @@ pub mod api { #[doc = "The current spot price is higher than the max amount specified in the `place_order`"] #[doc = "call, making it invalid."] SpotPriceHigherThanMaxAmount, - #[codec(index = 3)] - #[doc = "There are no on demand cores available. `place_order` will not add anything to the"] - #[doc = "queue."] - NoOnDemandCores, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -50198,6 +51935,19 @@ pub mod api { pub core_idx: runtime_types::polkadot_primitives::v6::CoreIndex, pub count: ::core::primitive::u32, } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct EnqueuedOrder { + pub para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, + } } pub mod configuration { use super::runtime_types; @@ -50215,7 +51965,7 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::set_validation_upgrade_cooldown`]."] set_validation_upgrade_cooldown { new : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "See [`Pallet::set_validation_upgrade_delay`]."] set_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "See [`Pallet::set_code_retention_period`]."] set_code_retention_period { new : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "See [`Pallet::set_max_code_size`]."] set_max_code_size { new : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "See [`Pallet::set_max_pov_size`]."] set_max_pov_size { new : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "See [`Pallet::set_max_head_data_size`]."] set_max_head_data_size { new : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "See [`Pallet::set_on_demand_cores`]."] set_on_demand_cores { new : :: core :: primitive :: u32 , } , # [codec (index = 7)] # [doc = "See [`Pallet::set_on_demand_retries`]."] set_on_demand_retries { new : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "See [`Pallet::set_group_rotation_frequency`]."] set_group_rotation_frequency { new : :: core :: primitive :: u32 , } , # [codec (index = 9)] # [doc = "See [`Pallet::set_paras_availability_period`]."] set_paras_availability_period { new : :: core :: primitive :: u32 , } , # [codec (index = 11)] # [doc = "See [`Pallet::set_scheduling_lookahead`]."] set_scheduling_lookahead { new : :: core :: primitive :: u32 , } , # [codec (index = 12)] # [doc = "See [`Pallet::set_max_validators_per_core`]."] set_max_validators_per_core { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 13)] # [doc = "See [`Pallet::set_max_validators`]."] set_max_validators { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 14)] # [doc = "See [`Pallet::set_dispute_period`]."] set_dispute_period { new : :: core :: primitive :: u32 , } , # [codec (index = 15)] # [doc = "See [`Pallet::set_dispute_post_conclusion_acceptance_period`]."] set_dispute_post_conclusion_acceptance_period { new : :: core :: primitive :: u32 , } , # [codec (index = 18)] # [doc = "See [`Pallet::set_no_show_slots`]."] set_no_show_slots { new : :: core :: primitive :: u32 , } , # [codec (index = 19)] # [doc = "See [`Pallet::set_n_delay_tranches`]."] set_n_delay_tranches { new : :: core :: primitive :: u32 , } , # [codec (index = 20)] # [doc = "See [`Pallet::set_zeroth_delay_tranche_width`]."] set_zeroth_delay_tranche_width { new : :: core :: primitive :: u32 , } , # [codec (index = 21)] # [doc = "See [`Pallet::set_needed_approvals`]."] set_needed_approvals { new : :: core :: primitive :: u32 , } , # [codec (index = 22)] # [doc = "See [`Pallet::set_relay_vrf_modulo_samples`]."] set_relay_vrf_modulo_samples { new : :: core :: primitive :: u32 , } , # [codec (index = 23)] # [doc = "See [`Pallet::set_max_upward_queue_count`]."] set_max_upward_queue_count { new : :: core :: primitive :: u32 , } , # [codec (index = 24)] # [doc = "See [`Pallet::set_max_upward_queue_size`]."] set_max_upward_queue_size { new : :: core :: primitive :: u32 , } , # [codec (index = 25)] # [doc = "See [`Pallet::set_max_downward_message_size`]."] set_max_downward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 27)] # [doc = "See [`Pallet::set_max_upward_message_size`]."] set_max_upward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 28)] # [doc = "See [`Pallet::set_max_upward_message_num_per_candidate`]."] set_max_upward_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 29)] # [doc = "See [`Pallet::set_hrmp_open_request_ttl`]."] set_hrmp_open_request_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 30)] # [doc = "See [`Pallet::set_hrmp_sender_deposit`]."] set_hrmp_sender_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 31)] # [doc = "See [`Pallet::set_hrmp_recipient_deposit`]."] set_hrmp_recipient_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 32)] # [doc = "See [`Pallet::set_hrmp_channel_max_capacity`]."] set_hrmp_channel_max_capacity { new : :: core :: primitive :: u32 , } , # [codec (index = 33)] # [doc = "See [`Pallet::set_hrmp_channel_max_total_size`]."] set_hrmp_channel_max_total_size { new : :: core :: primitive :: u32 , } , # [codec (index = 34)] # [doc = "See [`Pallet::set_hrmp_max_parachain_inbound_channels`]."] set_hrmp_max_parachain_inbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 36)] # [doc = "See [`Pallet::set_hrmp_channel_max_message_size`]."] set_hrmp_channel_max_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 37)] # [doc = "See [`Pallet::set_hrmp_max_parachain_outbound_channels`]."] set_hrmp_max_parachain_outbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 39)] # [doc = "See [`Pallet::set_hrmp_max_message_num_per_candidate`]."] set_hrmp_max_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 42)] # [doc = "See [`Pallet::set_pvf_voting_ttl`]."] set_pvf_voting_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 43)] # [doc = "See [`Pallet::set_minimum_validation_upgrade_delay`]."] set_minimum_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 44)] # [doc = "See [`Pallet::set_bypass_consistency_check`]."] set_bypass_consistency_check { new : :: core :: primitive :: bool , } , # [codec (index = 45)] # [doc = "See [`Pallet::set_async_backing_params`]."] set_async_backing_params { new : runtime_types :: polkadot_primitives :: v6 :: async_backing :: AsyncBackingParams , } , # [codec (index = 46)] # [doc = "See [`Pallet::set_executor_params`]."] set_executor_params { new : runtime_types :: polkadot_primitives :: v6 :: executor_params :: ExecutorParams , } , # [codec (index = 47)] # [doc = "See [`Pallet::set_on_demand_base_fee`]."] set_on_demand_base_fee { new : :: core :: primitive :: u128 , } , # [codec (index = 48)] # [doc = "See [`Pallet::set_on_demand_fee_variability`]."] set_on_demand_fee_variability { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 49)] # [doc = "See [`Pallet::set_on_demand_queue_max_size`]."] set_on_demand_queue_max_size { new : :: core :: primitive :: u32 , } , # [codec (index = 50)] # [doc = "See [`Pallet::set_on_demand_target_queue_utilization`]."] set_on_demand_target_queue_utilization { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 51)] # [doc = "See [`Pallet::set_on_demand_ttl`]."] set_on_demand_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 52)] # [doc = "See [`Pallet::set_minimum_backing_votes`]."] set_minimum_backing_votes { new : :: core :: primitive :: u32 , } , } + # [codec (index = 0)] # [doc = "See [`Pallet::set_validation_upgrade_cooldown`]."] set_validation_upgrade_cooldown { new : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "See [`Pallet::set_validation_upgrade_delay`]."] set_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "See [`Pallet::set_code_retention_period`]."] set_code_retention_period { new : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "See [`Pallet::set_max_code_size`]."] set_max_code_size { new : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "See [`Pallet::set_max_pov_size`]."] set_max_pov_size { new : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "See [`Pallet::set_max_head_data_size`]."] set_max_head_data_size { new : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "See [`Pallet::set_coretime_cores`]."] set_coretime_cores { new : :: core :: primitive :: u32 , } , # [codec (index = 7)] # [doc = "See [`Pallet::set_on_demand_retries`]."] set_on_demand_retries { new : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "See [`Pallet::set_group_rotation_frequency`]."] set_group_rotation_frequency { new : :: core :: primitive :: u32 , } , # [codec (index = 9)] # [doc = "See [`Pallet::set_paras_availability_period`]."] set_paras_availability_period { new : :: core :: primitive :: u32 , } , # [codec (index = 11)] # [doc = "See [`Pallet::set_scheduling_lookahead`]."] set_scheduling_lookahead { new : :: core :: primitive :: u32 , } , # [codec (index = 12)] # [doc = "See [`Pallet::set_max_validators_per_core`]."] set_max_validators_per_core { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 13)] # [doc = "See [`Pallet::set_max_validators`]."] set_max_validators { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 14)] # [doc = "See [`Pallet::set_dispute_period`]."] set_dispute_period { new : :: core :: primitive :: u32 , } , # [codec (index = 15)] # [doc = "See [`Pallet::set_dispute_post_conclusion_acceptance_period`]."] set_dispute_post_conclusion_acceptance_period { new : :: core :: primitive :: u32 , } , # [codec (index = 18)] # [doc = "See [`Pallet::set_no_show_slots`]."] set_no_show_slots { new : :: core :: primitive :: u32 , } , # [codec (index = 19)] # [doc = "See [`Pallet::set_n_delay_tranches`]."] set_n_delay_tranches { new : :: core :: primitive :: u32 , } , # [codec (index = 20)] # [doc = "See [`Pallet::set_zeroth_delay_tranche_width`]."] set_zeroth_delay_tranche_width { new : :: core :: primitive :: u32 , } , # [codec (index = 21)] # [doc = "See [`Pallet::set_needed_approvals`]."] set_needed_approvals { new : :: core :: primitive :: u32 , } , # [codec (index = 22)] # [doc = "See [`Pallet::set_relay_vrf_modulo_samples`]."] set_relay_vrf_modulo_samples { new : :: core :: primitive :: u32 , } , # [codec (index = 23)] # [doc = "See [`Pallet::set_max_upward_queue_count`]."] set_max_upward_queue_count { new : :: core :: primitive :: u32 , } , # [codec (index = 24)] # [doc = "See [`Pallet::set_max_upward_queue_size`]."] set_max_upward_queue_size { new : :: core :: primitive :: u32 , } , # [codec (index = 25)] # [doc = "See [`Pallet::set_max_downward_message_size`]."] set_max_downward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 27)] # [doc = "See [`Pallet::set_max_upward_message_size`]."] set_max_upward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 28)] # [doc = "See [`Pallet::set_max_upward_message_num_per_candidate`]."] set_max_upward_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 29)] # [doc = "See [`Pallet::set_hrmp_open_request_ttl`]."] set_hrmp_open_request_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 30)] # [doc = "See [`Pallet::set_hrmp_sender_deposit`]."] set_hrmp_sender_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 31)] # [doc = "See [`Pallet::set_hrmp_recipient_deposit`]."] set_hrmp_recipient_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 32)] # [doc = "See [`Pallet::set_hrmp_channel_max_capacity`]."] set_hrmp_channel_max_capacity { new : :: core :: primitive :: u32 , } , # [codec (index = 33)] # [doc = "See [`Pallet::set_hrmp_channel_max_total_size`]."] set_hrmp_channel_max_total_size { new : :: core :: primitive :: u32 , } , # [codec (index = 34)] # [doc = "See [`Pallet::set_hrmp_max_parachain_inbound_channels`]."] set_hrmp_max_parachain_inbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 36)] # [doc = "See [`Pallet::set_hrmp_channel_max_message_size`]."] set_hrmp_channel_max_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 37)] # [doc = "See [`Pallet::set_hrmp_max_parachain_outbound_channels`]."] set_hrmp_max_parachain_outbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 39)] # [doc = "See [`Pallet::set_hrmp_max_message_num_per_candidate`]."] set_hrmp_max_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 42)] # [doc = "See [`Pallet::set_pvf_voting_ttl`]."] set_pvf_voting_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 43)] # [doc = "See [`Pallet::set_minimum_validation_upgrade_delay`]."] set_minimum_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 44)] # [doc = "See [`Pallet::set_bypass_consistency_check`]."] set_bypass_consistency_check { new : :: core :: primitive :: bool , } , # [codec (index = 45)] # [doc = "See [`Pallet::set_async_backing_params`]."] set_async_backing_params { new : runtime_types :: polkadot_primitives :: v6 :: async_backing :: AsyncBackingParams , } , # [codec (index = 46)] # [doc = "See [`Pallet::set_executor_params`]."] set_executor_params { new : runtime_types :: polkadot_primitives :: v6 :: executor_params :: ExecutorParams , } , # [codec (index = 47)] # [doc = "See [`Pallet::set_on_demand_base_fee`]."] set_on_demand_base_fee { new : :: core :: primitive :: u128 , } , # [codec (index = 48)] # [doc = "See [`Pallet::set_on_demand_fee_variability`]."] set_on_demand_fee_variability { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 49)] # [doc = "See [`Pallet::set_on_demand_queue_max_size`]."] set_on_demand_queue_max_size { new : :: core :: primitive :: u32 , } , # [codec (index = 50)] # [doc = "See [`Pallet::set_on_demand_target_queue_utilization`]."] set_on_demand_target_queue_utilization { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 51)] # [doc = "See [`Pallet::set_on_demand_ttl`]."] set_on_demand_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 52)] # [doc = "See [`Pallet::set_minimum_backing_votes`]."] set_minimum_backing_votes { new : :: core :: primitive :: u32 , } , # [codec (index = 53)] # [doc = "See [`Pallet::set_node_feature`]."] set_node_feature { index : :: core :: primitive :: u8 , value : :: core :: primitive :: bool , } , # [codec (index = 54)] # [doc = "See [`Pallet::set_approval_voting_params`]."] set_approval_voting_params { new : runtime_types :: polkadot_primitives :: vstaging :: ApprovalVotingParams , } , } #[derive( :: subxt :: ext :: codec :: Decode, :: subxt :: ext :: codec :: Encode, @@ -50267,7 +52017,7 @@ pub mod api { pub executor_params: runtime_types::polkadot_primitives::v6::executor_params::ExecutorParams, pub code_retention_period: _0, - pub on_demand_cores: ::core::primitive::u32, + pub coretime_cores: ::core::primitive::u32, pub on_demand_retries: ::core::primitive::u32, pub on_demand_queue_max_size: ::core::primitive::u32, pub on_demand_target_queue_utilization: @@ -50291,6 +52041,68 @@ pub mod api { pub pvf_voting_ttl: ::core::primitive::u32, pub minimum_validation_upgrade_delay: _0, pub minimum_backing_votes: ::core::primitive::u32, + pub node_features: ::subxt::utils::bits::DecodedBits< + ::core::primitive::u8, + ::subxt::utils::bits::Lsb0, + >, + pub approval_voting_params: + runtime_types::polkadot_primitives::vstaging::ApprovalVotingParams, + } + } + pub mod coretime { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + # [codec (index = 1)] # [doc = "See [`Pallet::request_core_count`]."] request_core_count { count : :: core :: primitive :: u16 , } , # [codec (index = 4)] # [doc = "See [`Pallet::assign_core`]."] assign_core { core : :: core :: primitive :: u16 , begin : :: core :: primitive :: u32 , assignment : :: std :: vec :: Vec < (runtime_types :: pallet_broker :: coretime_interface :: CoreAssignment , runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: PartsOf57600 ,) > , end_hint : :: core :: option :: Option < :: core :: primitive :: u32 > , } , } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "The `Error` enum of this pallet."] + pub enum Error { + #[codec(index = 0)] + #[doc = "The paraid making the call is not the coretime brokerage system parachain."] + NotBroker, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + #[doc = "The `Event` enum of this pallet"] + pub enum Event { + #[codec(index = 0)] + #[doc = "The broker chain has asked for revenue information for a specific block."] + RevenueInfoRequested { when: ::core::primitive::u32 }, + #[codec(index = 1)] + #[doc = "A core has received a new assignment from the broker chain."] + CoreAssigned { + core: runtime_types::polkadot_primitives::v6::CoreIndex, + }, + } } } pub mod disputes { @@ -51193,6 +53005,9 @@ pub mod api { #[codec(index = 5)] #[doc = "A dispute statement was invalid."] DisputeInvalid, + #[codec(index = 6)] + #[doc = "A candidate was backed by a disabled validator"] + BackedByDisabled, } } } @@ -51210,8 +53025,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - pub struct Assignment { - pub para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, + pub enum Assignment { + #[codec(index = 0)] + Pool { + para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, + core_index: runtime_types::polkadot_primitives::v6::CoreIndex, + }, + #[codec(index = 1)] + Bulk(runtime_types::polkadot_parachain_primitives::primitives::Id), } } pub mod pallet { @@ -51477,8 +53298,6 @@ pub mod api { Session(runtime_types::pallet_session::pallet::Call), #[codec(index = 10)] Grandpa(runtime_types::pallet_grandpa::pallet::Call), - #[codec(index = 11)] - ImOnline(runtime_types::pallet_im_online::pallet::Call), #[codec(index = 18)] Treasury(runtime_types::pallet_treasury::pallet::Call), #[codec(index = 20)] @@ -51559,8 +53378,14 @@ pub mod api { Auctions(runtime_types::polkadot_runtime_common::auctions::pallet::Call), #[codec(index = 73)] Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Call), + #[codec(index = 74)] + Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Call), #[codec(index = 99)] XcmPallet(runtime_types::pallet_xcm::pallet::Call), + #[codec(index = 248)] + IdentityMigrator( + runtime_types::polkadot_runtime_common::identity_migrator::pallet::Call, + ), #[codec(index = 250)] ParasSudoWrapper( runtime_types::polkadot_runtime_common::paras_sudo_wrapper::pallet::Call, @@ -51601,8 +53426,6 @@ pub mod api { Session(runtime_types::pallet_session::pallet::Error), #[codec(index = 10)] Grandpa(runtime_types::pallet_grandpa::pallet::Error), - #[codec(index = 11)] - ImOnline(runtime_types::pallet_im_online::pallet::Error), #[codec(index = 18)] Treasury(runtime_types::pallet_treasury::pallet::Error), #[codec(index = 20)] @@ -51671,6 +53494,10 @@ pub mod api { OnDemandAssignmentProvider( runtime_types::polkadot_runtime_parachains::assigner_on_demand::pallet::Error, ), + #[codec(index = 68)] + CoretimeAssignmentProvider( + runtime_types::polkadot_runtime_parachains::assigner_coretime::pallet::Error, + ), #[codec(index = 70)] Registrar(runtime_types::polkadot_runtime_common::paras_registrar::pallet::Error), #[codec(index = 71)] @@ -51679,6 +53506,8 @@ pub mod api { Auctions(runtime_types::polkadot_runtime_common::auctions::pallet::Error), #[codec(index = 73)] Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Error), + #[codec(index = 74)] + Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Error), #[codec(index = 99)] XcmPallet(runtime_types::pallet_xcm::pallet::Error), #[codec(index = 250)] @@ -51719,8 +53548,6 @@ pub mod api { Session(runtime_types::pallet_session::pallet::Event), #[codec(index = 10)] Grandpa(runtime_types::pallet_grandpa::pallet::Event), - #[codec(index = 11)] - ImOnline(runtime_types::pallet_im_online::pallet::Event), #[codec(index = 18)] Treasury(runtime_types::pallet_treasury::pallet::Event), #[codec(index = 20)] @@ -51785,8 +53612,14 @@ pub mod api { Auctions(runtime_types::polkadot_runtime_common::auctions::pallet::Event), #[codec(index = 73)] Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Event), + #[codec(index = 74)] + Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Event), #[codec(index = 99)] XcmPallet(runtime_types::pallet_xcm::pallet::Event), + #[codec(index = 248)] + IdentityMigrator( + runtime_types::polkadot_runtime_common::identity_migrator::pallet::Event, + ), #[codec(index = 251)] AssignedSlots( runtime_types::polkadot_runtime_common::assigned_slots::pallet::Event, @@ -51815,6 +53648,8 @@ pub mod api { Preimage(runtime_types::pallet_preimage::pallet::HoldReason), #[codec(index = 38)] Nis(runtime_types::pallet_nis::pallet::HoldReason), + #[codec(index = 254)] + StateTrieMigration(runtime_types::pallet_state_trie_migration::pallet::HoldReason), } #[derive( :: subxt :: ext :: codec :: Decode, @@ -51829,7 +53664,6 @@ pub mod api { pub struct SessionKeys { pub grandpa: runtime_types::sp_consensus_grandpa::app::Public, pub babe: runtime_types::sp_consensus_babe::app::Public, - pub im_online: runtime_types::pallet_im_online::sr25519::app_sr25519::Public, pub para_validator: runtime_types::polkadot_primitives::v6::validator_app::Public, pub para_assignment: runtime_types::polkadot_primitives::v6::assignment_app::Public, pub authority_discovery: runtime_types::sp_authority_discovery::app::Public, @@ -52455,7 +54289,7 @@ pub mod api { #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] pub struct VrfSignature { - pub output: [::core::primitive::u8; 32usize], + pub pre_output: [::core::primitive::u8; 32usize], pub proof: [::core::primitive::u8; 64usize], } } @@ -53611,6 +55445,858 @@ pub mod api { } } } + pub mod v4 { + use super::runtime_types; + pub mod asset { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct Asset { + pub id: runtime_types::staging_xcm::v4::asset::AssetId, + pub fun: runtime_types::staging_xcm::v4::asset::Fungibility, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum AssetFilter { + #[codec(index = 0)] + Definite(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 1)] + Wild(runtime_types::staging_xcm::v4::asset::WildAsset), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct AssetId(pub runtime_types::staging_xcm::v4::location::Location); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum AssetInstance { + #[codec(index = 0)] + Undefined, + #[codec(index = 1)] + Index(#[codec(compact)] ::core::primitive::u128), + #[codec(index = 2)] + Array4([::core::primitive::u8; 4usize]), + #[codec(index = 3)] + Array8([::core::primitive::u8; 8usize]), + #[codec(index = 4)] + Array16([::core::primitive::u8; 16usize]), + #[codec(index = 5)] + Array32([::core::primitive::u8; 32usize]), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct Assets( + pub ::std::vec::Vec, + ); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum Fungibility { + #[codec(index = 0)] + Fungible(#[codec(compact)] ::core::primitive::u128), + #[codec(index = 1)] + NonFungible(runtime_types::staging_xcm::v4::asset::AssetInstance), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum WildAsset { + #[codec(index = 0)] + All, + #[codec(index = 1)] + AllOf { + id: runtime_types::staging_xcm::v4::asset::AssetId, + fun: runtime_types::staging_xcm::v4::asset::WildFungibility, + }, + #[codec(index = 2)] + AllCounted(#[codec(compact)] ::core::primitive::u32), + #[codec(index = 3)] + AllOfCounted { + id: runtime_types::staging_xcm::v4::asset::AssetId, + fun: runtime_types::staging_xcm::v4::asset::WildFungibility, + #[codec(compact)] + count: ::core::primitive::u32, + }, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum WildFungibility { + #[codec(index = 0)] + Fungible, + #[codec(index = 1)] + NonFungible, + } + } + pub mod junction { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum Junction { + #[codec(index = 0)] + Parachain(#[codec(compact)] ::core::primitive::u32), + #[codec(index = 1)] + AccountId32 { + network: ::core::option::Option< + runtime_types::staging_xcm::v4::junction::NetworkId, + >, + id: [::core::primitive::u8; 32usize], + }, + #[codec(index = 2)] + AccountIndex64 { + network: ::core::option::Option< + runtime_types::staging_xcm::v4::junction::NetworkId, + >, + #[codec(compact)] + index: ::core::primitive::u64, + }, + #[codec(index = 3)] + AccountKey20 { + network: ::core::option::Option< + runtime_types::staging_xcm::v4::junction::NetworkId, + >, + key: [::core::primitive::u8; 20usize], + }, + #[codec(index = 4)] + PalletInstance(::core::primitive::u8), + #[codec(index = 5)] + GeneralIndex(#[codec(compact)] ::core::primitive::u128), + #[codec(index = 6)] + GeneralKey { + length: ::core::primitive::u8, + data: [::core::primitive::u8; 32usize], + }, + #[codec(index = 7)] + OnlyChild, + #[codec(index = 8)] + Plurality { + id: runtime_types::xcm::v3::junction::BodyId, + part: runtime_types::xcm::v3::junction::BodyPart, + }, + #[codec(index = 9)] + GlobalConsensus(runtime_types::staging_xcm::v4::junction::NetworkId), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum NetworkId { + #[codec(index = 0)] + ByGenesis([::core::primitive::u8; 32usize]), + #[codec(index = 1)] + ByFork { + block_number: ::core::primitive::u64, + block_hash: [::core::primitive::u8; 32usize], + }, + #[codec(index = 2)] + Polkadot, + #[codec(index = 3)] + Kusama, + #[codec(index = 4)] + Westend, + #[codec(index = 5)] + Rococo, + #[codec(index = 6)] + Wococo, + #[codec(index = 7)] + Ethereum { + #[codec(compact)] + chain_id: ::core::primitive::u64, + }, + #[codec(index = 8)] + BitcoinCore, + #[codec(index = 9)] + BitcoinCash, + #[codec(index = 10)] + PolkadotBulletin, + } + } + pub mod junctions { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum Junctions { + #[codec(index = 0)] + Here, + #[codec(index = 1)] + X1([runtime_types::staging_xcm::v4::junction::Junction; 1usize]), + #[codec(index = 2)] + X2([runtime_types::staging_xcm::v4::junction::Junction; 2usize]), + #[codec(index = 3)] + X3([runtime_types::staging_xcm::v4::junction::Junction; 3usize]), + #[codec(index = 4)] + X4([runtime_types::staging_xcm::v4::junction::Junction; 4usize]), + #[codec(index = 5)] + X5([runtime_types::staging_xcm::v4::junction::Junction; 5usize]), + #[codec(index = 6)] + X6([runtime_types::staging_xcm::v4::junction::Junction; 6usize]), + #[codec(index = 7)] + X7([runtime_types::staging_xcm::v4::junction::Junction; 7usize]), + #[codec(index = 8)] + X8([runtime_types::staging_xcm::v4::junction::Junction; 8usize]), + } + } + pub mod location { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct Location { + pub parents: ::core::primitive::u8, + pub interior: runtime_types::staging_xcm::v4::junctions::Junctions, + } + } + pub mod traits { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum Outcome { + #[codec(index = 0)] + Complete { + used: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 1)] + Incomplete { + used: runtime_types::sp_weights::weight_v2::Weight, + error: runtime_types::xcm::v3::traits::Error, + }, + #[codec(index = 2)] + Error { + error: runtime_types::xcm::v3::traits::Error, + }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum Instruction { + #[codec(index = 0)] + WithdrawAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 1)] + ReserveAssetDeposited(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 2)] + ReceiveTeleportedAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 3)] + QueryResponse { + #[codec(compact)] + query_id: ::core::primitive::u64, + response: runtime_types::staging_xcm::v4::Response, + max_weight: runtime_types::sp_weights::weight_v2::Weight, + querier: ::core::option::Option< + runtime_types::staging_xcm::v4::location::Location, + >, + }, + #[codec(index = 4)] + TransferAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + beneficiary: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 5)] + TransferReserveAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm, + }, + #[codec(index = 6)] + Transact { + origin_kind: runtime_types::xcm::v2::OriginKind, + require_weight_at_most: runtime_types::sp_weights::weight_v2::Weight, + call: runtime_types::xcm::double_encoded::DoubleEncoded, + }, + #[codec(index = 7)] + HrmpNewChannelOpenRequest { + #[codec(compact)] + sender: ::core::primitive::u32, + #[codec(compact)] + max_message_size: ::core::primitive::u32, + #[codec(compact)] + max_capacity: ::core::primitive::u32, + }, + #[codec(index = 8)] + HrmpChannelAccepted { + #[codec(compact)] + recipient: ::core::primitive::u32, + }, + #[codec(index = 9)] + HrmpChannelClosing { + #[codec(compact)] + initiator: ::core::primitive::u32, + #[codec(compact)] + sender: ::core::primitive::u32, + #[codec(compact)] + recipient: ::core::primitive::u32, + }, + #[codec(index = 10)] + ClearOrigin, + #[codec(index = 11)] + DescendOrigin(runtime_types::staging_xcm::v4::junctions::Junctions), + #[codec(index = 12)] + ReportError(runtime_types::staging_xcm::v4::QueryResponseInfo), + #[codec(index = 13)] + DepositAsset { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + beneficiary: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 14)] + DepositReserveAsset { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm, + }, + #[codec(index = 15)] + ExchangeAsset { + give: runtime_types::staging_xcm::v4::asset::AssetFilter, + want: runtime_types::staging_xcm::v4::asset::Assets, + maximal: ::core::primitive::bool, + }, + #[codec(index = 16)] + InitiateReserveWithdraw { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + reserve: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm, + }, + #[codec(index = 17)] + InitiateTeleport { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm, + }, + #[codec(index = 18)] + ReportHolding { + response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + }, + #[codec(index = 19)] + BuyExecution { + fees: runtime_types::staging_xcm::v4::asset::Asset, + weight_limit: runtime_types::xcm::v3::WeightLimit, + }, + #[codec(index = 20)] + RefundSurplus, + #[codec(index = 21)] + SetErrorHandler(runtime_types::staging_xcm::v4::Xcm), + #[codec(index = 22)] + SetAppendix(runtime_types::staging_xcm::v4::Xcm), + #[codec(index = 23)] + ClearError, + #[codec(index = 24)] + ClaimAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + ticket: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 25)] + Trap(#[codec(compact)] ::core::primitive::u64), + #[codec(index = 26)] + SubscribeVersion { + #[codec(compact)] + query_id: ::core::primitive::u64, + max_response_weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 27)] + UnsubscribeVersion, + #[codec(index = 28)] + BurnAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 29)] + ExpectAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 30)] + ExpectOrigin( + ::core::option::Option, + ), + #[codec(index = 31)] + ExpectError( + ::core::option::Option<( + ::core::primitive::u32, + runtime_types::xcm::v3::traits::Error, + )>, + ), + #[codec(index = 32)] + ExpectTransactStatus(runtime_types::xcm::v3::MaybeErrorCode), + #[codec(index = 33)] + QueryPallet { + module_name: ::std::vec::Vec<::core::primitive::u8>, + response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, + }, + #[codec(index = 34)] + ExpectPallet { + #[codec(compact)] + index: ::core::primitive::u32, + name: ::std::vec::Vec<::core::primitive::u8>, + module_name: ::std::vec::Vec<::core::primitive::u8>, + #[codec(compact)] + crate_major: ::core::primitive::u32, + #[codec(compact)] + min_crate_minor: ::core::primitive::u32, + }, + #[codec(index = 35)] + ReportTransactStatus(runtime_types::staging_xcm::v4::QueryResponseInfo), + #[codec(index = 36)] + ClearTransactStatus, + #[codec(index = 37)] + UniversalOrigin(runtime_types::staging_xcm::v4::junction::Junction), + #[codec(index = 38)] + ExportMessage { + network: runtime_types::staging_xcm::v4::junction::NetworkId, + destination: runtime_types::staging_xcm::v4::junctions::Junctions, + xcm: runtime_types::staging_xcm::v4::Xcm, + }, + #[codec(index = 39)] + LockAsset { + asset: runtime_types::staging_xcm::v4::asset::Asset, + unlocker: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 40)] + UnlockAsset { + asset: runtime_types::staging_xcm::v4::asset::Asset, + target: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 41)] + NoteUnlockable { + asset: runtime_types::staging_xcm::v4::asset::Asset, + owner: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 42)] + RequestUnlock { + asset: runtime_types::staging_xcm::v4::asset::Asset, + locker: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 43)] + SetFeesMode { + jit_withdraw: ::core::primitive::bool, + }, + #[codec(index = 44)] + SetTopic([::core::primitive::u8; 32usize]), + #[codec(index = 45)] + ClearTopic, + #[codec(index = 46)] + AliasOrigin(runtime_types::staging_xcm::v4::location::Location), + #[codec(index = 47)] + UnpaidExecution { + weight_limit: runtime_types::xcm::v3::WeightLimit, + check_origin: ::core::option::Option< + runtime_types::staging_xcm::v4::location::Location, + >, + }, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum Instruction2 { + #[codec(index = 0)] + WithdrawAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 1)] + ReserveAssetDeposited(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 2)] + ReceiveTeleportedAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 3)] + QueryResponse { + #[codec(compact)] + query_id: ::core::primitive::u64, + response: runtime_types::staging_xcm::v4::Response, + max_weight: runtime_types::sp_weights::weight_v2::Weight, + querier: ::core::option::Option< + runtime_types::staging_xcm::v4::location::Location, + >, + }, + #[codec(index = 4)] + TransferAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + beneficiary: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 5)] + TransferReserveAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm, + }, + #[codec(index = 6)] + Transact { + origin_kind: runtime_types::xcm::v2::OriginKind, + require_weight_at_most: runtime_types::sp_weights::weight_v2::Weight, + call: runtime_types::xcm::double_encoded::DoubleEncoded2, + }, + #[codec(index = 7)] + HrmpNewChannelOpenRequest { + #[codec(compact)] + sender: ::core::primitive::u32, + #[codec(compact)] + max_message_size: ::core::primitive::u32, + #[codec(compact)] + max_capacity: ::core::primitive::u32, + }, + #[codec(index = 8)] + HrmpChannelAccepted { + #[codec(compact)] + recipient: ::core::primitive::u32, + }, + #[codec(index = 9)] + HrmpChannelClosing { + #[codec(compact)] + initiator: ::core::primitive::u32, + #[codec(compact)] + sender: ::core::primitive::u32, + #[codec(compact)] + recipient: ::core::primitive::u32, + }, + #[codec(index = 10)] + ClearOrigin, + #[codec(index = 11)] + DescendOrigin(runtime_types::staging_xcm::v4::junctions::Junctions), + #[codec(index = 12)] + ReportError(runtime_types::staging_xcm::v4::QueryResponseInfo), + #[codec(index = 13)] + DepositAsset { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + beneficiary: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 14)] + DepositReserveAsset { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm, + }, + #[codec(index = 15)] + ExchangeAsset { + give: runtime_types::staging_xcm::v4::asset::AssetFilter, + want: runtime_types::staging_xcm::v4::asset::Assets, + maximal: ::core::primitive::bool, + }, + #[codec(index = 16)] + InitiateReserveWithdraw { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + reserve: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm, + }, + #[codec(index = 17)] + InitiateTeleport { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm, + }, + #[codec(index = 18)] + ReportHolding { + response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + }, + #[codec(index = 19)] + BuyExecution { + fees: runtime_types::staging_xcm::v4::asset::Asset, + weight_limit: runtime_types::xcm::v3::WeightLimit, + }, + #[codec(index = 20)] + RefundSurplus, + #[codec(index = 21)] + SetErrorHandler(runtime_types::staging_xcm::v4::Xcm2), + #[codec(index = 22)] + SetAppendix(runtime_types::staging_xcm::v4::Xcm2), + #[codec(index = 23)] + ClearError, + #[codec(index = 24)] + ClaimAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + ticket: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 25)] + Trap(#[codec(compact)] ::core::primitive::u64), + #[codec(index = 26)] + SubscribeVersion { + #[codec(compact)] + query_id: ::core::primitive::u64, + max_response_weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 27)] + UnsubscribeVersion, + #[codec(index = 28)] + BurnAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 29)] + ExpectAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 30)] + ExpectOrigin( + ::core::option::Option, + ), + #[codec(index = 31)] + ExpectError( + ::core::option::Option<( + ::core::primitive::u32, + runtime_types::xcm::v3::traits::Error, + )>, + ), + #[codec(index = 32)] + ExpectTransactStatus(runtime_types::xcm::v3::MaybeErrorCode), + #[codec(index = 33)] + QueryPallet { + module_name: ::std::vec::Vec<::core::primitive::u8>, + response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, + }, + #[codec(index = 34)] + ExpectPallet { + #[codec(compact)] + index: ::core::primitive::u32, + name: ::std::vec::Vec<::core::primitive::u8>, + module_name: ::std::vec::Vec<::core::primitive::u8>, + #[codec(compact)] + crate_major: ::core::primitive::u32, + #[codec(compact)] + min_crate_minor: ::core::primitive::u32, + }, + #[codec(index = 35)] + ReportTransactStatus(runtime_types::staging_xcm::v4::QueryResponseInfo), + #[codec(index = 36)] + ClearTransactStatus, + #[codec(index = 37)] + UniversalOrigin(runtime_types::staging_xcm::v4::junction::Junction), + #[codec(index = 38)] + ExportMessage { + network: runtime_types::staging_xcm::v4::junction::NetworkId, + destination: runtime_types::staging_xcm::v4::junctions::Junctions, + xcm: runtime_types::staging_xcm::v4::Xcm, + }, + #[codec(index = 39)] + LockAsset { + asset: runtime_types::staging_xcm::v4::asset::Asset, + unlocker: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 40)] + UnlockAsset { + asset: runtime_types::staging_xcm::v4::asset::Asset, + target: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 41)] + NoteUnlockable { + asset: runtime_types::staging_xcm::v4::asset::Asset, + owner: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 42)] + RequestUnlock { + asset: runtime_types::staging_xcm::v4::asset::Asset, + locker: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 43)] + SetFeesMode { + jit_withdraw: ::core::primitive::bool, + }, + #[codec(index = 44)] + SetTopic([::core::primitive::u8; 32usize]), + #[codec(index = 45)] + ClearTopic, + #[codec(index = 46)] + AliasOrigin(runtime_types::staging_xcm::v4::location::Location), + #[codec(index = 47)] + UnpaidExecution { + weight_limit: runtime_types::xcm::v3::WeightLimit, + check_origin: ::core::option::Option< + runtime_types::staging_xcm::v4::location::Location, + >, + }, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct PalletInfo { + #[codec(compact)] + pub index: ::core::primitive::u32, + pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + #[codec(compact)] + pub major: ::core::primitive::u32, + #[codec(compact)] + pub minor: ::core::primitive::u32, + #[codec(compact)] + pub patch: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct QueryResponseInfo { + pub destination: runtime_types::staging_xcm::v4::location::Location, + #[codec(compact)] + pub query_id: ::core::primitive::u64, + pub max_weight: runtime_types::sp_weights::weight_v2::Weight, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum Response { + #[codec(index = 0)] + Null, + #[codec(index = 1)] + Assets(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 2)] + ExecutionResult( + ::core::option::Option<( + ::core::primitive::u32, + runtime_types::xcm::v3::traits::Error, + )>, + ), + #[codec(index = 3)] + Version(::core::primitive::u32), + #[codec(index = 4)] + PalletsInfo( + runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::staging_xcm::v4::PalletInfo, + >, + ), + #[codec(index = 5)] + DispatchResult(runtime_types::xcm::v3::MaybeErrorCode), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct Xcm(pub ::std::vec::Vec); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub struct Xcm2(pub ::std::vec::Vec); + } } pub mod xcm { use super::runtime_types; @@ -54636,6 +57322,8 @@ pub mod api { BitcoinCore, #[codec(index = 9)] BitcoinCash, + #[codec(index = 10)] + PolkadotBulletin, } } pub mod junctions { @@ -54953,27 +57641,6 @@ pub mod api { #[codec(index = 39)] ExceedsStackLimit, } - #[derive( - :: subxt :: ext :: codec :: Decode, - :: subxt :: ext :: codec :: Encode, - :: subxt :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - pub enum Outcome { - #[codec(index = 0)] - Complete(runtime_types::sp_weights::weight_v2::Weight), - #[codec(index = 1)] - Incomplete( - runtime_types::sp_weights::weight_v2::Weight, - runtime_types::xcm::v3::traits::Error, - ), - #[codec(index = 2)] - Error(runtime_types::xcm::v3::traits::Error), - } } #[derive( :: subxt :: ext :: codec :: Decode, @@ -55568,6 +58235,8 @@ pub mod api { pub enum VersionedAssetId { #[codec(index = 3)] V3(runtime_types::xcm::v3::multiasset::AssetId), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::asset::AssetId), } #[derive( :: subxt :: ext :: codec :: Decode, @@ -55579,11 +58248,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - pub enum VersionedMultiAssets { + pub enum VersionedAssets { #[codec(index = 1)] V2(runtime_types::xcm::v2::multiasset::MultiAssets), #[codec(index = 3)] V3(runtime_types::xcm::v3::multiasset::MultiAssets), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::asset::Assets), } #[derive( :: subxt :: ext :: codec :: Decode, @@ -55595,11 +58266,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - pub enum VersionedMultiLocation { + pub enum VersionedLocation { #[codec(index = 1)] V2(runtime_types::xcm::v2::multilocation::MultiLocation), #[codec(index = 3)] V3(runtime_types::staging_xcm::v3::multilocation::MultiLocation), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::location::Location), } #[derive( :: subxt :: ext :: codec :: Decode, @@ -55616,6 +58289,8 @@ pub mod api { V2(runtime_types::xcm::v2::Response), #[codec(index = 3)] V3(runtime_types::xcm::v3::Response), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::Response), } #[derive( :: subxt :: ext :: codec :: Decode, @@ -55632,6 +58307,8 @@ pub mod api { V2(runtime_types::xcm::v2::Xcm), #[codec(index = 3)] V3(runtime_types::xcm::v3::Xcm), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::Xcm), } #[derive( :: subxt :: ext :: codec :: Decode, @@ -55648,6 +58325,8 @@ pub mod api { V2(runtime_types::xcm::v2::Xcm2), #[codec(index = 3)] V3(runtime_types::xcm::v3::Xcm2), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::Xcm2), } } } diff --git a/testing/substrate-runner/src/lib.rs b/testing/substrate-runner/src/lib.rs index 2b0434872a..15d390b793 100644 --- a/testing/substrate-runner/src/lib.rs +++ b/testing/substrate-runner/src/lib.rs @@ -21,7 +21,7 @@ pub struct SubstrateNodeBuilder { impl Default for SubstrateNodeBuilder { fn default() -> Self { - Self::new() + SubstrateNodeBuilder::new() } } @@ -29,11 +29,23 @@ impl SubstrateNodeBuilder { /// Configure a new Substrate node. pub fn new() -> Self { SubstrateNodeBuilder { - binary_paths: vec!["substrate-node".into(), "substrate".into()], + binary_paths: vec![], custom_flags: Default::default(), } } + /// Provide "substrate-node" and "substrate" as binary paths + pub fn substrate(&mut self) -> &mut Self { + self.binary_paths = vec!["substrate-node".into(), "substrate".into()]; + self + } + + /// Provide "polkadot" as binary path. + pub fn polkadot(&mut self) -> &mut Self { + self.binary_paths = vec!["polkadot".into()]; + self + } + /// Set the path to the `substrate` binary; defaults to "substrate-node" /// or "substrate". pub fn binary_paths(&mut self, paths: Paths) -> &mut Self